13 Jun, 2009

4 commits

  • …nel/git/penberg/slab-2.6

    * 'topic/slab/earlyboot-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
    slab: setup cpu caches later on when interrupts are enabled
    slab,slub: don't enable interrupts during early boot
    slab: fix gfp flag in setup_cpu_cache()
    x86: make zap_low_mapping could be used early
    irq: slab alloc for default irq_affinity
    memcg: fix page_cgroup fatal error in FLATMEM

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest: (31 commits)
    lguest: add support for indirect ring entries
    lguest: suppress notifications in example Launcher
    lguest: try to batch interrupts on network receive
    lguest: avoid sending interrupts to Guest when no activity occurs.
    lguest: implement deferred interrupts in example Launcher
    lguest: remove obsolete LHREQ_BREAK call
    lguest: have example Launcher service all devices in separate threads
    lguest: use eventfds for device notification
    eventfd: export eventfd_signal and eventfd_fget for lguest
    lguest: allow any process to send interrupts
    lguest: PAE fixes
    lguest: PAE support
    lguest: Add support for kvm_hypercall4()
    lguest: replace hypercall name LHCALL_SET_PMD with LHCALL_SET_PGD
    lguest: use native_set_* macros, which properly handle 64-bit entries when PAE is activated
    lguest: map switcher with executable page table entries
    lguest: fix writev returning short on console output
    lguest: clean up length-used value in example launcher
    lguest: Segment selectors are 16-bit long. Fix lg_cpu.ss1 definition.
    lguest: beyond ARRAY_SIZE of cpu->arch.gdt
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-module-and-param:
    module: cleanup FIXME comments about trimming exception table entries.
    module: trim exception table on init free.
    module: merge module_alloc() finally
    uml module: fix uml build process due to this merge
    x86 module: merge the rest functions with macros
    x86 module: merge the same functions in module_32.c and module_64.c
    uvesafb: improve parameter handling.
    module_param: allow 'bool' module_params to be bool, not just int.
    module_param: add __same_type convenience wrapper for __builtin_types_compatible_p
    module_param: split perm field into flags and perm
    module_param: invbool should take a 'bool', not an 'int'
    cyber2000fb.c: use proper method for stopping unload if CONFIG_ARCH_SHARK

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

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: Provide _sdata in the vmlinux.lds.S file
    x86: handle initrd that extends into unusable memory

    Linus Torvalds
     

12 Jun, 2009

22 commits

  • This version requires that host and guest have the same PAE status.
    NX cap is not offered to the guest, yet.

    Signed-off-by: Matias Zabaljauregui
    Signed-off-by: Rusty Russell

    Matias Zabaljauregui
     
  • Add support for kvm_hypercall4(); PAE wants it.

    Signed-off-by: Matias Zabaljauregui
    Signed-off-by: Rusty Russell

    Matias Zabaljauregui
     
  • replace LHCALL_SET_PMD with LHCALL_SET_PGD hypercall name
    (That's really what it is, and the confusion gets worse with PAE support)

    Signed-off-by: Matias Zabaljauregui
    Signed-off-by: Rusty Russell
    Reported-by: Jeremy Fitzhardinge

    Matias Zabaljauregui
     
  • Some cleanups and replace direct assignment with native_set_* macros which properly handle 64-bit entries when PAE is activated

    Signed-off-by: Matias Zabaljauregui
    Signed-off-by: Rusty Russell

    Matias Zabaljauregui
     
  • The downside of the last patch which made restore_flags and irq_enable
    check interrupts is that they are now too big to be patched directly
    into the callsites, so the C versions are always used.

    But the C versions go via PV_CALLEE_SAVE_REGS_THUNK which saves all
    the registers. In fact, we don't need any registers in the fast path,
    so we can do better than this if we actually code them in assembler.

    The results are in the noise, but since it's about the same amount of
    code, it's worth applying.

    1GB Guest->Host: input(suppressed),output(suppressed)
    Before:
    Seconds: 0:16.53
    Packets: 377268,753673
    Interrupts: 22461,24297
    Notifications: 1(5245),21303(732370)
    Net IRQs triggered: 377023(245),42578(711095)

    After:
    Seconds: 0:16.48
    Packets: 377289,753673
    Interrupts: 22281,24465
    Notifications: 1(5245),21296(732377)
    Net IRQs triggered: 377060(229),42564(711109)

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • lguest never checked for pending interrupts when enabling interrupts, and
    things still worked. However, it makes a significant difference to TCP
    performance, so it's time we fixed it by introducing a pending_irq flag
    and checking it on irq_restore and irq_enable.

    These two routines are now too big to patch into the 8/10 bytes
    patch space, so we drop that code.

    Note: The high latency on interrupt delivery had a very curious
    effect: once everything else was optimized, networking without GSO was
    faster than networking with GSO, since more interrupts were sent and
    hence a greater chance of one getting through to the Guest!

    Note2: (Almost) Closing the same loophole for iret doesn't have any
    measurable effect, so I'm leaving that patch for the moment.

    Before:
    1GB tcpblast Guest->Host: 30.7 seconds
    1GB tcpblast Guest->Host (no GSO): 76.0 seconds

    After:
    1GB tcpblast Guest->Host: 6.8 seconds
    1GB tcpblast Guest->Host (no GSO): 27.8 seconds

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Copy from arch/x86/kernel/irqinit_32.c: we don't use the vectors beyond
    LGUEST_IRQS (if any), but we might as well set them all.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Everyone cut and paste this comment from my original one. We now do
    it generically, so cut the comments.

    Signed-off-by: Rusty Russell
    Cc: Amerigo Wang

    Rusty Russell
     
  • As Christoph Hellwig suggested, module_alloc() actually can be
    unified for i386 and x86_64 (of course, also UML).

    Signed-off-by: WANG Cong
    Cc: Christoph Hellwig
    Cc: 'Ingo Molnar'
    Signed-off-by: Rusty Russell

    Amerigo Wang
     
  • Merge the rest functions together, with proper preprocessing directives.
    Finally remove module_{32|64}.c.

    Signed-off-by: WANG Cong
    Cc: Ingo Molnar
    Signed-off-by: Rusty Russell

    Amerigo Wang
     
  • Merge the same functions both in module_32.c and module_64.c into
    module.c.

    This is the first step to merge both of them finally.

    Signed-off-by: WANG Cong
    Cc: Ingo Molnar
    Signed-off-by: Rusty Russell

    Amerigo Wang
     
  • Only one cpu is there, just call __flush_tlb for it. Fixes the following boot
    warning on x86:

    [ 0.000000] Memory: 885032k/915540k available (5993k kernel code, 29844k reserved, 3842k data, 428k init, 0k highmem)
    [ 0.000000] virtual kernel memory layout:
    [ 0.000000] fixmap : 0xffe17000 - 0xfffff000 (1952 kB)
    [ 0.000000] vmalloc : 0xf8615000 - 0xffe15000 ( 120 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xf7e15000 ( 894 MB)
    [ 0.000000] .init : 0xc19a5000 - 0xc1a10000 ( 428 kB)
    [ 0.000000] .data : 0xc15da4bb - 0xc199af6c (3842 kB)
    [ 0.000000] .text : 0xc1000000 - 0xc15da4bb (5993 kB)
    [ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
    [ 0.000000] ------------[ cut here ]------------
    [ 0.000000] WARNING: at kernel/smp.c:369 smp_call_function_many+0x50/0x1b0()
    [ 0.000000] Hardware name: System Product Name
    [ 0.000000] Modules linked in:
    [ 0.000000] Pid: 0, comm: swapper Not tainted 2.6.30-tip #52504
    [ 0.000000] Call Trace:
    [ 0.000000] [] warn_slowpath_common+0x65/0x95
    [ 0.000000] [] warn_slowpath_null+0x12/0x15
    [ 0.000000] [] smp_call_function_many+0x50/0x1b0
    [ 0.000000] [] ? do_flush_tlb_all+0x0/0x41
    [ 0.000000] [] ? do_flush_tlb_all+0x0/0x41
    [ 0.000000] [] smp_call_function+0x31/0x58
    [ 0.000000] [] ? do_flush_tlb_all+0x0/0x41
    [ 0.000000] [] on_each_cpu+0x26/0x65
    [ 0.000000] [] flush_tlb_all+0x19/0x1b
    [ 0.000000] [] zap_low_mappings+0x4d/0x56
    [ 0.000000] [] ? printk+0x14/0x17
    [ 0.000000] [] mem_init+0x23d/0x245
    [ 0.000000] [] start_kernel+0x17a/0x2d5
    [ 0.000000] [] ? unknown_bootoption+0x0/0x19a
    [ 0.000000] [] __init_begin+0x39/0x41
    [ 0.000000] ---[ end trace 4eaa2a86a8e2da22 ]---

    Reported-by: Ingo Molnar
    Signed-off-by: Yinghai Lu
    Signed-off-by: Pekka Enberg

    Yinghai Lu
     
  • _sdata is a common symbol defined by many architectures and made
    available to the kernel via asm-generic/sections.h. Kmemleak uses this
    symbol when scanning the data sections.

    [ Impact: add new global symbol ]

    Signed-off-by: Catalin Marinas
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Catalin Marinas
     
  • So we make sure MAXSMP gets a cleared cpumask

    Signed-off-by: Yinghai Lu
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     
  • On a system where system memory (according e820) is not covered by
    mtrr, mtrr_trim_memory converts a portion of memory to reserved, but
    bootloader has already put the initrd in that range.

    Thus, we need to have 64bit to use relocate_initrd too.

    [ Impact: fix using initrd when mtrr_trim_memory happen ]

    Signed-off-by: Yinghai Lu
    Signed-off-by: H. Peter Anvin
    Cc: stable@kernel.org

    Yinghai Lu
     
  • …el/git/tip/linux-2.6-tip

    * 'perfcounters-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (574 commits)
    perf_counter: Turn off by default
    perf_counter: Add counter->id to the throttle event
    perf_counter: Better align code
    perf_counter: Rename L2 to LL cache
    perf_counter: Standardize event names
    perf_counter: Rename enums
    perf_counter tools: Clean up u64 usage
    perf_counter: Rename perf_counter_limit sysctl
    perf_counter: More paranoia settings
    perf_counter: powerpc: Implement generalized cache events for POWER processors
    perf_counters: powerpc: Add support for POWER7 processors
    perf_counter: Accurate period data
    perf_counter: Introduce struct for sample data
    perf_counter tools: Normalize data using per sample period data
    perf_counter: Annotate exit ctx recursion
    perf_counter tools: Propagate signals properly
    perf_counter tools: Small frequency related fixes
    perf_counter: More aggressive frequency adjustment
    perf_counter/x86: Fix the model number of Intel Core2 processors
    perf_counter, x86: Correct some event and umask values for Intel processors
    ...

    Linus Torvalds
     
  • …/git/penberg/slab-2.6

    * 'topic/slab/earlyboot' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
    vgacon: use slab allocator instead of the bootmem allocator
    irq: use kcalloc() instead of the bootmem allocator
    sched: use slab in cpupri_init()
    sched: use alloc_cpumask_var() instead of alloc_bootmem_cpumask_var()
    memcg: don't use bootmem allocator in setup code
    irq/cpumask: make memoryless node zero happy
    x86: remove some alloc_bootmem_cpumask_var calling
    vt: use kzalloc() instead of the bootmem allocator
    sched: use kzalloc() instead of the bootmem allocator
    init: introduce mm_init()
    vmalloc: use kzalloc() instead of alloc_bootmem()
    slab: setup allocators earlier in the boot sequence
    bootmem: fix slab fallback on numa
    bootmem: use slab if bootmem is no longer available

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

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: memtest: use pointers of equal type for comparison

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (26 commits)
    amd64_edac: add MAINTAINERS entry
    EDAC: do not enable modules by default
    amd64_edac: do not enable module by default
    amd64_edac: add module registration routines
    amd64_edac: add ECC reporting initializers
    amd64_edac: add EDAC core-related initializers
    amd64_edac: add error decoding logic
    amd64_edac: add ECC chipkill syndrome mapping table
    amd64_edac: add per-family descriptors
    amd64_edac: add F10h-and-later methods-p3
    amd64_edac: add F10h-and-later methods-p2
    amd64_edac: add F10h-and-later methods-p1
    amd64_edac: add k8-specific methods
    amd64_edac: assign DRAM chip select base and mask in a family-specific way
    amd64_edac: add helper to dump relevant registers
    amd64_edac: add DRAM address type conversion facilities
    amd64_edac: add functionality to compute the DRAM hole
    amd64_edac: add sys addr to memory controller mapping helpers
    amd64_edac: add memory scrubber interface
    amd64_edac: add MCA error types
    ...

    Linus Torvalds
     
  • * 'kvm-updates/2.6.31' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (138 commits)
    KVM: Prevent overflow in largepages calculation
    KVM: Disable large pages on misaligned memory slots
    KVM: Add VT-x machine check support
    KVM: VMX: Rename rmode.active to rmode.vm86_active
    KVM: Move "exit due to NMI" handling into vmx_complete_interrupts()
    KVM: Disable CR8 intercept if tpr patching is active
    KVM: Do not migrate pending software interrupts.
    KVM: inject NMI after IRET from a previous NMI, not before.
    KVM: Always request IRQ/NMI window if an interrupt is pending
    KVM: Do not re-execute INTn instruction.
    KVM: skip_emulated_instruction() decode instruction if size is not known
    KVM: Remove irq_pending bitmap
    KVM: Do not allow interrupt injection from userspace if there is a pending event.
    KVM: Unprotect a page if #PF happens during NMI injection.
    KVM: s390: Verify memory in kvm run
    KVM: s390: Sanity check on validity intercept
    KVM: s390: Unlink vcpu on destroy - v2
    KVM: s390: optimize float int lock: spin_lock_bh --> spin_lock
    KVM: s390: use hrtimer for clock wakeup from idle - v2
    KVM: s390: Fix memory slot versus run - v3
    ...

    Linus Torvalds
     
  • Don't hardcode to node zero for early boot IRQ setup memory allocations.

    [ penberg@cs.helsinki.fi: minor cleanups ]
    Cc: Ingo Molnar
    Cc: Johannes Weiner
    Cc: Linus Torvalds
    Signed-off-by: Yinghai Lu
    Signed-off-by: Pekka Enberg

    Yinghai Lu
     
  • Now that we set up the slab allocator earlier, we can get rid of some
    alloc_bootmem_cpumask_var() calls in boot code.

    Cc: Ingo Molnar
    Cc: Johannes Weiner
    Cc: Linus Torvalds
    Signed-off-by: Yinghai Lu
    Signed-off-by: Pekka Enberg

    Yinghai Lu
     

11 Jun, 2009

14 commits

  • * serial-from-alan: (79 commits)
    moxa: prevent opening unavailable ports
    imx: serial: use tty_encode_baud_rate to set true rate
    imx: serial: add IrDA support to serial driver
    imx: serial: use rational library function
    lib: isolate rational fractions helper function
    imx: serial: handle initialisation failure correctly
    imx: serial: be sure to stop xmit upon shutdown
    imx: serial: notify higher layers in case xmit IRQ was not called
    imx: serial: fix one bit field type
    imx: serial: fix whitespaces (no changes in functionality)
    tty: use prepare/finish_wait
    tty: remove sleep_on
    sierra: driver interface blacklisting
    sierra: driver urb handling improvements
    tty: resolve some sierra breakage
    timbuart: Fix the termios logic
    serial: Added Timberdale UART driver
    tty: Add URL for ttydev queue
    devpts: unregister the file system on error
    tty: Untangle termios and mm mutex dependencies
    ...

    Linus Torvalds
     
  • Conflicts:
    arch/x86/kernel/irqinit.c
    arch/x86/kernel/irqinit_64.c
    arch/x86/kernel/traps.c
    arch/x86/mm/fault.c
    include/linux/sched.h
    kernel/exit.c

    Ingo Molnar
     
  • The top (fastest) and last level (biggest) caches are the most
    interesting ones, performance wise.

    Signed-off-by: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    LKML-Reference:
    [ Fixed the Nehalem LL table to LLC Reference/Miss events ]
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Pure renames only, to PERF_COUNT_HW_* and PERF_COUNT_SW_*.

    Signed-off-by: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • The legacy TCSETA{,W,F} ioctls failed to set the termio->c_line field
    on x86. This adds a missing get_user.

    The same ioctls also fail to report faulting user pointers, which
    we keep ignoring.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     
  • Commit c9690998ef48ffefeccb91c70a7739eebdea57f9 (x86: memtest: remove
    64-bit division) introduced following compile warning:

    arch/x86/mm/memtest.c: In function 'memtest':
    arch/x86/mm/memtest.c:56: warning: comparison of distinct pointer types lacks a cast
    arch/x86/mm/memtest.c:58: warning: comparison of distinct pointer types lacks a cast

    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • * 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (244 commits)
    Revert "x86, bts: reenable ptrace branch trace support"
    tracing: do not translate event helper macros in print format
    ftrace/documentation: fix typo in function grapher name
    tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK
    tracing: add protection around module events unload
    tracing: add trace_seq_vprint interface
    tracing: fix the block trace points print size
    tracing/events: convert block trace points to TRACE_EVENT()
    ring-buffer: fix ret in rb_add_time_stamp
    ring-buffer: pass in lockdep class key for reader_lock
    tracing: add annotation to what type of stack trace is recorded
    tracing: fix multiple use of __print_flags and __print_symbolic
    tracing/events: fix output format of user stack
    tracing/events: fix output format of kernel stack
    tracing/trace_stack: fix the number of entries in the header
    ring-buffer: discard timestamps that are at the start of the buffer
    ring-buffer: try to discard unneeded timestamps
    ring-buffer: fix bug in ring_buffer_discard_commit
    ftrace: do not profile functions when disabled
    tracing: make trace pipe recognize latency format flag
    ...

    Linus Torvalds
     
  • * 'oprofile-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    oprofile: introduce module_param oprofile.cpu_type
    oprofile: add support for Core i7 and Atom
    oprofile: remove undocumented oprofile.p4force option
    oprofile: re-add force_arch_perfmon option

    Linus Torvalds
     
  • * 'signal-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: hookup sys_rt_tgsigqueueinfo
    signals: implement sys_rt_tgsigqueueinfo
    signals: split do_tkill

    Linus Torvalds
     
  • We currently log hw.sample_period for PERF_SAMPLE_PERIOD, however this is
    incorrect. When we adjust the period, it will only take effect the next
    cycle but report it for the current cycle. So when we adjust the period
    for every cycle, we're always wrong.

    Solve this by keeping track of the last_period.

    Signed-off-by: Peter Zijlstra
    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • For easy extension of the sample data, put it in a structure.

    Signed-off-by: Peter Zijlstra
    Cc: Peter Zijlstra
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Arnaldo Carvalho de Melo
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • * 'iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (61 commits)
    amd-iommu: remove unnecessary "AMD IOMMU: " prefix
    amd-iommu: detach device explicitly before attaching it to a new domain
    amd-iommu: remove BUS_NOTIFY_BOUND_DRIVER handling
    dma-debug: simplify logic in driver_filter()
    dma-debug: disable/enable irqs only once in device_dma_allocations
    dma-debug: use pr_* instead of printk(KERN_* ...)
    dma-debug: code style fixes
    dma-debug: comment style fixes
    dma-debug: change hash_bucket_find from first-fit to best-fit
    x86: enable GART-IOMMU only after setting up protection methods
    amd_iommu: fix lock imbalance
    dma-debug: add documentation for the driver filter
    dma-debug: add dma_debug_driver kernel command line
    dma-debug: add debugfs file for driver filter
    dma-debug: add variables and checks for driver filter
    dma-debug: fix debug_dma_sync_sg_for_cpu and debug_dma_sync_sg_for_device
    dma-debug: use sg_dma_len accessor
    dma-debug: use sg_dma_address accessor instead of using dma_address directly
    amd-iommu: don't free dma adresses below 512MB with CONFIG_IOMMU_STRESS
    amd-iommu: don't preallocate page tables with CONFIG_IOMMU_STRESS
    ...

    Linus Torvalds
     
  • * 'x86-xen-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (42 commits)
    xen: cache cr0 value to avoid trap'n'emulate for read_cr0
    xen/x86-64: clean up warnings about IST-using traps
    xen/x86-64: fix breakpoints and hardware watchpoints
    xen: reserve Xen start_info rather than e820 reserving
    xen: add FIX_TEXT_POKE to fixmap
    lguest: update lazy mmu changes to match lguest's use of kvm hypercalls
    xen: honour VCPU availability on boot
    xen: add "capabilities" file
    xen: drop kexec bits from /sys/hypervisor since kexec isn't implemented yet
    xen/sys/hypervisor: change writable_pt to features
    xen: add /sys/hypervisor support
    xen/xenbus: export xenbus_dev_changed
    xen: use device model for suspending xenbus devices
    xen: remove suspend_cancel hook
    xen/dev-evtchn: clean up locking in evtchn
    xen: export ioctl headers to userspace
    xen: add /dev/xen/evtchn driver
    xen: add irq_from_evtchn
    xen: clean up gate trap/interrupt constants
    xen: set _PAGE_NX in __supported_pte_mask before pagetable construction
    ...

    Linus Torvalds
     
  • * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: move rdtsc_barrier() into the TSC vread method

    Linus Torvalds