15 May, 2009

2 commits

  • * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
    Revert "mm: add /proc controls for pdflush threads"
    viocd: needs to depend on BLOCK
    block: fix the bio_vec array index out-of-bounds test

    Linus Torvalds
     
  • This reverts commit fafd688e4c0c34da0f3de909881117d374e4c7af.

    Work is progressing to switch away from pdflush as the process backing
    for flushing out dirty data. So it seems pointless to add more knobs
    to control pdflush threads. The original author of the patch did not
    have any specific use cases for adding the knobs, so we can easily
    revert this before 2.6.30 to avoid having to maintain this API
    forever.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

13 May, 2009

1 commit


08 May, 2009

1 commit


07 May, 2009

5 commits

  • NOMMU mmap() has an option controlled by a sysctl variable that determines
    whether the allocations made by do_mmap_private() should have the excess
    space trimmed off and returned to the allocator. Make the initial setting
    of this variable a Kconfig configuration option.

    The reason there can be excess space is that the allocator only allocates
    in power-of-2 size chunks, but mmap()'s can be made in sizes that aren't a
    power of 2.

    There are two alternatives:

    (1) Keep the excess as dead space. The dead space then remains unused for the
    lifetime of the mapping. Mappings of shared objects such as libc, ld.so
    or busybox's text segment may retain their dead space forever.

    (2) Return the excess to the allocator. This means that the dead space is
    limited to less than a page per mapping, but it means that for a transient
    process, there's more chance of fragmentation as the excess space may be
    reused fairly quickly.

    During the boot process, a lot of transient processes are created, and
    this can cause a lot of fragmentation as the pagecache and various slabs
    grow greatly during this time.

    By turning off the trimming of excess space during boot and disabling
    batching of frees, Coldfire can manage to boot.

    A better way of doing things might be to have /sbin/init turn this option
    off. By that point libc, ld.so and init - which are all long-duration
    processes - have all been loaded and trimmed.

    Reported-by: Lanttor Guo
    Signed-off-by: David Howells
    Tested-by: Lanttor Guo
    Cc: Greg Ungerer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Clamp zone_batchsize() to 0 under NOMMU conditions to stop
    free_hot_cold_page() from queueing and batching frees.

    The problem is that under NOMMU conditions it is really important to be
    able to allocate large contiguous chunks of memory, but when munmap() or
    exit_mmap() releases big stretches of memory, return of these to the buddy
    allocator can be deferred, and when it does finally happen, it can be in
    small chunks.

    Whilst the fragmentation this incurs isn't so much of a problem under MMU
    conditions as userspace VM is glued together from individual pages with
    the aid of the MMU, it is a real problem if there isn't an MMU.

    By clamping the page freeing queue size to 0, pages are returned to the
    allocator immediately, and the buddy detector is more likely to be able to
    glue them together into large chunks immediately, and fragmentation is
    less likely to occur.

    By disabling batching of frees, and by turning off the trimming of excess
    space during boot, Coldfire can manage to boot.

    Reported-by: Lanttor Guo
    Signed-off-by: David Howells
    Tested-by: Lanttor Guo
    Cc: Greg Ungerer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Use roundown_pow_of_two(N) in zone_batchsize() rather than (1 <<
    (fls(N)-1)) as they are equivalent, and with the former it is easier to
    see what is going on.

    Signed-off-by: David Howells
    Tested-by: Lanttor Guo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • If alloc_vmap_area() fails the allocated struct vmap_area has to be freed.

    Signed-off-by: Ralph Wuerthner
    Reviewed-by: Christoph Lameter
    Reviewed-by: Minchan Kim
    Cc: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ralph Wuerthner
     
  • When /proc/sys/vm/oom_kill_allocating_task is set for large systems that
    want to avoid the lengthy tasklist scan, it's possible to livelock if
    current is ineligible for oom kill. This normally happens when it is set
    to OOM_DISABLE, but is also possible if any threads are sharing the same
    ->mm with a different tgid.

    So change __out_of_memory() to fall back to the full task-list scan if it
    was unable to kill `current'.

    Cc: Nick Piggin
    Signed-off-by: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

06 May, 2009

1 commit

  • madvise(MADV_WILLNEED) forces page cache readahead on a range of memory
    backed by a file. The assumption is made that the page required is
    order-0 and "normal" page cache.

    On hugetlbfs, this assumption is not true and order-0 pages are
    allocated and inserted into the hugetlbfs page cache. This leaks
    hugetlbfs page reservations and can cause BUGs to trigger related to
    corrupted page tables.

    This patch causes MADV_WILLNEED to be ignored for hugetlbfs-backed
    regions.

    Signed-off-by: Mel Gorman
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Mel Gorman
     

03 May, 2009

6 commits

  • Local variable `scan' can overflow on zones which are larger than

    (2G * 4k) / 100 = 80GB.

    Making it 64-bit on 64-bit will fix that up.

    Cc: KOSAKI Motohiro
    Cc: Wu Fengguang
    Cc: Peter Zijlstra
    Cc: Rik van Riel
    Cc: Lee Schermerhorn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • The Committed_AS field can underflow in certain situations:

    > # while true; do cat /proc/meminfo | grep _AS; sleep 1; done | uniq -c
    > 1 Committed_AS: 18446744073709323392 kB
    > 11 Committed_AS: 18446744073709455488 kB
    > 6 Committed_AS: 35136 kB
    > 5 Committed_AS: 18446744073709454400 kB
    > 7 Committed_AS: 35904 kB
    > 3 Committed_AS: 18446744073709453248 kB
    > 2 Committed_AS: 34752 kB
    > 9 Committed_AS: 18446744073709453248 kB
    > 8 Committed_AS: 34752 kB
    > 3 Committed_AS: 18446744073709320960 kB
    > 7 Committed_AS: 18446744073709454080 kB
    > 3 Committed_AS: 18446744073709320960 kB
    > 5 Committed_AS: 18446744073709454080 kB
    > 6 Committed_AS: 18446744073709320960 kB

    Because NR_CPUS can be greater than 1000 and meminfo_proc_show() does
    not check for underflow.

    But NR_CPUS proportional isn't good calculation. In general,
    possibility of lock contention is proportional to the number of online
    cpus, not theorical maximum cpus (NR_CPUS).

    The current kernel has generic percpu-counter stuff. using it is right
    way. it makes code simplify and percpu_counter_read_positive() don't
    make underflow issue.

    Reported-by: Dave Hansen
    Signed-off-by: KOSAKI Motohiro
    Cc: Eric B Munson
    Cc: Mel Gorman
    Cc: Christoph Lameter
    Cc: [All kernel versions]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Current mem_cgroup_shrink_usage() has two problems.

    1. It doesn't call mem_cgroup_out_of_memory and doesn't update
    last_oom_jiffies, so pagefault_out_of_memory invokes global OOM.

    2. Considering hierarchy, shrinking has to be done from the
    mem_over_limit, not from the memcg which the page would be charged to.

    mem_cgroup_try_charge_swapin() does all of these things properly, so we
    use it and call cancel_charge_swapin when it succeeded.

    The name of "shrink_usage" is not appropriate for this behavior, so we
    change it too.

    Signed-off-by: Daisuke Nishimura
    Acked-by: KAMEZAWA Hiroyuki
    Cc: Li Zefan
    Cc: Paul Menage
    Cc: Dhaval Giani
    Cc: Daisuke Nishimura
    Cc: YAMAMOTO Takashi
    Cc: KOSAKI Motohiro
    Cc: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daisuke Nishimura
     
  • Change page_mkwrite to allow implementations to return with the page
    locked, and also change it's callers (in page fault paths) to hold the
    lock until the page is marked dirty. This allows the filesystem to have
    full control of page dirtying events coming from the VM.

    Rather than simply hold the page locked over the page_mkwrite call, we
    call page_mkwrite with the page unlocked and allow callers to return with
    it locked, so filesystems can avoid LOR conditions with page lock.

    The problem with the current scheme is this: a filesystem that wants to
    associate some metadata with a page as long as the page is dirty, will
    perform this manipulation in its ->page_mkwrite. It currently then must
    return with the page unlocked and may not hold any other locks (according
    to existing page_mkwrite convention).

    In this window, the VM could write out the page, clearing page-dirty. The
    filesystem has no good way to detect that a dirty pte is about to be
    attached, so it will happily write out the page, at which point, the
    filesystem may manipulate the metadata to reflect that the page is no
    longer dirty.

    It is not always possible to perform the required metadata manipulation in
    ->set_page_dirty, because that function cannot block or fail. The
    filesystem may need to allocate some data structure, for example.

    And the VM cannot mark the pte dirty before page_mkwrite, because
    page_mkwrite is allowed to fail, so we must not allow any window where the
    page could be written to if page_mkwrite does fail.

    This solution of holding the page locked over the 3 critical operations
    (page_mkwrite, setting the pte dirty, and finally setting the page dirty)
    closes out races nicely, preventing page cleaning for writeout being
    initiated in that window. This provides the filesystem with a strong
    synchronisation against the VM here.

    - Sage needs this race closed for ceph filesystem.
    - Trond for NFS (http://bugzilla.kernel.org/show_bug.cgi?id=12913).
    - I need it for fsblock.
    - I suspect other filesystems may need it too (eg. btrfs).
    - I have converted buffer.c to the new locking. Even simple block allocation
    under dirty pages might be susceptible to i_size changing under partial page
    at the end of file (we also have a buffer.c-side problem here, but it cannot
    be fixed properly without this patch).
    - Other filesystems (eg. NFS, maybe btrfs) will need to change their
    page_mkwrite functions themselves.

    [ This also moves page_mkwrite another step closer to fault, which should
    eventually allow page_mkwrite to be moved into ->fault, and thus avoiding a
    filesystem calldown and page lock/unlock cycle in __do_fault. ]

    [akpm@linux-foundation.org: fix derefs of NULL ->mapping]
    Cc: Sage Weil
    Cc: Trond Myklebust
    Signed-off-by: Nick Piggin
    Cc: Valdis Kletnieks
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • This is a bugfix for commit 3c776e64660028236313f0e54f3a9945764422df
    ("memcg: charge swapcache to proper memcg").

    Used bit of swapcache is solid under page lock, but considering
    move_account, pc->mem_cgroup is not.

    We need lock_page_cgroup() anyway.

    Signed-off-by: Daisuke Nishimura
    Acked-by: KAMEZAWA Hiroyuki
    Cc: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daisuke Nishimura
     
  • By the time the memory cgroup code is notified about a swapin we
    already hold a reference on the fault page.

    If the cgroup callback fails make sure to unlock AND release the page
    reference which was taken by lookup_swap_cach(), or we leak the reference.

    Signed-off-by: Johannes Weiner
    Cc: Balbir Singh
    Reviewed-by: Minchan Kim
    Acked-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     

22 Apr, 2009

1 commit

  • Commit a6dc60f8975ad96d162915e07703a4439c80dcf0 ("vmscan: rename
    sc.may_swap to may_unmap") removed the may_swap flag, but memcg had used
    it as a flag for "we need to use swap?", as the name indicate.

    And in the current implementation, memcg cannot reclaim mapped file
    caches when mem+swap hits the limit.

    re-introduce may_swap flag and handle it at get_scan_ratio(). This
    patch doesn't influence any scan_control users other than memcg.

    Signed-off-by: KOSAKI Motohiro
    Signed-off-by: Daisuke Nishimura
    Acked-by: Johannes Weiner
    Cc: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     

19 Apr, 2009

1 commit

  • Commit d979677c4c0 ("mm: shrink_all_memory(): use sc.nr_reclaimed")
    broke the memory shrinking used by hibernation, becuse it did not update
    shrink_all_zones() in accordance with the other changes it made.

    Fix this by making shrink_all_zones() update sc->nr_reclaimed instead of
    overwriting its value.

    This fixes http://bugzilla.kernel.org/show_bug.cgi?id=13058

    Reported-and-tested-by: Alan Jenkins
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

17 Apr, 2009

1 commit

  • Tetsuo Handa reports seeing the WARN_ON(current->mm == NULL) in
    security_vm_enough_memory(), when do_execve() is touching the
    target mm's stack, to set up its args and environment.

    Yes, a UMH_NO_WAIT or UMH_WAIT_PROC call_usermodehelper() spawns
    an mm-less kernel thread to do the exec. And in any case, that
    vm_enough_memory check when growing stack ought to be done on the
    target mm, not on the execer's mm (though apart from the warning,
    it only makes a slight tweak to OVERCOMMIT_NEVER behaviour).

    Reported-by: Tetsuo Handa
    Signed-off-by: Hugh Dickins
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     

16 Apr, 2009

1 commit


14 Apr, 2009

6 commits

  • SHMEM_MAX_BYTES was derived from the maximum size of its triple-indirect
    swap vector, forgetting to take the MAX_LFS_FILESIZE limit into account.
    Never mind 256kB pages, even 8kB pages on 32-bit kernels allowed files to
    grow slightly bigger than that supposed maximum.

    Fix this by using the min of both (at build time not run time). And it
    happens that this calculation is good as far as 8MB pages on 32-bit or
    16MB pages on 64-bit: though SHMSWP_MAX_INDEX gets truncated before that,
    it's truncated to such large numbers that we don't need to care.

    [akpm@linux-foundation.org: it needs pagemap.h]
    [akpm@linux-foundation.org: fix sparc64 min() warnings]
    Signed-off-by: Hugh Dickins
    Cc: Yuri Tikhonov
    Cc: Paul Mackerras
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Fix a division by zero which we have in shmem_truncate_range() and
    shmem_unuse_inode() when using big PAGE_SIZE values (e.g. 256kB on
    ppc44x).

    With 256kB PAGE_SIZE, the ENTRIES_PER_PAGEPAGE constant becomes too large
    (0x1.0000.0000) on a 32-bit kernel, so this patch just changes its type
    from 'unsigned long' to 'unsigned long long'.

    Hugh: reverted its unsigned long longs in shmem_truncate_range() and
    shmem_getpage(): the pagecache index cannot be more than an unsigned long,
    so the divisions by zero occurred in unreached code. It's a pity we need
    any ULL arithmetic here, but I found no pretty way to avoid it.

    Signed-off-by: Yuri Tikhonov
    Signed-off-by: Hugh Dickins
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yuri Tikhonov
     
  • mm/memcontrol.c:318: warning: `mem_cgroup_is_obsolete' defined but not used

    [akpm@linux-foundation.org: simplify as suggested by Balbir]
    Signed-off-by: KAMEZAWA Hiroyuki
    Reviewed-by: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • While better than get_user_pages(), the usage of gupf(), especially the
    return values and the fact that it can potentially only partially pin the
    range, warranted some documentation.

    Signed-off-by: Andy Grover
    Cc: Ingo Molnar
    Cc: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Grover
     
  • Point the UNEVICTABLE_LRU config option at the documentation describing
    the option.

    Signed-off-by: David Howells
    Cc: Lee Schermerhorn
    Cc: Rik van Riel
    Cc: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Fix filemap.c kernel-doc warnings:

    Warning(mm/filemap.c:575): No description found for parameter 'page'
    Warning(mm/filemap.c:575): No description found for parameter 'waiter'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

07 Apr, 2009

4 commits

  • Add /proc entries to give the admin the ability to control the minimum and
    maximum number of pdflush threads. This allows finer control of pdflush
    on both large and small machines.

    The rationale is simply one size does not fit all. Admins on large and/or
    small systems may want to tune the min/max pdflush thread count to best
    suit their needs. Right now the min/max is hardcoded to 2/8. While
    probably a fair estimate for smaller machines, large machines with large
    numbers of CPUs and large numbers of filesystems/block devices may benefit
    from larger numbers of threads working on different block devices.

    Even if the background flushing algorithm is radically changed, it is
    still likely that multiple threads will be involved and admins would still
    desire finer control on the min/max other than to have to recompile the
    kernel.

    The patch adds '/proc/sys/vm/nr_pdflush_threads_min' and
    '/proc/sys/vm/nr_pdflush_threads_max' with r/w permissions.

    The minimum value for nr_pdflush_threads_min is 1 and the maximum value is
    the current value of nr_pdflush_threads_max. This minimum is required
    since additional thread creation is performed in a pdflush thread itself.

    The minimum value for nr_pdflush_threads_max is the current value of
    nr_pdflush_threads_min and the maximum value can be 1000.

    Documentation/sysctl/vm.txt is also updated.

    [akpm@linux-foundation.org: fix comment, fix whitespace, use __read_mostly]
    Signed-off-by: Peter W Morreale
    Reviewed-by: Rik van Riel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter W Morreale
     
  • Fix a race on creating pdflush threads. Without the patch, it is possible
    to create more than MAX_PDFLUSH_THREADS threads, and this has been
    observed in practice on IO loaded SMP machines.

    The fix involves moving the lock around to protect the check against the
    thread count and correctly dealing with thread creation failure.

    This fix also _mostly_ repairs a race condition on how quickly the threads
    are created. The original intent was to create a pdflush thread (up to
    the max allowed) every second. Without this patch is is possible to
    create NCPUS pdflush threads concurrently. The 'mostly' caveat is because
    an assumption is made that thread creation will be successful. If we fail
    to create the thread, the miss is not considered fatal. (we will try
    again in 1 second)

    Signed-off-by: Peter W Morreale
    Reviewed-by: Rik van Riel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter W Morreale
     
  • This eliminates a compiler warning:

    mm/allocpercpu.c: In function 'free_percpu':
    mm/allocpercpu.c:146: warning: passing argument 2 of '__percpu_depopulate_mask' discards qualifiers from pointer target type

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • …git/tip/linux-2.6-tip

    * 'kmemtrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    kmemtrace: trace kfree() calls with NULL or zero-length objects
    kmemtrace: small cleanups
    kmemtrace: restore original tracing data binary format, improve ABI
    kmemtrace: kmemtrace_alloc() must fill type_id
    kmemtrace: use tracepoints
    kmemtrace, rcu: don't include unnecessary headers, allow kmemtrace w/ tracepoints
    kmemtrace, rcu: fix rcupreempt.c data structure dependencies
    kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies
    kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies
    kmemtrace, mm: fix slab.h dependency problem in mm/failslab.c
    kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_unlzma.c
    kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_bunzip2.c
    kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_inflate.c
    kmemtrace, squashfs: fix slab.h dependency problem in squasfs
    kmemtrace, befs: fix slab.h dependency problem
    kmemtrace, security: fix linux/key.h header file dependencies
    kmemtrace, fs: fix linux/fdtable.h header file dependencies
    kmemtrace, fs: uninline simple_transaction_set()
    kmemtrace, fs, security: move alloc_secdata() and free_secdata() to linux/security.h

    Linus Torvalds
     

06 Apr, 2009

4 commits

  • This makes sure that we never wait on async IO for sync requests, instead
    of doing the split on writes vs reads.

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (714 commits)
    Staging: sxg: slicoss: Specify the license for Sahara SXG and Slicoss drivers
    Staging: serqt_usb: fix build due to proc tty changes
    Staging: serqt_usb: fix checkpatch errors
    Staging: serqt_usb: add TODO file
    Staging: serqt_usb: Lindent the code
    Staging: add USB serial Quatech driver
    staging: document that the wifi staging drivers a bit better
    Staging: echo cleanup
    Staging: BUG to BUG_ON changes
    Staging: remove some pointless conditionals before kfree_skb()
    Staging: line6: fix build error, select SND_RAWMIDI
    Staging: line6: fix checkpatch errors in variax.c
    Staging: line6: fix checkpatch errors in toneport.c
    Staging: line6: fix checkpatch errors in pcm.c
    Staging: line6: fix checkpatch errors in midibuf.c
    Staging: line6: fix checkpatch errors in midi.c
    Staging: line6: fix checkpatch errors in dumprequest.c
    Staging: line6: fix checkpatch errors in driver.c
    Staging: line6: fix checkpatch errors in audio.c
    Staging: line6: fix checkpatch errors in pod.c
    ...

    Linus Torvalds
     
  • * 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)
    tracing, net: fix net tree and tracing tree merge interaction
    tracing, powerpc: fix powerpc tree and tracing tree interaction
    ring-buffer: do not remove reader page from list on ring buffer free
    function-graph: allow unregistering twice
    trace: make argument 'mem' of trace_seq_putmem() const
    tracing: add missing 'extern' keywords to trace_output.h
    tracing: provide trace_seq_reserve()
    blktrace: print out BLK_TN_MESSAGE properly
    blktrace: extract duplidate code
    blktrace: fix memory leak when freeing struct blk_io_trace
    blktrace: fix blk_probes_ref chaos
    blktrace: make classic output more classic
    blktrace: fix off-by-one bug
    blktrace: fix the original blktrace
    blktrace: fix a race when creating blk_tree_root in debugfs
    blktrace: fix timestamp in binary output
    tracing, Text Edit Lock: cleanup
    tracing: filter fix for TRACE_EVENT_FORMAT events
    ftrace: Using FTRACE_WARN_ON() to check "freed record" in ftrace_release()
    x86: kretprobe-booster interrupt emulation code fix
    ...

    Fix up trivial conflicts in
    arch/parisc/include/asm/ftrace.h
    include/linux/memory.h
    kernel/extable.c
    kernel/module.c

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask: (36 commits)
    cpumask: remove cpumask allocation from idle_balance, fix
    numa, cpumask: move numa_node_id default implementation to topology.h, fix
    cpumask: remove cpumask allocation from idle_balance
    x86: cpumask: x86 mmio-mod.c use cpumask_var_t for downed_cpus
    x86: cpumask: update 32-bit APM not to mug current->cpus_allowed
    x86: microcode: cleanup
    x86: cpumask: use work_on_cpu in arch/x86/kernel/microcode_core.c
    cpumask: fix CONFIG_CPUMASK_OFFSTACK=y cpu hotunplug crash
    numa, cpumask: move numa_node_id default implementation to topology.h
    cpumask: convert node_to_cpumask_map[] to cpumask_var_t
    cpumask: remove x86 cpumask_t uses.
    cpumask: use cpumask_var_t in uv_flush_tlb_others.
    cpumask: remove cpumask_t assignment from vector_allocation_domain()
    cpumask: make Xen use the new operators.
    cpumask: clean up summit's send_IPI functions
    cpumask: use new cpumask functions throughout x86
    x86: unify cpu_callin_mask/cpu_callout_mask/cpu_initialized_mask/cpu_sibling_setup_mask
    cpumask: convert struct cpuinfo_x86's llc_shared_map to cpumask_var_t
    cpumask: convert node_to_cpumask_map[] to cpumask_var_t
    x86: unify 32 and 64-bit node_to_cpumask_map
    ...

    Linus Torvalds
     

04 Apr, 2009

2 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)
    trivial: Update my email address
    trivial: NULL noise: drivers/mtd/tests/mtd_*test.c
    trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h
    trivial: Fix misspelling of "Celsius".
    trivial: remove unused variable 'path' in alloc_file()
    trivial: fix a pdlfush -> pdflush typo in comment
    trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL
    trivial: wusb: Storage class should be before const qualifier
    trivial: drivers/char/bsr.c: Storage class should be before const qualifier
    trivial: h8300: Storage class should be before const qualifier
    trivial: fix where cgroup documentation is not correctly referred to
    trivial: Give the right path in Documentation example
    trivial: MTD: remove EOL from MODULE_DESCRIPTION
    trivial: Fix typo in bio_split()'s documentation
    trivial: PWM: fix of #endif comment
    trivial: fix typos/grammar errors in Kconfig texts
    trivial: Fix misspelling of firmware
    trivial: cgroups: documentation typo and spelling corrections
    trivial: Update contact info for Jochen Hein
    trivial: fix typo "resgister" -> "register"
    ...

    Linus Torvalds
     
  • This patch adds Kconfig and Makefile entries and exports to
    VFS functions to be used by POHMELFS.

    Signed-off-by: Evgeniy Polyakov
    Signed-off-by: Greg Kroah-Hartman

    Evgeniy Polyakov
     

03 Apr, 2009

4 commits

  • Add a function to install a monitor on the page lock waitqueue for a particular
    page, thus allowing the page being unlocked to be detected.

    This is used by CacheFiles to detect read completion on a page in the backing
    filesystem so that it can then copy the data to the waiting netfs page.

    Signed-off-by: David Howells
    Acked-by: Steve Dickson
    Acked-by: Trond Myklebust
    Acked-by: Rik van Riel
    Acked-by: Al Viro
    Tested-by: Daire Byrne

    David Howells
     
  • Recruit a page flag to aid in cache management. The following extra flag is
    defined:

    (1) PG_fscache (PG_private_2)

    The marked page is backed by a local cache and is pinning resources in the
    cache driver.

    If PG_fscache is set, then things that checked for PG_private will now also
    check for that. This includes things like truncation and page invalidation.
    The function page_has_private() had been added to make the checks for both
    PG_private and PG_private_2 at the same time.

    Signed-off-by: David Howells
    Acked-by: Steve Dickson
    Acked-by: Trond Myklebust
    Acked-by: Rik van Riel
    Acked-by: Al Viro
    Tested-by: Daire Byrne

    David Howells
     
  • The attached patch causes read_cache_pages() to release page-private data on a
    page for which add_to_page_cache() fails. If the filler function fails, then
    the problematic page is left attached to the pagecache (with appropriate flags
    set, one presumes) and the remaining to-be-attached pages are invalidated and
    discarded. This permits pages with caching references associated with them to
    be cleaned up.

    The invalidatepage() address space op is called (indirectly) to do the honours.

    Signed-off-by: David Howells
    Acked-by: Steve Dickson
    Acked-by: Trond Myklebust
    Acked-by: Rik van Riel
    Acked-by: Al Viro
    Tested-by: Daire Byrne

    David Howells
     
  • Impact: also output kfree(NULL) entries

    This patch moves the trace_kfree() calls before the ZERO_OR_NULL_PTR
    check so that we can trace call-sites that call kfree() with NULL many
    times which might be an indication of a bug.

    Signed-off-by: Pekka Enberg
    Cc: Eduard - Gabriel Munteanu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg