1. 14 Sep, 2009 14 commits
    • Nick Piggin's avatar
      slqb: dynamic array allocations · 50ed9354
      Nick Piggin authored
      Implement dynamic allocation for SLQB per-cpu and per-node arrays. This
      should hopefully have minimal runtime performance impact, because although
      there is an extra level of indirection to do allocations, the pointer should
      be in the cache hot area of the struct kmem_cache.
      
      It's not quite possible to use dynamic percpu allocator for this: firstly,
      that subsystem uses the slab allocator. Secondly, it doesn't have good
      support for per-node data. If those problems were improved, we could use it.
      For now, just implement a very very simple allocator until the kmalloc
      caches are up.
      
      On x86-64 with a NUMA MAXCPUS config, sizes look like this:
         text    data     bss     dec     hex filename
        29960  259565     100  289625   46b59 mm/slab.o
        34130  497130     696  531956   81df4 mm/slub.o
        24575 1634267  111136 1769978  1b01fa mm/slqb.o
        24845   13959     712   39516    9a5c mm/slqb.o + this patch
      
      SLQB is now 2 orders of magnitude smaller than it was, and an order of
      magnitude smaller than SLAB or SLUB (in total size -- text size has
      always been smaller). So it should now be very suitable for distro-type
      configs in this respect.
      
      As a side-effect the UP version of cpu_slab (which is embedded directly
      in the kmem_cache struct) moves up to the hot cachelines, so it need no
      longer be cacheline aligned on UP. The overall result should be a
      reduction in cacheline footprint on UP kernels.
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
      50ed9354
    • Nick Piggin's avatar
      slqb: fix small zero size alloc bug · d895335b
      Nick Piggin authored
      Fix a problem where SLQB did not correctly return ZERO_SIZE_PTR for a
      zero sized allocation.
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
      d895335b
    • Nick Piggin's avatar
      SLQB slab allocator · 6d084197
      Nick Piggin authored
      Introducing the SLQB slab allocator.
      
      SLQB takes code and ideas from all other slab allocators in the tree.
      
      The primary method for keeping lists of free objects within the allocator
      is a singly-linked list, storing a pointer within the object memory itself
      (or a small additional space in the case of RCU destroyed slabs). This is
      like SLOB and SLUB, and opposed to SLAB, which uses arrays of objects, and
      metadata. This reduces memory consumption and makes smaller sized objects
      more realistic as there is less overhead.
      
      Using lists rather than arrays can reduce the cacheline footprint. When moving
      objects around, SLQB can move a list of objects from one CPU to another by
      simply manipulating a head pointer, wheras SLAB needs to memcpy arrays. Some
      SLAB per-CPU arrays can be up to 1K in size, which is a lot of cachelines that
      can be touched during alloc/free. Newly freed objects tend to be cache hot,
      and newly allocated ones tend to soon be touched anyway, so often there is
      little cost to using metadata in the objects.
      
      SLQB has a per-CPU LIFO freelist of objects like SLAB (but using lists rather
      than arrays). Freed objects are returned to this freelist if they belong to
      the node which our CPU belongs to. So objects allocated on one CPU can be
      added to the freelist of another CPU on the same node. When LIFO freelists need
      to be refilled or trimmed, SLQB takes or returns objects from a list of slabs.
      
      SLQB has per-CPU lists of slabs (which use struct page as their metadata
      including list head for this list). Each slab contains a singly-linked list of
      objects that are free in that slab (free, and not on a LIFO freelist). Slabs
      are freed as soon as all their objects are freed, and only allocated when there
      are no slabs remaining. They are taken off this slab list when if there are no
      free objects left. So the slab lists always only contain "partial" slabs; those
      slabs which are not completely full and not completely empty. SLQB slabs can be
      manipulated with no locking unlike other allocators which tend to use per-node
      locks. As the number of threads per socket increases, this should help improve
      the scalability of slab operations.
      
      Freeing objects to remote slab lists first batches up the objects on the
      freeing CPU, then moves them over at once to a list on the allocating CPU. The
      allocating CPU will then notice those objects and pull them onto the end of its
      freelist.  This remote freeing scheme is designed to minimise the number of
      cross CPU cachelines touched, short of going to a "crossbar" arrangement like
      SLAB has.  SLAB has "crossbars" of arrays of objects. That is,
      NR_CPUS*MAX_NUMNODES type arrays, which can become very bloated in huge systems
      (this could be hundreds of GBs for kmem caches for 4096 CPU, 1024 nodes
      systems).
      
      SLQB also has similar freelist, slablist structures per-node, which are
      protected by a lock, and usable by any CPU in order to do node specific
      allocations. These allocations tend not to be too frequent (short lived
      allocations should be node local, long lived allocations should not be
      too frequent).
      
      There is a good overview and illustration of the design here:
      
      http://lwn.net/Articles/311502/
      
      By using LIFO freelists like SLAB, SLQB tries to be very page-size agnostic.
      It tries very hard to use order-0 pages. This is good for both page allocator
      fragmentation, and slab fragmentation.
      
      SLQB initialistaion code attempts to be as simple and un-clever as possible.
      There are no multiple phases where different things come up. There is no
      weird self bootstrapping stuff. It just statically allocates the structures
      required to create the slabs that allocate other slab structures.
      
      SLQB uses much of the debugging infrastructure, and fine-grained sysfs
      statistics from SLUB. There is also a Documentation/vm/slqbinfo.c, derived
      from slabinfo.c, which can query the sysfs data.
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
      6d084197
    • Linus Torvalds's avatar
      Merge branch 'x86-setup-for-linus' of... · 0cc6d77e
      Linus Torvalds authored
      Merge branch 'x86-setup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-setup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86, e820: Guard against array overflowed in __e820_add_region()
        x86, setup: remove obsolete pre-Kconfig CONFIG_VIDEO_ variables
      0cc6d77e
    • Linus Torvalds's avatar
      Merge branch 'x86-percpu-for-linus' of... · 55e0715f
      Linus Torvalds authored
      Merge branch 'x86-percpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-percpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86, percpu: Collect hot percpu variables into one cacheline
        x86, percpu: Fix DECLARE/DEFINE_PER_CPU_PAGE_ALIGNED()
        x86, percpu: Add 'percpu_read_stable()' interface for cacheable accesses
      55e0715f
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · 7dfd54a9
      Linus Torvalds authored
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86, highmem_32.c: Clean up comment
        x86, pgtable.h: Clean up types
        x86: Clean up dump_pagetable()
      7dfd54a9
    • Linus Torvalds's avatar
      Merge branch 'x86-kbuild-for-linus' of... · 6512c0d6
      Linus Torvalds authored
      Merge branch 'x86-kbuild-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-kbuild-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: Simplify the Makefile in a minor way through use of cc-ifversion
      6512c0d6
    • Linus Torvalds's avatar
      Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · 625037cc
      Linus Torvalds authored
      * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86-64: move clts into batch cpu state updates when preloading fpu
        x86-64: move unlazy_fpu() into lazy cpu state part of context switch
        x86-32: make sure clts is batched during context switch
        x86: split out core __math_state_restore
      625037cc
    • Linus Torvalds's avatar
      Merge branch 'x86-debug-for-linus' of... · 8fafa0a7
      Linus Torvalds authored
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: Decrease the level of some NUMA messages to KERN_DEBUG
      8fafa0a7
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · c7208de3
      Linus Torvalds authored
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (22 commits)
        x86: Fix code patching for paravirt-alternatives on 486
        x86, msr: change msr-reg.o to obj-y, and export its symbols
        x86: Use hard_smp_processor_id() to get apic id for AMD K8 cpus
        x86, sched: Workaround broken sched domain creation for AMD Magny-Cours
        x86, mcheck: Use correct cpumask for shared bank4
        x86, cacheinfo: Fixup L3 cache information for AMD multi-node processors
        x86: Fix CPU llc_shared_map information for AMD Magny-Cours
        x86, msr: Fix msr-reg.S compilation with gas 2.16.1, on 32-bit too
        x86: Move kernel_fpu_using to irq_fpu_usable in asm/i387.h
        x86, msr: fix msr-reg.S compilation with gas 2.16.1
        x86, msr: Export the register-setting MSR functions via /dev/*/msr
        x86, msr: Create _on_cpu helpers for {rw,wr}msr_safe_regs()
        x86, msr: Have the _safe MSR functions return -EIO, not -EFAULT
        x86, msr: CFI annotations, cleanups for msr-reg.S
        x86, asm: Make _ASM_EXTABLE() usable from assembly code
        x86, asm: Add 32-bit versions of the combined CFI macros
        x86, AMD: Disable wrongly set X86_FEATURE_LAHF_LM CPUID bit
        x86, msr: Rewrite AMD rd/wrmsr variants
        x86, msr: Add rd/wrmsr interfaces with preset registers
        x86: add specific support for Intel Atom architecture
        ...
      c7208de3
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of... · 15b04042
      Linus Torvalds authored
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: Make memtype_seq_ops const
        x86: uv: Clean up uv_ptc_init(), use proc_create()
        x86: Use printk_once()
        x86/cpu: Clean up various files a bit
        x86: Remove duplicated #include
        x86, ipi: Clean up safe_smp_processor_id() by using the cpu_has_apic() macro helper
        x86: Clean up idt_descr and idt_tableby using NR_VECTORS instead of hardcoded number
        x86: Further clean up of mtrr/generic.c
        x86: Clean up mtrr/main.c
        x86: Clean up mtrr/state.c
        x86: Clean up mtrr/mtrr.h
        x86: Clean up mtrr/if.c
        x86: Clean up mtrr/generic.c
        x86: Clean up mtrr/cyrix.c
        x86: Clean up mtrr/cleanup.c
        x86: Clean up mtrr/centaur.c
        x86: Clean up mtrr/amd.c:
        x86: ds.c fix invalid assignment
      15b04042
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-generic-for-linus' of... · 9b74aec0
      Linus Torvalds authored
      Merge branch 'x86-asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: remove all now-duplicate header files
        x86: convert termios.h to the asm-generic version
        x86: convert almost generic headers to asm-generic version
        x86: convert trivial headers to asm-generic version
        x86: add copies of some headers to convert to asm-generic
      9b74aec0
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · b581af51
      Linus Torvalds authored
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86/i386: Put aligned stack-canary in percpu shared_aligned section
        x86/i386: Make sure stack-protector segment base is cache aligned
        x86: Detect stack protector for i386 builds on x86_64
        x86: allow "=rm" in native_save_fl()
        x86: properly annotate alternatives.c
        x86: Introduce GDT_ENTRY_INIT(), initialize bad_bios_desc statically
        x86, 32-bit: Use generic sys_pipe()
        x86: Introduce GDT_ENTRY_INIT(), fix APM
        x86: Introduce GDT_ENTRY_INIT()
        x86: Introduce set_desc_base() and set_desc_limit()
        x86: Remove unused patch_espfix_desc()
        x86: Use get_desc_base()
      b581af51
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of... · ffaf854b
      Linus Torvalds authored
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (24 commits)
        ACPI, x86: expose some IO-APIC routines when CONFIG_ACPI=n
        x86, apic: Slim down stack usage in early_init_lapic_mapping()
        x86, ioapic: Get rid of needless check and simplify ioapic_setup_resources()
        x86, ioapic: Define IO_APIC_DEFAULT_PHYS_BASE constant
        x86: Fix x86_model test in es7000_apic_is_cluster()
        x86, apic: Move dmar_table_init() out of enable_IR()
        x86, ioapic: Panic on irq-pin binding only if needed
        x86/apic: Enable x2APIC without interrupt remapping under KVM
        x86, apic: Drop redundant bit assignment
        x86, ioapic: Throw BUG instead of NULL dereference
        x86, ioapic: Introduce for_each_irq_pin() helper
        x86: Remove superfluous NULL pointer check in destroy_irq()
        x86/ioapic.c: unify ioapic_retrigger_irq()
        x86/ioapic.c: convert __target_IO_APIC_irq to conventional for() loop
        x86/ioapic.c: clean up replace_pin_at_irq_node logic and comments
        x86/ioapic.c: convert replace_pin_at_irq_node to conventional for() loop
        x86/ioapic.c: simplify add_pin_to_irq_node()
        x86/ioapic.c: convert io_apic_level_ack_pending loop to normal for() loop
        x86/ioapic.c: move lost comment to what seems like appropriate place
        x86/ioapic.c: remove redundant declaration of irq_pin_list
        ...
      ffaf854b
  2. 11 Sep, 2009 26 commits
    • Linus Torvalds's avatar
      Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6 · 86d71014
      Linus Torvalds authored
      * git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (87 commits)
        NFSv4: Disallow 'mount -t nfs4 -overs=2' and 'mount -t nfs4 -overs=3'
        NFS: Allow the "nfs" file system type to support NFSv4
        NFS: Move details of nfs4_get_sb() to a helper
        NFS: Refactor NFSv4 text-based mount option validation
        NFS: Mount option parser should detect missing "port="
        NFS: out of date comment regarding O_EXCL above nfs3_proc_create()
        NFS: Handle a zero-length auth flavor list
        SUNRPC: Ensure that sunrpc gets initialised before nfs, lockd, etc...
        nfs: fix compile error in rpc_pipefs.h
        nfs: Remove reference to generic_osync_inode from a comment
        SUNRPC: cache must take a reference to the cache detail's module on open()
        NFS: Use the DNS resolver in the mount code.
        NFS: Add a dns resolver for use with NFSv4 referrals and migration
        SUNRPC: Fix a typo in cache_pipefs_files
        nfs: nfs4xdr: optimize low level decoding
        nfs: nfs4xdr: get rid of READ_BUF
        nfs: nfs4xdr: simplify decode_exchange_id by reusing decode_opaque_inline
        nfs: nfs4xdr: get rid of COPYMEM
        nfs: nfs4xdr: introduce decode_sessionid helper
        nfs: nfs4xdr: introduce decode_verifier helper
        ...
      86d71014
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 86373435
      Linus Torvalds authored
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: (25 commits)
        pata_rz1000: use printk_once
        ahci: kill @force_restart and refine CLO for ahci_kick_engine()
        pata_cs5535: add pci id for AMD based CS5535 controllers
        ahci: Add AMD SB900 SATA/IDE controller device IDs
        drivers/ata: use resource_size
        sata_fsl: Defer non-ncq commands when ncq commands active
        libata: add SATA PMP revision information for spec 1.2
        libata: fix off-by-one error in ata_tf_read_block()
        ahci: Gigabyte GA-MA69VM-S2 can't do 64bit DMA
        ahci: make ahci_asus_m2a_vm_32bit_only() quirk more generic
        dmi: extend dmi_get_year() to dmi_get_date()
        dmi: fix date handling in dmi_get_year()
        libata: unbreak TPM filtering by reorganizing ata_scsi_pass_thru()
        sata_sis: convert to slave_link
        sata_sil24: always set protocol override for non-ATAPI data commands
        libata: Export AHCI capabilities
        libata: Delegate nonrot flag setting to SCSI
        [libata] Add pata_rdc driver for RDC ATA devices
        drivers/ata: Remove unnecessary semicolons
        libata: remove spindown skipping and warning
        ...
      86373435
    • Linus Torvalds's avatar
      Merge branch 'tracing-core-for-linus' of... · 483e3cd6
      Linus Torvalds authored
      Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (105 commits)
        ring-buffer: only enable ring_buffer_swap_cpu when needed
        ring-buffer: check for swapped buffers in start of committing
        tracing: report error in trace if we fail to swap latency buffer
        tracing: add trace_array_printk for internal tracers to use
        tracing: pass around ring buffer instead of tracer
        tracing: make tracing_reset safe for external use
        tracing: use timestamp to determine start of latency traces
        tracing: Remove mentioning of legacy latency_trace file from documentation
        tracing/filters: Defer pred allocation, fix memory leak
        tracing: remove users of tracing_reset
        tracing: disable buffers and synchronize_sched before resetting
        tracing: disable update max tracer while reading trace
        tracing: print out start and stop in latency traces
        ring-buffer: disable all cpu buffers when one finds a problem
        ring-buffer: do not count discarded events
        ring-buffer: remove ring_buffer_event_discard
        ring-buffer: fix ring_buffer_read crossing pages
        ring-buffer: remove unnecessary cpu_relax
        ring-buffer: do not swap buffers during a commit
        ring-buffer: do not reset while in a commit
        ...
      483e3cd6
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of... · 774a694f
      Linus Torvalds authored
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (64 commits)
        sched: Fix sched::sched_stat_wait tracepoint field
        sched: Disable NEW_FAIR_SLEEPERS for now
        sched: Keep kthreads at default priority
        sched: Re-tune the scheduler latency defaults to decrease worst-case latencies
        sched: Turn off child_runs_first
        sched: Ensure that a child can't gain time over it's parent after fork()
        sched: enable SD_WAKE_IDLE
        sched: Deal with low-load in wake_affine()
        sched: Remove short cut from select_task_rq_fair()
        sched: Turn on SD_BALANCE_NEWIDLE
        sched: Clean up topology.h
        sched: Fix dynamic power-balancing crash
        sched: Remove reciprocal for cpu_power
        sched: Try to deal with low capacity, fix update_sd_power_savings_stats()
        sched: Try to deal with low capacity
        sched: Scale down cpu_power due to RT tasks
        sched: Implement dynamic cpu_power
        sched: Add smt_gain
        sched: Update the cpu_power sum during load-balance
        sched: Add SD_PREFER_SIBLING
        ...
      774a694f
    • Linus Torvalds's avatar
      Merge branch 'perfcounters-core-for-linus' of... · 4f0ac854
      Linus Torvalds authored
      Merge branch 'perfcounters-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'perfcounters-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (60 commits)
        perf tools: Avoid unnecessary work in directory lookups
        perf stat: Clean up statistics calculations a bit more
        perf stat: More advanced variance computation
        perf stat: Use stddev_mean in stead of stddev
        perf stat: Remove the limit on repeat
        perf stat: Change noise calculation to use stddev
        x86, perf_counter, bts: Do not allow kernel BTS tracing for now
        x86, perf_counter, bts: Correct pointer-to-u64 casts
        x86, perf_counter, bts: Fail if BTS is not available
        perf_counter: Fix output-sharing error path
        perf trace: Fix read_string()
        perf trace: Print out in nanoseconds
        perf tools: Seek to the end of the header area
        perf trace: Fix parsing of perf.data
        perf trace: Sample timestamps as well
        perf_counter: Introduce new (non-)paranoia level to allow raw tracepoint access
        perf trace: Sample the CPU too
        perf tools: Work around strict aliasing related warnings
        perf tools: Clean up warnings list in the Makefile
        perf tools: Complete support for dynamic strings
        ...
      4f0ac854
    • Linus Torvalds's avatar
      Merge branch 'oprofile-for-linus' of... · b9356c53
      Linus Torvalds authored
      Merge branch 'oprofile-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'oprofile-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (55 commits)
        arch/x86/oprofile/op_model_amd.c: fix op_amd_handle_ibs() return type
        Revert "x86: oprofile/op_model_amd.c set return values for op_amd_handle_ibs()"
        x86/oprofile: Small coding style fixes
        x86/oprofile: Add counter reservation check for virtual counters
        x86/oprofile: Implement op_x86_virt_to_phys()
        oprofile: Adding switch counter to oprofile statistic variables
        x86/oprofile: Implement mux_clone()
        x86/oprofile: Enable multiplexing only if the model supports it
        x86/oprofile: Add function has_mux() to check multiplexing support
        x86/oprofile: Modify initialization of num_virt_counters
        x86/oprofile: Remove unused num_virt_controls from struct op_x86_model_spec
        x86/oprofile: Remove const qualifier from struct op_x86_model_spec
        x86/oprofile: Moving nmi_cpu_switch() in nmi_int.c
        x86/oprofile: Moving nmi_cpu_save/restore_mpx_registers() in nmi_int.c
        x86/oprofile: Moving nmi_setup_cpu_mux() in nmi_int.c
        x86/oprofile: Implement multiplexing setup/shutdown functions
        oprofile: Grouping multiplexing code in op_model_amd.c
        oprofile: Introduce op_x86_phys_to_virt()
        oprofile: Grouping multiplexing code in oprof.c
        oprofile: Remove oprofile_multiplexing_init()
        ...
      b9356c53
    • Linus Torvalds's avatar
      Merge branch 'irq-threaded-for-linus' of... · d90a7e86
      Linus Torvalds authored
      Merge branch 'irq-threaded-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'irq-threaded-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        genirq: Do not mask oneshot edge type interrupts
        genirq: Support nested threaded irq handling
        genirq: Add buslock support
        genirq: Add oneshot support
      d90a7e86
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of... · 12a49961
      Linus Torvalds authored
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        pci/intr_remapping: Allocate irq_iommu on node
        irq: Add irq_node() primitive
        irq: Make sure irq_desc for legacy irq get correct node setting
        genirq: Add prototype for handle_nested_irq()
        irq: Remove superfluous NULL pointer check in check_irq_resend()
        irq: Clean up by removing irqfixup MODULE_PARM_DESC()
        genirq: Fix comment describing suspend_device_irqs()
        genirq: Remove obsolete defines and typedefs
      12a49961
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of... · eee2775d
      Linus Torvalds authored
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (28 commits)
        rcu: Move end of special early-boot RCU operation earlier
        rcu: Changes from reviews: avoid casts, fix/add warnings, improve comments
        rcu: Create rcutree plugins to handle hotplug CPU for multi-level trees
        rcu: Remove lockdep annotations from RCU's _notrace() API members
        rcu: Add #ifdef to suppress __rcu_offline_cpu() warning in !HOTPLUG_CPU builds
        rcu: Add CPU-offline processing for single-node configurations
        rcu: Add "notrace" to RCU function headers used by ftrace
        rcu: Remove CONFIG_PREEMPT_RCU
        rcu: Merge preemptable-RCU functionality into hierarchical RCU
        rcu: Simplify rcu_pending()/rcu_check_callbacks() API
        rcu: Use debugfs_remove_recursive() simplify code.
        rcu: Merge per-RCU-flavor initialization into pre-existing macro
        rcu: Fix online/offline indication for rcudata.csv trace file
        rcu: Consolidate sparse and lockdep declarations in include/linux/rcupdate.h
        rcu: Renamings to increase RCU clarity
        rcu: Move private definitions from include/linux/rcutree.h to kernel/rcutree.h
        rcu: Expunge lingering references to CONFIG_CLASSIC_RCU, optimize on !SMP
        rcu: Delay rcu_barrier() wait until beginning of next CPU-hotunplug operation.
        rcu: Fix typo in rcu_irq_exit() comment header
        rcu: Make rcupreempt_trace.c look at offline CPUs
        ...
      eee2775d
    • Linus Torvalds's avatar
      Merge branch 'core-printk-for-linus' of... · 53e16fbd
      Linus Torvalds authored
      Merge branch 'core-printk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-printk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        printk: Fix "printk: Enable the use of more than one CON_BOOT (early console)"
        printk: Restore previous console_loglevel when re-enabling logging
        printk: Ensure that "console enabled" messages are printed on the console
        printk: Enable the use of more than one CON_BOOT (early console)
      53e16fbd
    • Linus Torvalds's avatar
      Merge branch 'core-locking-for-linus' of... · 4e3408d9
      Linus Torvalds authored
      Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/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: (32 commits)
        locking, m68k/asm-offsets: Rename signal defines
        locking: Inline spinlock code for all locking variants on s390
        locking: Simplify spinlock inlining
        locking: Allow arch-inlined spinlocks
        locking: Move spinlock function bodies to header file
        locking, m68k: Calculate thread_info offset with asm offset
        locking, m68k/asm-offsets: Rename pt_regs offset defines
        locking, sparc: Rename __spin_try_lock() and friends
        locking, powerpc: Rename __spin_try_lock() and friends
        lockdep: Remove recursion stattistics
        lockdep: Simplify lock_stat seqfile code
        lockdep: Simplify lockdep_chains seqfile code
        lockdep: Simplify lockdep seqfile code
        lockdep: Fix missing entries in /proc/lock_chains
        lockdep: Fix missing entry in /proc/lock_stat
        lockdep: Fix memory usage info of BFS
        lockdep: Reintroduce generation count to make BFS faster
        lockdep: Deal with many similar locks
        lockdep: Introduce lockdep_assert_held()
        lockdep: Fix style nits
        ...
      4e3408d9
    • Linus Torvalds's avatar
      Merge branch 'core-iommu-for-linus' of... · a66a5005
      Linus Torvalds authored
      Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/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: (59 commits)
        x86/gart: Do not select AGP for GART_IOMMU
        x86/amd-iommu: Initialize passthrough mode when requested
        x86/amd-iommu: Don't detach device from pt domain on driver unbind
        x86/amd-iommu: Make sure a device is assigned in passthrough mode
        x86/amd-iommu: Align locking between attach_device and detach_device
        x86/amd-iommu: Fix device table write order
        x86/amd-iommu: Add passthrough mode initialization functions
        x86/amd-iommu: Add core functions for pd allocation/freeing
        x86/dma: Mark iommu_pass_through as __read_mostly
        x86/amd-iommu: Change iommu_map_page to support multiple page sizes
        x86/amd-iommu: Support higher level PTEs in iommu_page_unmap
        x86/amd-iommu: Remove old page table handling macros
        x86/amd-iommu: Use 2-level page tables for dma_ops domains
        x86/amd-iommu: Remove bus_addr check in iommu_map_page
        x86/amd-iommu: Remove last usages of IOMMU_PTE_L0_INDEX
        x86/amd-iommu: Change alloc_pte to support 64 bit address space
        x86/amd-iommu: Introduce increase_address_space function
        x86/amd-iommu: Flush domains if address space size was increased
        x86/amd-iommu: Introduce set_dte_entry function
        x86/amd-iommu: Add a gneric version of amd_iommu_flush_all_devices
        ...
      a66a5005
    • Linus Torvalds's avatar
      Merge branch 'core-futexes-for-linus' of... · 7193bea5
      Linus Torvalds authored
      Merge branch 'core-futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        futex: Detect mismatched requeue targets
        futex: Correct futex_wait_requeue_pi() commentary
      7193bea5
    • Linus Torvalds's avatar
      Merge branch 'core-debug-for-linus' of... · 989aa44a
      Linus Torvalds authored
      Merge branch 'core-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        debug lockups: Improve lockup detection, fix generic arch fallback
        debug lockups: Improve lockup detection
      989aa44a
    • Linus Torvalds's avatar
      Merge branch 'core-cleanups-for-linus' of... · 4004f02d
      Linus Torvalds authored
      Merge branch 'core-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        workqueues: Improve schedule_work() documentation
      4004f02d
    • Trond Myklebust's avatar
      Merge branch 'nfs-for-2.6.32' · ab3bbaa8
      Trond Myklebust authored
      ab3bbaa8
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 332a3392
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (102 commits)
        crypto: sha-s390 - Fix warnings in import function
        crypto: vmac - New hash algorithm for intel_txt support
        crypto: api - Do not displace newly registered algorithms
        crypto: ansi_cprng - Fix module initialization
        crypto: xcbc - Fix alignment calculation of xcbc_tfm_ctx
        crypto: fips - Depend on ansi_cprng
        crypto: blkcipher - Do not use eseqiv on stream ciphers
        crypto: ctr - Use chainiv on raw counter mode
        Revert crypto: fips - Select CPRNG
        crypto: rng - Fix typo
        crypto: talitos - add support for 36 bit addressing
        crypto: talitos - align locks on cache lines
        crypto: talitos - simplify hmac data size calculation
        crypto: mv_cesa - Add support for Orion5X crypto engine
        crypto: cryptd - Add support to access underlaying shash
        crypto: gcm - Use GHASH digest algorithm
        crypto: ghash - Add GHASH digest algorithm for GCM
        crypto: authenc - Convert to ahash
        crypto: api - Fix aligned ctx helper
        crypto: hmac - Prehash ipad/opad
        ...
      332a3392
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · a9c86d42
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (377 commits)
        ASoC: au1x: PSC-AC97 bugfixes
        ALSA: dummy - Increase MAX_PCM_SUBSTREAMS to 128
        ALSA: dummy - Add debug proc file
        ALSA: Add const prefix to proc helper functions
        ALSA: Re-export snd_pcm_format_name() function
        ALSA: hda - Use auto model for HP laptops with ALC268 codec
        ALSA: cs46xx - Fix minimum period size
        ASoC: Fix WM835x Out4 capture enumeration
        ALSA: Remove unneeded ifdef from sound/core.h
        ALSA: Remove struct snd_monitor_file from public sound/core.h
        ASoC: Remove unuused hw_read_t
        sound: oxygen: work around MCE when changing volume
        ALSA: dummy - Fake buffer allocations
        ALSA: hda/realtek: Added support for CLEVO M540R subsystem, 6 channel + digital
        ASoC: fix pxa2xx-ac97.c breakage
        ALSA: dummy - Fix the timer calculation in systimer mode
        ALSA: dummy - Add more description
        ALSA: dummy - Better jiffies handling
        ALSA: dummy - Support high-res timer mode
        ALSA: Release v1.0.21
        ...
      a9c86d42
    • Linus Torvalds's avatar
      Merge branch 'writeback' of git://git.kernel.dk/linux-2.6-block · a12e4d30
      Linus Torvalds authored
      * 'writeback' of git://git.kernel.dk/linux-2.6-block:
        writeback: check for registered bdi in flusher add and inode dirty
        writeback: add name to backing_dev_info
        writeback: add some debug inode list counters to bdi stats
        writeback: get rid of pdflush completely
        writeback: switch to per-bdi threads for flushing data
        writeback: move dirty inodes from super_block to backing_dev_info
        writeback: get rid of generic_sync_sb_inodes() export
      a12e4d30
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 · 89af571c
      Linus Torvalds authored
      * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (54 commits)
        [S390] tape: Use pr_xxx instead of dev_xxx in shared driver code
        [S390] Wire up page fault events for software perf counters.
        [S390] Remove smp_cpu_not_running.
        [S390] Get rid of cpuid.h header file.
        [S390] Limit cpu detection to 256 physical cpus.
        [S390] tape: Fix device online messages
        [S390] Enable guest page hinting by default.
        [S390] use generic scatterlist.h
        [S390] s390dbf: Add description for usage of "%s" in sprintf events
        [S390] Initialize __LC_THREAD_INFO early.
        [S390] fix recursive locking on page_table_lock
        [S390] kvm: use console_initcall() to initialize s390 virtio console
        [S390] tape: reversed order of labels
        [S390] hypfs: Use "%u" instead of "%d" for unsigned ints in snprintf
        [S390] kernel: Print an error message if kernel NSS cannot be defined
        [S390] zcrypt: Free ap_device if dev_set_name fails.
        [S390] zcrypt: Use spin_lock_bh in suspend callback
        [S390] xpram: Remove checksum validation for suspend/resume
        [S390] vmur: Invalid allocation sequence for vmur class
        [S390] hypfs: remove useless variable qname
        ...
      89af571c
    • Linus Torvalds's avatar
      Merge branch 'kmemleak' of git://linux-arm.org/linux-2.6 · 1b195b17
      Linus Torvalds authored
      * 'kmemleak' of git://linux-arm.org/linux-2.6:
        kmemleak: Improve the "Early log buffer exceeded" error message
        kmemleak: fix sparse warning for static declarations
        kmemleak: fix sparse warning over overshadowed flags
        kmemleak: move common painting code together
        kmemleak: add clear command support
        kmemleak: use bool for true/false questions
        kmemleak: Do no create the clean-up thread during kmemleak_disable()
        kmemleak: Scan all thread stacks
        kmemleak: Don't scan uninitialized memory when kmemcheck is enabled
        kmemleak: Ignore the aperture memory hole on x86_64
        kmemleak: Printing of the objects hex dump
        kmemleak: Do not report alloc_bootmem blocks as leaks
        kmemleak: Save the stack trace for early allocations
        kmemleak: Mark the early log buffer as __initdata
        kmemleak: Dump object information on request
        kmemleak: Allow rescheduling during an object scanning
      1b195b17
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 2490138c
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (48 commits)
        RDMA/iwcm: Reject the connection when the cm_id is destroyed
        RDMA/cxgb3: Clean up properly on FW mismatch failures
        RDMA/cxgb3: Don't ignore insert_handle() failures
        MAINTAINERS: InfiniBand/RDMA mailing list transition to vger
        IB/mad: Allow tuning of QP0 and QP1 sizes
        IB/mad: Fix possible lock-lock-timer deadlock
        RDMA/nes: Map MTU to IB_MTU_* and correctly report link state
        RDMA/nes: Rework the disconn routine for terminate and flushing
        RDMA/nes: Use the flush code to fill in cqe error
        RDMA/nes: Make poll_cq return correct number of wqes during flush
        RDMA/nes: Use flush mechanism to set status for wqe in error
        RDMA/nes: Implement Terminate Packet
        RDMA/nes: Add CQ error handling
        RDMA/nes: Clean out CQ completions when QP is destroyed
        RDMA/nes: Change memory allocation for cqp request to GFP_ATOMIC
        RDMA/nes: Allocate work item for disconnect event handling
        RDMA/nes: Update refcnt during disconnect
        IB/mthca: Don't allow userspace open while recovering from catastrophic error
        IB/mthca: Distinguish multiple devices in /proc/interrupts
        IB/mthca: Annotate CQ locking
        ...
      2490138c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of... · f6f79190
      Linus Torvalds authored
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (57 commits)
        binfmt_elf: fix PT_INTERP bss handling
        TPM: Fixup boot probe timeout for tpm_tis driver
        sysfs: Add labeling support for sysfs
        LSM/SELinux: inode_{get,set,notify}secctx hooks to access LSM security context information.
        VFS: Factor out part of vfs_setxattr so it can be called from the SELinux hook for inode_setsecctx.
        KEYS: Add missing linux/tracehook.h #inclusions
        KEYS: Fix default security_session_to_parent()
        Security/SELinux: includecheck fix kernel/sysctl.c
        KEYS: security_cred_alloc_blank() should return int under all circumstances
        IMA: open new file for read
        KEYS: Add a keyctl to install a process's session keyring on its parent [try #6]
        KEYS: Extend TIF_NOTIFY_RESUME to (almost) all architectures [try #6]
        KEYS: Do some whitespace cleanups [try #6]
        KEYS: Make /proc/keys use keyid not numread as file position [try #6]
        KEYS: Add garbage collection for dead, revoked and expired keys. [try #6]
        KEYS: Flag dead keys to induce EKEYREVOKED [try #6]
        KEYS: Allow keyctl_revoke() on keys that have SETATTR but not WRITE perm [try #6]
        KEYS: Deal with dead-type keys appropriately [try #6]
        CRED: Add some configurable debugging [try #6]
        selinux: Support for the new TUN LSM hooks
        ...
      f6f79190
    • Catalin Marinas's avatar
      kmemleak: Improve the "Early log buffer exceeded" error message · addd72c1
      Catalin Marinas authored
      Based on a suggestion from Jaswinder, clarify what the user would need
      to do to avoid this error message from kmemleak.
      Reported-by: default avatarJaswinder Singh Rajput <jaswinder@kernel.org>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      addd72c1
    • Michael Holzheu's avatar
      [S390] tape: Use pr_xxx instead of dev_xxx in shared driver code · 59e36927
      Michael Holzheu authored
      For messages from the tape core that is shared between the 3590 and 34xx
      tape disciplines, we want to have the "tape" prefix instead of "tape_3590"
      or "tape_34xx". In order to fix this, we now use the pr_xxx printk macros.
      Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      59e36927
    • Heiko Carstens's avatar