25 Jul, 2008

32 commits

  • free_area_init_node() gets passed in the node id as well as the node
    descriptor. This is redundant as the function can trivially get the node
    descriptor itself by means of NODE_DATA() and the node's id.

    I checked all the users and NODE_DATA() seems to be usable everywhere
    from where this function is called.

    Signed-off-by: Johannes Weiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • This is called on a per-page basis and in the vast majority of cases
    `error' is zero.

    Cc: Guillaume Chazarain
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • SLOB reuses two page bits for internal purposes, it overlays PG_active and
    PG_private. This is hidden away in slob.c. Document these overlays
    explicitly in the main page-flags enum along with all the others.

    Signed-off-by: Andy Whitcroft
    Cc: Pekka Enberg
    Cc: Christoph Lameter
    Cc: Matt Mackall
    Cc: Nick Piggin
    Reviewed-by: KOSAKI Motohiro
    Cc: KOSAKI Motohiro
    Cc: Rik van Riel
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • SLUB reuses two page bits for internal purposes, it overlays PG_active and
    PG_error. This is hidden away in slub.c. Document these overlays
    explicitly in the main page-flags enum along with all the others.

    Signed-off-by: Andy Whitcroft
    Cc: Pekka Enberg
    Cc: Christoph Lameter
    Cc: Matt Mackall
    Cc: Nick Piggin
    Tested-by: KOSAKI Motohiro
    Cc: KOSAKI Motohiro
    Cc: Rik van Riel
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • With the recent page flag reorganisation we have a single enum which
    defines the valid page flags and their values, nice and clear. However
    there are a number of bits which are overloaded by different subsystems.
    Firstly there is PG_owner_priv_1 which is used by filesystems and by XEN.
    Secondly both SLOB and SLUB use a couple of extra page bits to manage
    internal state for pages they own; both overlay other bits. All of these
    "aliases" are scattered about the source making it very hard for a reader
    to know if the bits are safe to rely on in all contexts; confusion here is
    bad.

    As we now have a single place where the bits are clearly assigned it makes
    sense to clarify the reuse of bits by making the aliases explicit and
    visible with the original bit assignments. This patch creates explicit
    aliases within the enum itself for the overloaded bits, creates standard
    bit accessors PageFoo etc. and uses those throughout.

    This version pulls the bit manipulation out to standard named page bit
    accessors as suggested by Christoph, it retains the explicit mapping to
    the overlayed bits. A fusion of both ideas. This has been SLUB and SLOB
    have been compile tested on x86_64 only, and SLUB boot tested. If people
    feel this is worth doing then I can run a fuller set of testing.

    This patch:

    Some page flags are used for more than one purpose, for example
    PG_owner_priv_1. Currently there are individual accessors for each user,
    each built using the common flag name far away from the bit definitions.
    This makes it hard to see all possible uses of these bits.

    Now that we have a single enum to generate the bit orders it makes sense
    to express overlays in the same place. So create per use aliases for this
    bit in the main page-flags enum and use those in the accessors.

    [akpm@linux-foundation.org: fix xen]
    Signed-off-by: Andy Whitcroft
    Cc: Pekka Enberg
    Cc: Christoph Lameter
    Cc: Matt Mackall
    Cc: Nick Piggin
    Cc: KAMEZAWA Hiroyuki
    Reviewed-by: KOSAKI Motohiro
    Cc: Rik van Riel
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • [Summary]

    Split LRU-list of unused dentries to one per superblock to avoid soft
    lock up during NFS mounts and remounting of any filesystem.

    Previously I posted here:
    http://lkml.org/lkml/2008/3/5/590

    [Descriptions]

    - background

    dentry_unused is a list of dentries which are not referenced.
    dentry_unused grows up when references on directories or files are
    released. This list can be very long if there is huge free memory.

    - the problem

    When shrink_dcache_sb() is called, it scans all dentry_unused linearly
    under spin_lock(), and if dentry->d_sb is differnt from given
    superblock, scan next dentry. This scan costs very much if there are
    many entries, and very ineffective if there are many superblocks.

    IOW, When we need to shrink unused dentries on one dentry, but scans
    unused dentries on all superblocks in the system. For example, we scan
    500 dentries to unmount a filesystem, but scans 1,000,000 or more unused
    dentries on other superblocks.

    In our case , At mounting NFS*, shrink_dcache_sb() is called to shrink
    unused dentries on NFS, but scans 100,000,000 unused dentries on
    superblocks in the system such as local ext3 filesystems. I hear NFS
    mounting took 1 min on some system in use.

    * : NFS uses virtual filesystem in rpc layer, so NFS is affected by
    this problem.

    100,000,000 is possible number on large systems.

    Per-superblock LRU of unused dentried can reduce the cost in
    reasonable manner.

    - How to fix

    I found this problem is solved by David Chinner's "Per-superblock
    unused dentry LRU lists V3"(1), so I rebase it and add some fix to
    reclaim with fairness, which is in Andrew Morton's comments(2).

    1) http://lkml.org/lkml/2006/5/25/318
    2) http://lkml.org/lkml/2006/5/25/320

    Split LRU-list of unused dentries to each superblocks. Then, NFS
    mounting will check dentries under a superblock instead of all. But
    this spliting will break LRU of dentry-unused. So, I've attempted to
    make reclaim unused dentrins with fairness by calculate number of
    dentries to scan on this sb based on following way

    number of dentries to scan on this sb =
    count * (number of dentries on this sb / number of dentries in the machine)

    - ToDo
    - I have to measuring performance number and do stress tests.

    - When unmount occurs during prune_dcache(), scanning on same
    superblock, It is unable to reach next superblock because it is gone
    away. We restart scannig superblock from first one, it causes
    unfairness of reclaim unused dentries on first superblock. But I think
    this happens very rarely.

    - Test Results

    Result on 6GB boxes with excessive unused dentries.

    Without patch:

    $ cat /proc/sys/fs/dentry-state
    10181835 10180203 45 0 0 0
    # mount -t nfs 10.124.60.70:/work/kernel-src nfs
    real 0m1.830s
    user 0m0.001s
    sys 0m1.653s

    With this patch:
    $ cat /proc/sys/fs/dentry-state
    10236610 10234751 45 0 0 0
    # mount -t nfs 10.124.60.70:/work/kernel-src nfs
    real 0m0.106s
    user 0m0.002s
    sys 0m0.032s

    [akpm@linux-foundation.org: fix comments]
    Signed-off-by: Kentaro Makita
    Cc: Neil Brown
    Cc: Trond Myklebust
    Cc: David Chinner
    Cc: "J. Bruce Fields"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kentaro Makita
     
  • In __free_one_page(), the comment "Move the buddy up one level" appears
    attached to the break and by implication when the break is taken we are
    moving it up one level:

    if (!page_is_buddy(page, buddy, order))
    break; /* Move the buddy up one level. */

    In reality the inverse is true, we break out when we can no longer merge
    this page with its buddy. Looking back into pre-history (into the full
    git history) it appears that these two lines accidentally got joined as
    part of another change.

    Move the comment down where it belongs below the if and clarify its
    language.

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • The double indirection here is not needed anywhere and hence (at least)
    confusing.

    Signed-off-by: Jan Beulich
    Cc: Hugh Dickins
    Cc: Nick Piggin
    Cc: Christoph Lameter
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: "Luck, Tony"
    Cc: Paul Mundt
    Cc: "David S. Miller"
    Acked-by: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Beulich
     
  • This uses the new vm_ops->access to allow gdb to access the SPU local
    store. We currently prevent access to problem state registers, this can
    be done later if really needed but it's safer not to.

    [akpm@linux-foundation.org: fix typo]
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Rik van Riel
    Cc: Dave Airlie
    Cc: Hugh Dickins
    Cc: Paul Mackerras
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     
  • This adds ioremap_prot and pte_pgprot() so that one can extract protection
    bits from a PTE and use them to ioremap_prot() (in order to support ptrace
    of VM_IO | VM_PFNMAP as per Rik's patch).

    This moves a couple of flag checks around in the ioremap implementations
    of arch/powerpc. There's a side effect of allowing non-cacheable and
    non-guarded mappings on ppc32 which before would always have _PAGE_GUARDED
    set whenever _PAGE_NO_CACHE is.

    (standard ioremap will still set _PAGE_GUARDED, but ioremap_prot will be
    capable of setting such a non guarded mapping).

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Rik van Riel
    Cc: Dave Airlie
    Cc: Hugh Dickins
    Cc: Paul Mackerras
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     
  • Use generic_access_phys as the access_process_vm access function for
    /dev/mem mappings. This makes it possible to debug the X server.

    [akpm@linux-foundation.org: repair all the architectures which broke]
    Signed-off-by: Rik van Riel
    Cc: Benjamin Herrensmidt
    Cc: Dave Airlie
    Cc: Hugh Dickins
    Cc: Paul Mackerras
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rik van Riel
     
  • In order to be able to debug things like the X server and programs using
    the PPC Cell SPUs, the debugger needs to be able to access device memory
    through ptrace and /proc/pid/mem.

    This patch:

    Add the generic_access_phys access function and put the hooks in place
    to allow access_process_vm to access device or PPC Cell SPU memory.

    [riel@redhat.com: Add documentation for the vm_ops->access function]
    Signed-off-by: Rik van Riel
    Signed-off-by: Benjamin Herrensmidt
    Cc: Dave Airlie
    Cc: Hugh Dickins
    Cc: Paul Mackerras
    Cc: Arnd Bergmann
    Acked-by: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rik van Riel
     
  • There are no users of nopfn in the tree. Remove it.

    [hugh@veritas.com: fix build error]
    Signed-off-by: Nick Piggin
    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • generic_file_direct_IO is a common helper around the invocation of
    ->direct_IO. But there's almost nothing shared between the read and write
    side, so we're better off without this helper.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • It's confusing that set_max_huge_pages() contained two different
    variables named "ret", and although the code works correctly this should
    be fixed.

    The inner of the two variables can simply be removed.

    Spotted by sparse.

    Signed-off-by: Adrian Bunk
    Cc: "KOSAKI Motohiro"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • This patch adds proper extern declarations for five variables in
    include/linux/vmstat.h

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Every file should include the headers containing the externs for its
    global functions (in this case for sys_move_pages()).

    Signed-off-by: Adrian Bunk
    Acked-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Two zonelist patch series rewrote __page_alloc() largely. Now, it is just
    a wrapper function. Inlining them will save a function call.

    [akpm@linux-foundation.org: export __alloc_pages_internal]
    Cc: Lee Schermerhorn
    Cc: Mel Gorman
    Signed-off-by: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • [akpm@linux-foundation.org: remove unused variable]
    Signed-off-by: Nick Piggin
    Acked-by: Jes Sorensen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • This function has no external callers, so unexport it. Also fix its naming
    inconsistency.

    Signed-off-by: Johannes Weiner
    Cc: Ingo Molnar
    Cc: Yinghai Lu
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Cc: Andy Whitcroft
    Cc: Mel Gorman
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • All _core functions only need the bootmem data, not the whole node descriptor.
    Adjust the two functions that take the node descriptor unneededly.

    Signed-off-by: Johannes Weiner
    Cc: Ingo Molnar
    Cc: Yinghai Lu
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • The check for node_boot_start is bogus because we start freeing at the
    corresponding pfn. So check if the pfn is properly aligned instead in a more
    readable way and adjust the documentation.

    Also remove an unneeded accounting variable.

    Signed-off-by: Johannes Weiner
    Cc: Ingo Molnar
    Cc: Yinghai Lu
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • There are a lot of places that define either a single bootmem descriptor or an
    array of them. Use only one central array with MAX_NUMNODES items instead.

    Signed-off-by: Johannes Weiner
    Acked-by: Ralf Baechle
    Cc: Ingo Molnar
    Cc: Richard Henderson
    Cc: Russell King
    Cc: Tony Luck
    Cc: Hirokazu Takata
    Cc: Geert Uytterhoeven
    Cc: Kyle McMartin
    Cc: Paul Mackerras
    Cc: Paul Mundt
    Cc: David S. Miller
    Cc: Yinghai Lu
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • lib/debugobjects.c has a function to test if an object is on the stack.
    The block layer and ide needs it (they need to avoid DMA from/to stack
    buffers). This patch moves the function to include/linux/sched.h so that
    everyone can use it.

    lib/debugobjects.c uses current->stack but this patch uses a
    task_stack_page() accessor, which is a preferable way to access the stack.

    Signed-off-by: FUJITA Tomonori
    Cc: Christoph Lameter
    Cc: Andy Whitcroft
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     
  • This patch prints out the zonelists during boot for manual verification by the
    user if the mminit_loglevel is MMINIT_VERIFY or higher.

    Signed-off-by: Mel Gorman
    Cc: Christoph Lameter
    Cc: Andy Whitcroft
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • There are a number of different views to how much memory is currently active.
    There is the arch-independent zone-sizing view, the bootmem allocator and
    memory models view.

    Architectures register this information at different times and is not
    necessarily in sync particularly with respect to some SPARSEMEM limitations.

    This patch introduces mminit_validate_memmodel_limits() which is able to
    validate and correct PFN ranges with respect to the memory model. It is only
    SPARSEMEM that currently validates itself.

    Signed-off-by: Mel Gorman
    Cc: Christoph Lameter
    Cc: Andy Whitcroft
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Print out information on how the page flags are being used if mminit_loglevel
    is MMINIT_VERIFY or higher and unconditionally performs sanity checks on the
    flags regardless of loglevel.

    When the page flags are updated with section, node and zone information, a
    check are made to ensure the values can be retrieved correctly. Finally we
    confirm that pfn_to_page and page_to_pfn are the correct inverse functions.

    [akpm@linux-foundation.org: fix printk warnings]
    Signed-off-by: Mel Gorman
    Cc: Christoph Lameter
    Cc: Andy Whitcroft
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Boot initialisation is very complex, with significant numbers of
    architecture-specific routines, hooks and code ordering. While significant
    amounts of the initialisation is architecture-independent, it trusts the data
    received from the architecture layer. This is a mistake, and has resulted in
    a number of difficult-to-diagnose bugs.

    This patchset adds some validation and tracing to memory initialisation. It
    also introduces a few basic defensive measures. The validation code can be
    explicitly disabled for embedded systems.

    This patch:

    Add additional debugging and verification code for memory initialisation.

    Once enabled, the verification checks are always run and when required
    additional debugging information may be outputted via a mminit_loglevel=
    command-line parameter.

    The verification code is placed in a new file mm/mm_init.c. Ideally other mm
    initialisation code will be moved here over time.

    Signed-off-by: Mel Gorman
    Cc: Christoph Lameter
    Cc: Andy Whitcroft
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Flag platforms as HAVE_CLK (or not) in Kconfig, based on whether they
    support calls, so that otherwise portable drivers which need
    those calls can list that dependency.

    Something like this is a prerequisite for merging the musb_hdrc driver,
    currently used on platforms including Davinci, OMAP2430, OMAP3xx ... and
    the discrete TUSB6010 chip, which doesn't have a natural platform
    dependency. (Used with OMAP 2420 in current Nokia N8x0 tablets.)

    Signed-off-by: David Brownell
    Cc: Russell King
    Acked-by: Haavard Skinnemoen
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Paul Mundt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • This patch removes the no longer used is_tty().

    Signed-off-by: Adrian Bunk
    Acked-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • The existing HPET maintainer entries are somewhat unclear about which one
    applies to what part of the kernel.

    Signed-off-by: Clemens Ladisch
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Clemens Ladisch
     
  • James Bottomley warns that inclusion of linux/fs.h in a low level
    driver was always a danger signal. This patch moves
    memory_read_from_buffer() from fs.h to string.h and fixes includes in
    existing memory_read_from_buffer() users.

    Signed-off-by: Akinobu Mita
    Cc: James Bottomley
    Cc: Geert Uytterhoeven
    Cc: Zhang Rui
    Cc: Bob Moore
    Cc: Thomas Renninger
    Cc: Len Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

24 Jul, 2008

8 commits

  • * 'x86/auditsc' of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland:
    i386 syscall audit fast-path
    x86_64 ia32 syscall audit fast-path
    x86_64 syscall audit fast-path
    x86_64: remove bogus optimization in sysret_signal

    Linus Torvalds
     
  • * 'sched/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    sched: hrtick_enabled() should use cpu_active()
    sched, x86: clean up hrtick implementation
    sched: fix build error, provide partition_sched_domains() unconditionally
    sched: fix warning in inc_rt_tasks() to not declare variable 'rq' if it's not needed
    cpu hotplug: Make cpu_active_map synchronization dependency clear
    cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)
    sched: rework of "prioritize non-migratable tasks over migratable ones"
    sched: reduce stack size in isolated_cpu_setup()
    Revert parts of "ftrace: do not trace scheduler functions"

    Fixed up conflicts in include/asm-x86/thread_info.h (due to the
    TIF_SINGLESTEP unification vs TIF_HRTICK_RESCHED removal) and
    kernel/sched_fair.c (due to cpu_active_map vs for_each_cpu_mask_nr()
    introduction).

    Linus Torvalds
     
  • * 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (31 commits)
    NR_CPUS: Replace NR_CPUS in speedstep-centrino.c
    cpumask: Provide a generic set of CPUMASK_ALLOC macros, FIXUP
    NR_CPUS: Replace NR_CPUS in cpufreq userspace routines
    NR_CPUS: Replace per_cpu(..., smp_processor_id()) with __get_cpu_var
    NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genapic_flat_64.c
    NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genx2apic_uv_x.c
    NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/proc.c
    NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/mcheck/mce_64.c
    cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c, fix
    cpumask: Use optimized CPUMASK_ALLOC macros in the centrino_target
    cpumask: Provide a generic set of CPUMASK_ALLOC macros
    cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c
    cpumask: Optimize cpumask_of_cpu in kernel/time/tick-common.c
    cpumask: Optimize cpumask_of_cpu in drivers/misc/sgi-xp/xpc_main.c
    cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/ldt.c
    cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/io_apic_64.c
    cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr
    Revert "cpumask: introduce new APIs"
    cpumask: make for_each_cpu_mask a bit smaller
    net: Pass reference to cpumask variable in net/sunrpc/svc.c
    ...

    Fix up trivial conflicts in drivers/cpufreq/cpufreq.c manually

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

    * 'core/softlockup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    softlockup: fix invalid proc_handler for softlockup_panic
    softlockup: fix watchdog task wakeup frequency
    softlockup: fix watchdog task wakeup frequency
    softlockup: show irqtrace
    softlockup: print a module list on being stuck
    softlockup: fix NMI hangs due to lock race - 2.6.26-rc regression
    softlockup: fix false positives on nohz if CPU is 100% idle for more than 60 seconds
    softlockup: fix softlockup_thresh fix
    softlockup: fix softlockup_thresh unaligned access and disable detection at runtime
    softlockup: allow panic on lockup

    Linus Torvalds
     
  • * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (85 commits)
    [ARM] pxa: add base support for PXA930 Handheld Platform (aka SAAR)
    [ARM] pxa: add base support for PXA930 Evaluation Board (aka TavorEVB)
    [ARM] pxa: add base support for PXA930 (aka Tavor-P)
    [ARM] Update mach-types
    [ARM] pxa: make littleton to use the new smc91x platform data
    [ARM] pxa: make zylonite to use the new smc91x platform data
    [ARM] pxa: make mainstone to use the new smc91x platform data
    [ARM] pxa: make lubbock to use new smc91x platform data
    [NET] smc91x: prepare SMC_USE_PXA_DMA to be specified in platform data
    [NET] smc91x: prepare for SMC_IO_SHIFT to be a platform configurable variable
    [NET] smc91x: add SMC91X_NOWAIT flag to platform data
    [NET] smc91x: favor the use of SMC91X_USE_* instead of SMC_CAN_USE_*
    [NET] smc91x: remove "irq_flags" from "struct smc91x_platdata"
    [ARM] 5146/1: pxa2xx: convert all boards to call pxa2xx_transceiver_mode helper
    Support for LCD on e740 e750 e400 and e800 e-series PDAs
    E-series UDC support
    PXA UDC - allow use of inverted GPIO for pullup
    Add e350 support
    Fix broken e-series build
    E-series GPIO / IRQ definitions.
    ...

    Linus Torvalds
     
  • This adds fast paths for 32-bit syscall entry and exit when
    TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing.
    These paths does not need to save and restore all registers as
    the general case of tracing does. Avoiding the iret return path
    when syscall audit is enabled helps performance a lot.

    Signed-off-by: Roland McGrath

    Roland McGrath
     
  • This adds fast paths for 32-bit syscall entry and exit when
    TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing.
    These paths does not need to save and restore all registers as
    the general case of tracing does. Avoiding the iret return path
    when syscall audit is enabled helps performance a lot.

    Signed-off-by: Roland McGrath

    Roland McGrath
     
  • This adds a fast path for 64-bit syscall entry and exit when
    TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing.
    This path does not need to save and restore all registers as
    the general case of tracing does. Avoiding the iret return path
    when syscall audit is enabled helps performance a lot.

    Signed-off-by: Roland McGrath

    Roland McGrath