20 May, 2011

6 commits

  • * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (78 commits)
    Revert "rcu: Decrease memory-barrier usage based on semi-formal proof"
    net,rcu: convert call_rcu(prl_entry_destroy_rcu) to kfree
    batman,rcu: convert call_rcu(softif_neigh_free_rcu) to kfree_rcu
    batman,rcu: convert call_rcu(neigh_node_free_rcu) to kfree()
    batman,rcu: convert call_rcu(gw_node_free_rcu) to kfree_rcu
    net,rcu: convert call_rcu(kfree_tid_tx) to kfree_rcu()
    net,rcu: convert call_rcu(xt_osf_finger_free_rcu) to kfree_rcu()
    net/mac80211,rcu: convert call_rcu(work_free_rcu) to kfree_rcu()
    net,rcu: convert call_rcu(wq_free_rcu) to kfree_rcu()
    net,rcu: convert call_rcu(phonet_device_rcu_free) to kfree_rcu()
    perf,rcu: convert call_rcu(swevent_hlist_release_rcu) to kfree_rcu()
    perf,rcu: convert call_rcu(free_ctx) to kfree_rcu()
    net,rcu: convert call_rcu(__nf_ct_ext_free_rcu) to kfree_rcu()
    net,rcu: convert call_rcu(net_generic_release) to kfree_rcu()
    net,rcu: convert call_rcu(netlbl_unlhsh_free_addr6) to kfree_rcu()
    net,rcu: convert call_rcu(netlbl_unlhsh_free_addr4) to kfree_rcu()
    security,rcu: convert call_rcu(sel_netif_free) to kfree_rcu()
    net,rcu: convert call_rcu(xps_dev_maps_release) to kfree_rcu()
    net,rcu: convert call_rcu(xps_map_release) to kfree_rcu()
    net,rcu: convert call_rcu(rps_map_release) to kfree_rcu()
    ...

    Linus Torvalds
     
  • …el/git/tip/linux-2.6-tip

    * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    seqlock: Don't smp_rmb in seqlock reader spin loop
    watchdog, hung_task_timeout: Add Kconfig configurable default
    lockdep: Remove cmpxchg to update nr_chain_hlocks
    lockdep: Print a nicer description for simple irq lock inversions
    lockdep: Replace "Bad BFS generated tree" message with something less cryptic
    lockdep: Print a nicer description for irq inversion bugs
    lockdep: Print a nicer description for simple deadlocks
    lockdep: Print a nicer description for normal deadlocks
    lockdep: Print a nicer description for irq lock inversions

    Linus Torvalds
     
  • …/git/tip/linux-2.6-tip

    * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, gart: Rename pci-gart_64.c to amd_gart_64.c
    x86/amd-iommu: Use threaded interupt handler
    arch/x86/kernel/pci-iommu_table.c: Convert sprintf_symbol to %pS
    x86/amd-iommu: Add support for invalidate_all command
    x86/amd-iommu: Add extended feature detection
    x86/amd-iommu: Add ATS enable/disable code
    x86/amd-iommu: Add flag to indicate IOTLB support
    x86/amd-iommu: Flush device IOTLB if ATS is enabled
    x86/amd-iommu: Select PCI_IOV with AMD IOMMU driver
    PCI: Move ATS declarations in seperate header file
    dma-debug: print information about leaked entry
    x86/amd-iommu: Flush all internal TLBs when IOMMUs are enabled
    x86/amd-iommu: Rename iommu_flush_device
    x86/amd-iommu: Improve handling of full command buffer
    x86/amd-iommu: Rename iommu_flush* to domain_flush*
    x86/amd-iommu: Remove command buffer resetting logic
    x86/amd-iommu: Cleanup completion-wait handling
    x86/amd-iommu: Cleanup inv_pages command handling
    x86/amd-iommu: Move inv-dte command building to own function
    x86/amd-iommu: Move compl-wait command building to own function

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm:
    kmemleak: Initialise kmemleak after debug_objects_mem_init()
    kmemleak: Select DEBUG_FS unconditionally in DEBUG_KMEMLEAK
    kmemleak: Do not return a pointer to an object that kmemleak did not get

    Linus Torvalds
     
  • * 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus: (48 commits)
    MIPS: Move arch_get_unmapped_area and gang to new file.
    MIPS: Cleanup arch_get_unmapped_area
    MIPS: Octeon: Don't request interrupts for unused IPI mailbox bits.
    Octeon: Fix interrupt irq settings for performance counters.
    MIPS: Fix build warnings on defconfigs
    MIPS: Lemote 2F, Malta: Fix build warning
    MIPS: Set ELF AT_PLATFORM string for Loongson2 processors
    MIPS: Set ELF AT_PLATFORM string for BMIPS processors
    MIPS: Introduce set_elf_platform() helper function
    MIPS: JZ4740: setup: Autodetect physical memory.
    MIPS: BCM47xx: Fix MAC address parsing.
    MIPS: BCM47xx: Extend the filling of SPROM from NVRAM
    MIPS: BCM47xx: Register SSB fallback sprom callback
    MIPS: BCM47xx: Extend bcm47xx_fill_sprom with prefix.
    SSB: Change fallback sprom to callback mechanism.
    MIPS: Alchemy: Clean up GPIO registers and accessors
    MIPS: Alchemy: Cleanup DMA addresses
    MIPS: Alchemy: Rewrite ethernet platform setup
    MIPS: Alchemy: Rewrite UART setup and constants.
    MIPS: Alchemy: Convert dbdma.c to syscore_ops
    ...

    Linus Torvalds
     
  • In the past DEBUG_FS used to depend on SYSFS and DEBUG_KMEMLEAK selected
    it conditionally. This is no longer the case, so always select DEBUG_FS
    via DEBUG_KMEMLEAK.

    Signed-off-by: Catalin Marinas

    Catalin Marinas
     

19 May, 2011

3 commits

  • Signed-off-by: Maxin B. John
    To: Catalin Marinas
    Cc: Daniel Baluta
    Cc: naveen yadav
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mm@kvack.org
    Patchwork: https://patchwork.linux-mips.org/patch/2244/
    Signed-off-by: Ralf Baechle

    Maxin John
     
  • This is a rename of the usr_strtobool proposal, which was a renamed,
    relocated and fixed version of previous kstrtobool RFC

    Signed-off-by: Jonathan Cameron
    Signed-off-by: Rusty Russell

    Jonathan Cameron
     
  • There a large number hand-coded binary searches in the kernel (run
    "git grep search | grep binary" to find many of them). Since in my
    experience, hand-coding binary searches can be error-prone, it seems
    worth cleaning this up by providing a generic binary search function.

    This generic binary search implementation comes from Ksplice. It has
    the same basic API as the C library bsearch() function. Ksplice uses
    it in half a dozen places with 4 different comparison functions, and I
    think our code is substantially cleaner because of this.

    Signed-off-by: Tim Abbott
    Extra-bikeshedding-by: Alan Jenkins
    Extra-bikeshedding-by: André Goddard Rosa
    Extra-bikeshedding-by: Rusty Russell
    Signed-off-by: Rusty Russell
    Signed-off-by: Alessio Igor Bogani
    Signed-off-by: Rusty Russell

    Tim Abbott
     

13 May, 2011

1 commit

  • kptr_restrict has been triggering bugs in apps such as perf, and it also makes
    the system less useful by default, so turn it off by default.

    This is how we generally handle security features that remove functionality,
    such as firewall code or SELinux - they have to be configured and activated
    from user-space.

    Distributions can turn kptr_restrict on again via this line in
    /etc/sysctrl.conf:

    kernel.kptr_restrict = 1

    ( Also mark the variable __read_mostly while at it, as it's typically modified
    only once per bootup, or not at all. )

    Signed-off-by: Ingo Molnar
    Acked-by: David S. Miller
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

10 May, 2011

1 commit


06 May, 2011

2 commits

  • The prohibition of DEBUG_OBJECTS_RCU_HEAD from !PREEMPT was due to the
    fixup actions. So just produce a warning from !PREEMPT.

    Signed-off-by: Mathieu Desnoyers
    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Mathieu Desnoyers
     
  • The RCU CPU stall warnings can now be controlled using the
    rcu_cpu_stall_suppress boot-time parameter or via the same parameter
    from sysfs. There is therefore no longer any reason to have
    kernel config parameters for this feature. This commit therefore
    removes the RCU_CPU_STALL_DETECTOR and RCU_CPU_STALL_DETECTOR_RUNNABLE
    kernel config parameters. The RCU_CPU_STALL_TIMEOUT parameter remains
    to allow the timeout to be tuned and the RCU_CPU_STALL_VERBOSE parameter
    remains to allow task-stall information to be suppressed if desired.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     

04 May, 2011

1 commit


02 May, 2011

1 commit


29 Apr, 2011

2 commits

  • Just like kmalloc will allow one to allocate a 0 length segment of memory
    flex arrays should do the same thing. It should bomb if you try to use
    something, but it should at least allow the allocation.

    This is needed because when SELinux switched to using flex_arrays in 2.6.38
    the inability to allocate a 0 length array resulted in SELinux policy load
    returning -ENOSPC when previously it worked.

    Based-on-patch-by: Steffen Klassert
    Signed-off-by: Eric Paris
    Tested-by: Chris Richards
    Cc: stable@kernel.org [2.6.38+]

    Eric Paris
     
  • Change flex_array_prealloc to take the number of elements for which space
    should be allocated instead of the last (inclusive) element. Users
    and documentation are updated accordingly. flex_arrays got introduced before
    they had users. When folks started using it, they ended up needing a
    different API than was coded up originally. This swaps over to the API that
    folks apparently need.

    Based-on-patch-by: Steffen Klassert
    Signed-off-by: Eric Paris
    Tested-by: Chris Richards
    Acked-by: Dave Hansen
    Cc: stable@kernel.org [2.6.38+]

    Eric Paris
     

28 Apr, 2011

1 commit

  • This patch allows the default value for sysctl_hung_task_timeout_secs
    to be set at build time. The feature carries virtually no overhead,
    so it makes sense to keep it enabled. On heavily loaded systems, though,
    it can end up triggering stack traces when there is no bug other than
    the system being underprovisioned. We use this patch to keep the hung task
    facility available but disabled at boot-time.

    The default of 120 seconds is preserved. As a note, commit e162b39a may
    have accidentally reverted commit fb822db4, which raised the default from
    120 seconds to 480 seconds.

    Signed-off-by: Jeff Mahoney
    Acked-by: Mandeep Singh Baines
    Link: http://lkml.kernel.org/r/4DB8600C.8080000@suse.com
    Signed-off-by: Ingo Molnar

    Jeff Mahoney
     

15 Apr, 2011

2 commits


08 Apr, 2011

1 commit


07 Apr, 2011

1 commit


05 Apr, 2011

1 commit

  • mm/kmemleak-test.c is used to provide an example of how kmemleak
    tool works.

    Memory is leaked at module unload-time, so building the test
    in kernel (Y) makes the leaks impossible and the test useless.

    Qualify DEBUG_KMEMLEAK_TEST config symbol with "depends on m",
    to restrict module-only building.

    Signed-off-by: Daniel Baluta
    Acked-by: Pekka Enberg
    Acked-by: Catalin Marinas
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Daniel Baluta
     

31 Mar, 2011

1 commit


28 Mar, 2011

1 commit

  • * 'for-linus-1' of git://git.infradead.org/mtd-2.6: (49 commits)
    mtd: mtdswap: fix compilation warning
    mtdswap: kill strict error handling option
    mtd: nand: enable software BCH ECC in nand simulator
    mtd: nand: add software BCH ECC support
    mtd: fix printf format warnings, mostly lack of %zd for size_t, in mtdswap
    mtd: sm_rtl: check kmalloc return value
    mtd: cfi: add support for AMIC flashes (e.g. A29L160AT)
    lib: add shared BCH ECC library
    mtd: mxc_nand: fix OOB corruption when page size > 2KiB
    mtd: DaVinci: Removed header file that is not required
    mtd: pxa3xx_nand: clean the keep configure code
    mtd: pxa3xx_nand: mtd scan id process could be defined by driver itself
    mtd: pxa3xx_nand: unify prepare command
    mtd: pxa3xx_nand: discard wait_for_event,write_cmd,__readid function
    mtd: pxa3xx_nand: rework irq logic
    mtd: pxa3xx_nand: make scan procedure more clear
    mtd: speedtest: fix integer overflow
    mtd: mxc_nand: fix read past buffer end
    mtd: omap3: nand: report corrected ecc errors
    jffs2: remove a trailing white space in commentaries
    ...

    Linus Torvalds
     

26 Mar, 2011

1 commit


25 Mar, 2011

2 commits

  • …linux-2.6 into for-linus-1

    * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6: (9356 commits)
    [media] rc: update for bitop name changes
    fs: simplify iget & friends
    fs: pull inode->i_lock up out of writeback_single_inode
    fs: rename inode_lock to inode_hash_lock
    fs: move i_wb_list out from under inode_lock
    fs: move i_sb_list out from under inode_lock
    fs: remove inode_lock from iput_final and prune_icache
    fs: Lock the inode LRU list separately
    fs: factor inode disposal
    fs: protect inode->i_state with inode->i_lock
    lib, arch: add filter argument to show_mem and fix private implementations
    SLUB: Write to per cpu data when allocating it
    slub: Fix debugobjects with lockless fastpath
    autofs4: Do not potentially dereference NULL pointer returned by fget() in autofs_dev_ioctl_setpipefd()
    autofs4 - remove autofs4_lock
    autofs4 - fix d_manage() return on rcu-walk
    autofs4 - fix autofs4_expire_indirect() traversal
    autofs4 - fix dentry leak in autofs4_expire_direct()
    autofs4 - reinstate last used update on access
    vfs - check non-mountpoint dentry might block in __follow_mount_rcu()
    ...

    NOTE!

    This merge commit was created to fix compilation error. The block
    tree was merged upstream and removed the 'elv_queue_empty()'
    function which the new 'mtdswap' driver is using. So a simple
    merge of the mtd tree with upstream does not compile. And the
    mtd tree has already be published, so re-basing it is not an option.

    To fix this unfortunate situation, I had to merge upstream into the
    mtd-2.6.git tree without committing, put the fixup patch on top of
    this, and then commit this. The result is that we do not have commits
    which do not compile.

    In other words, this merge commit "merges" 3 things: the MTD tree, the
    upstream tree, and the fixup patch.

    Artem Bityutskiy
     
  • Commit ddd588b5dd55 ("oom: suppress nodes that are not allowed from
    meminfo on oom kill") moved lib/show_mem.o out of lib/lib.a, which
    resulted in build warnings on all architectures that implement their own
    versions of show_mem():

    lib/lib.a(show_mem.o): In function `show_mem':
    show_mem.c:(.text+0x1f4): multiple definition of `show_mem'
    arch/sparc/mm/built-in.o:(.text+0xd70): first defined here

    The fix is to remove __show_mem() and add its argument to show_mem() in
    all implementations to prevent this breakage.

    Architectures that implement their own show_mem() actually don't do
    anything with the argument yet, but they could be made to filter nodes
    that aren't allowed in the current context in the future just like the
    generic implementation.

    Reported-by: Stephen Rothwell
    Reported-by: James Bottomley
    Suggested-by: Andrew Morton
    Signed-off-by: David Rientjes
    Signed-off-by: Linus Torvalds

    David Rientjes
     

24 Mar, 2011

4 commits

  • The %pB format specifier is for stack backtrace. Its handler
    sprint_backtrace() does symbol lookup using (address-1) to
    ensure the address will not point outside of the function.

    If there is a tail-call to the function marked "noreturn",
    gcc optimized out the code after the call then causes saved
    return address points outside of the function (i.e. the start
    of the next function), so pollutes call trace somewhat.

    This patch adds the %pB printk mechanism that allows architecture
    call-trace printout functions to improve backtrace printouts.

    Signed-off-by: Namhyung Kim
    Acked-by: Steven Rostedt
    Acked-by: Frederic Weisbecker
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Cc: linux-arch@vger.kernel.org
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Namhyung Kim
     
  • This introduces CONFIG_GENERIC_FIND_BIT_LE to tell whether to use generic
    implementation of find_*_bit_le() in lib/find_next_bit.c or not.

    For now we select CONFIG_GENERIC_FIND_BIT_LE for all architectures which
    enable CONFIG_GENERIC_FIND_NEXT_BIT.

    But m68knommu wants to define own faster find_next_zero_bit_le() and
    continues using generic find_next_{,zero_}bit().
    (CONFIG_GENERIC_FIND_NEXT_BIT and !CONFIG_GENERIC_FIND_BIT_LE)

    Signed-off-by: Akinobu Mita
    Cc: Greg Ungerer
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • This makes the little-endian bitops take any pointer types by changing the
    prototypes and adding casts in the preprocessor macros.

    That would seem to at least make all the filesystem code happier, and they
    can continue to do just something like

    #define ext2_set_bit __test_and_set_bit_le

    (or whatever the exact sequence ends up being).

    Signed-off-by: Akinobu Mita
    Cc: Arnd Bergmann
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Mikael Starvik
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: "Luck, Tony"
    Cc: Ralf Baechle
    Cc: Kyle McMartin
    Cc: Matthew Wilcox
    Cc: Grant Grundler
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Hirokazu Takata
    Cc: "David S. Miller"
    Cc: Chris Zankel
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Hans-Christian Egtvedt
    Cc: "H. Peter Anvin"
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • As a preparation for providing little-endian bitops for all architectures,
    This renames generic implementation of little-endian bitops. (remove
    "generic_" prefix and postfix "_le")

    s/generic_find_next_le_bit/find_next_bit_le/
    s/generic_find_next_zero_le_bit/find_next_zero_bit_le/
    s/generic_find_first_zero_le_bit/find_first_zero_bit_le/
    s/generic___test_and_set_le_bit/__test_and_set_bit_le/
    s/generic___test_and_clear_le_bit/__test_and_clear_bit_le/
    s/generic_test_le_bit/test_bit_le/
    s/generic___set_le_bit/__set_bit_le/
    s/generic___clear_le_bit/__clear_bit_le/
    s/generic_test_and_set_le_bit/test_and_set_bit_le/
    s/generic_test_and_clear_le_bit/test_and_clear_bit_le/

    Signed-off-by: Akinobu Mita
    Acked-by: Arnd Bergmann
    Acked-by: Hans-Christian Egtvedt
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Cc: Andreas Schwab
    Cc: Greg Ungerer
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

23 Mar, 2011

7 commits

  • Instead of always creating a huge (268K) deflate_workspace with the
    maximum compression parameters (windowBits=15, memLevel=8), allow the
    caller to obtain a smaller workspace by specifying smaller parameter
    values.

    For example, when capturing oops and panic reports to a medium with
    limited capacity, such as NVRAM, compression may be the only way to
    capture the whole report. In this case, a small workspace (24K works
    fine) is a win, whether you allocate the workspace when you need it (i.e.,
    during an oops or panic) or at boot time.

    I've verified that this patch works with all accepted values of windowBits
    (positive and negative), memLevel, and compression level.

    Signed-off-by: Jim Keniston
    Cc: Herbert Xu
    Cc: David Miller
    Cc: Chris Mason
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jim Keniston
     
  • 1. simple_strto*() do not contain overflow checks and crufty,
    libc way to indicate failure.
    2. strict_strto*() also do not have overflow checks but the name and
    comments pretend they do.
    3. Both families have only "long long" and "long" variants,
    but users want strtou8()
    4. Both "simple" and "strict" prefixes are wrong:
    Simple doesn't exactly say what's so simple, strict should not exist
    because conversion should be strict by default.

    The solution is to use "k" prefix and add convertors for more types.
    Enter
    kstrtoull()
    kstrtoll()
    kstrtoul()
    kstrtol()
    kstrtouint()
    kstrtoint()

    kstrtou64()
    kstrtos64()
    kstrtou32()
    kstrtos32()
    kstrtou16()
    kstrtos16()
    kstrtou8()
    kstrtos8()

    Include runtime testsuite (somewhat incomplete) as well.

    strict_strto*() become deprecated, stubbed to kstrto*() and
    eventually will be removed altogether.

    Use kstrto*() in code today!

    Note: on some archs _kstrtoul() and _kstrtol() are left in tree, even if
    they'll be unused at runtime. This is temporarily solution,
    because I don't want to hardcode list of archs where these
    functions aren't needed. Current solution with sizeof() and
    __alignof__ at least always works.

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • We've been burned by regressions/bugs which we later realized could have
    been triaged quicker if only we'd paid closer attention to dmesg. To make
    it easier to audit dmesg, we'd like to make DEFAULT_MESSAGE_LEVEL
    Kconfig-settable. That way we can set it to KERN_NOTICE and audit any
    messages
    Cc: Ingo Molnar
    Cc: Joe Perches
    Cc: Olof Johansson
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mandeep Singh Baines
     
  • In an effort to reduce kernel address leaks that might be used to help
    target kernel privilege escalation exploits, this patch uses %pK when
    displaying addresses in /proc/kallsyms, /proc/modules, and
    /sys/module/*/sections/*.

    Note that this changes %x to %p, so some legitimately 0 values in
    /proc/kallsyms would have changed from 00000000 to "(null)". To avoid
    this, "(null)" is not used when using the "K" format. Anything that was
    already successfully parsing "(null)" in addition to full hex digits
    should have no problem with this change. (Thanks to Joe Perches for the
    suggestion.) Due to the %x to %p, "void *" casts are needed since these
    addresses are already "unsigned long" everywhere internally, due to their
    starting life as ELF section offsets.

    Signed-off-by: Kees Cook
    Cc: Eugene Teo
    Cc: Dan Rosenberg
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • If kptr restrictions are on, just set the passed pointer to NULL.

    $ size lib/vsprintf.o.*
    text data bss dec hex filename
    8247 4 2 8253 203d lib/vsprintf.o.new
    8282 4 2 8288 2060 lib/vsprintf.o.old

    Signed-off-by: Joe Perches
    Cc: Dan Rosenberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • When a cpu is considered stuck, instead of limping along and just printing
    a warning, it is sometimes preferred to just panic, let kdump capture the
    vmcore and reboot. This gets the machine back into a stable state quickly
    while saving the info that got it into a stuck state to begin with.

    Add a Kconfig option to allow users to set the hardlockup to panic
    by default. Also add in a 'nmi_watchdog=nopanic' to override this.

    [akpm@linux-foundation.org: fix strncmp length]
    Signed-off-by: Don Zickus
    Acked-by: Peter Zijlstra
    Reviewed-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Don Zickus
     
  • The oom killer is extremely verbose for machines with a large number of
    cpus and/or nodes. This verbosity can often be harmful if it causes other
    important messages to be scrolled from the kernel log and incurs a
    signicant time delay, specifically for kernels with CONFIG_NODES_SHIFT >
    8.

    This patch causes only memory information to be displayed for nodes that
    are allowed by current's cpuset when dumping the VM state. Information
    for all other nodes is irrelevant to the oom condition; we don't care if
    there's an abundance of memory elsewhere if we can't access it.

    This only affects the behavior of dumping memory information when an oom
    is triggered. Other dumps, such as for sysrq+m, still display the
    unfiltered form when using the existing show_mem() interface.

    Additionally, the per-cpu pageset statistics are extremely verbose in oom
    killer output, so it is now suppressed. This removes

    nodes_weight(current->mems_allowed) * (1 + nr_cpus)

    lines from the oom killer output.

    Callers may use __show_mem(SHOW_MEM_FILTER_NODES) to filter disallowed
    nodes.

    Signed-off-by: David Rientjes
    Cc: Mel Gorman
    Cc: KAMEZAWA Hiroyuki
    Cc: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

22 Mar, 2011

1 commit

  • * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:
    kbuild: Make DEBUG_SECTION_MISMATCH selectable, but not on by default
    genksyms: Regenerate lexer and parser
    genksyms: Track changes to enum constants
    genksyms: simplify usage of find_symbol()
    genksyms: Add helpers for building string lists
    genksyms: Simplify printing of symbol types
    genksyms: Simplify lexer
    genksyms: Do not paste the bison header file to lex.c
    modpost: fix trailing comma
    KBuild: silence "'scripts/unifdef' is up to date."
    kbuild: Add extra gcc checks
    kbuild: reenable section mismatch analysis
    unifdef: update to upstream version 2.5

    Linus Torvalds