1. 16 5月, 2013 1 次提交
    • T
      workqueue: don't perform NUMA-aware allocations on offline nodes in wq_numa_init() · 1be0c25d
      Tejun Heo 提交于
      wq_numa_init() builds per-node cpumasks which are later used to make
      unbound workqueues NUMA-aware.  The cpumasks are allocated using
      alloc_cpumask_var_node() for all possible nodes.  Unfortunately, on
      machines with off-line nodes, this leads to NUMA-aware allocations on
      existing bug offline nodes, which in turn triggers BUG in the memory
      allocation code.
      
      Fix it by using NUMA_NO_NODE for cpumask allocations for offline
      nodes.
      
        kernel BUG at include/linux/gfp.h:323!
        invalid opcode: 0000 [#1] SMP
        Modules linked in:
        CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.9.0+ #1
        Hardware name: ProLiant BL465c G7, BIOS A19 12/10/2011
        task: ffff880234608000 ti: ffff880234602000 task.ti: ffff880234602000
        RIP: 0010:[<ffffffff8117495d>]  [<ffffffff8117495d>] new_slab+0x2ad/0x340
        RSP: 0000:ffff880234603bf8  EFLAGS: 00010246
        RAX: 0000000000000000 RBX: ffff880237404b40 RCX: 00000000000000d0
        RDX: 0000000000000001 RSI: 0000000000000003 RDI: 00000000002052d0
        RBP: ffff880234603c28 R08: 0000000000000000 R09: 0000000000000001
        R10: 0000000000000001 R11: ffffffff812e3aa8 R12: 0000000000000001
        R13: ffff8802378161c0 R14: 0000000000030027 R15: 00000000000040d0
        FS:  0000000000000000(0000) GS:ffff880237800000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
        CR2: ffff88043fdff000 CR3: 00000000018d5000 CR4: 00000000000007f0
        DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
        DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
        Stack:
         ffff880234603c28 0000000000000001 00000000000000d0 ffff8802378161c0
         ffff880237404b40 ffff880237404b40 ffff880234603d28 ffffffff815edba1
         ffff880237816140 0000000000000000 ffff88023740e1c0
        Call Trace:
         [<ffffffff815edba1>] __slab_alloc+0x330/0x4f2
         [<ffffffff81174b25>] kmem_cache_alloc_node_trace+0xa5/0x200
         [<ffffffff812e3aa8>] alloc_cpumask_var_node+0x28/0x90
         [<ffffffff81a0bdb3>] wq_numa_init+0x10d/0x1be
         [<ffffffff81a0bec8>] init_workqueues+0x64/0x341
         [<ffffffff810002ea>] do_one_initcall+0xea/0x1a0
         [<ffffffff819f1f31>] kernel_init_freeable+0xb7/0x1ec
         [<ffffffff815d50de>] kernel_init+0xe/0xf0
         [<ffffffff815ff89c>] ret_from_fork+0x7c/0xb0
        Code: 45  84 ac 00 00 00 f0 41 80 4d 00 40 e9 f6 fe ff ff 66 0f 1f 84 00 00 00 00 00 e8 eb 4b ff ff 49 89 c5 e9 05 fe ff ff <0f> 0b 4c 8b 73 38 44 89 ff 81 cf 00 00 20 00 4c 89 f6 48 c1 ee
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-and-Tested-by: NLingzhu Xiang <lxiang@redhat.com>
      1be0c25d
  2. 15 5月, 2013 2 次提交
  3. 11 5月, 2013 9 次提交
    • T
      workqueue: workqueue_congested() shouldn't translate WORK_CPU_UNBOUND into node number · d3251859
      Tejun Heo 提交于
      df2d5ae4 ("workqueue: map an unbound workqueues to multiple per-node
      pool_workqueues") made unbound workqueues to map to multiple per-node
      pool_workqueues and accordingly updated workqueue_contested() so that,
      for unbound workqueues, it maps the specified @cpu to the NUMA node
      number to obtain the matching pool_workqueue to query the congested
      state.
      
      Before this change, workqueue_congested() ignored @cpu for unbound
      workqueues as there was only one pool_workqueue and some users
      (fscache) called it with WORK_CPU_UNBOUND.  After the commit, this
      causes the following oops as WORK_CPU_UNBOUND gets translated to
      garbage by cpu_to_node().
      
        BUG: unable to handle kernel paging request at ffff8803598d98b8
        IP: [<ffffffff81043b7e>] unbound_pwq_by_node+0xa1/0xfa
        PGD 2421067 PUD 0
        Oops: 0000 [#1] SMP
        CPU: 1 PID: 2689 Comm: cat Tainted: GF            3.9.0-fsdevel+ #4
        task: ffff88003d801040 ti: ffff880025806000 task.ti: ffff880025806000
        RIP: 0010:[<ffffffff81043b7e>]  [<ffffffff81043b7e>] unbound_pwq_by_node+0xa1/0xfa
        RSP: 0018:ffff880025807ad8  EFLAGS: 00010202
        RAX: 0000000000000001 RBX: ffff8800388a2400 RCX: 0000000000000003
        RDX: ffff880025807fd8 RSI: ffffffff81a31420 RDI: ffff88003d8016e0
        RBP: ffff880025807ae8 R08: ffff88003d801730 R09: ffffffffa00b4898
        R10: ffffffff81044217 R11: ffff88003d801040 R12: 0000000064206e97
        R13: ffff880036059d98 R14: ffff880038cc8080 R15: ffff880038cc82d0
        FS:  00007f21afd9c740(0000) GS:ffff88003d100000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
        CR2: ffff8803598d98b8 CR3: 000000003df49000 CR4: 00000000000007e0
        DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
        DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
        Stack:
         ffff8800388a2400 0000000000000002 ffff880025807b18 ffffffff810442ce
         ffffffff81044217 ffff880000000002 ffff8800371b4080 ffff88003d112ec0
         ffff880025807b38 ffffffffa00810b0 ffff880036059d88 ffff880036059be8
        Call Trace:
         [<ffffffff810442ce>] workqueue_congested+0xb7/0x12c
         [<ffffffffa00810b0>] fscache_enqueue_object+0xb2/0xe8 [fscache]
         [<ffffffffa007facd>] __fscache_acquire_cookie+0x3b9/0x56c [fscache]
         [<ffffffffa00ad8fe>] nfs_fscache_set_inode_cookie+0xee/0x132 [nfs]
         [<ffffffffa009e112>] do_open+0x9/0xd [nfs]
         [<ffffffff810e804a>] do_dentry_open+0x175/0x24b
         [<ffffffff810e8298>] finish_open+0x41/0x51
      
      Fix it by using smp_processor_id() if @cpu is WORK_CPU_UNBOUND.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-by: NDavid Howells <dhowells@redhat.com>
      Tested-and-Acked-by: NDavid Howells <dhowells@redhat.com>
      d3251859
    • L
      Merge branch 'for-3.10' of git://linux-nfs.org/~bfields/linux · 2dbd3cac
      Linus Torvalds 提交于
      Pull nfsd fixes from Bruce Fields:
       "Small fixes for two bugs and two warnings"
      
      * 'for-3.10' of git://linux-nfs.org/~bfields/linux:
        nfsd: fix oops when legacy_recdir_name_error is passed a -ENOENT error
        SUNRPC: fix decoding of optional gss-proxy xdr fields
        SUNRPC: Refactor gssx_dec_option_array() to kill uninitialized warning
        nfsd4: don't allow owner override on 4.1 CLAIM_FH opens
      2dbd3cac
    • L
      Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 · a77c0058
      Linus Torvalds 提交于
      Pull x86 platform drivers from Matthew Garrett:
       "Small set of updates, mainly trivial bugfixes and some small updates
        to deal with newer hardware.
      
        There's also a new driver that allows qemu guests to notify the
        hypervisor that they've just paniced, which seems useful."
      
      * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86:
        Add support for fan button on Ideapad Z580
        pvpanic: pvpanic device driver
        asus-nb-wmi: set wapf=4 for ASUSTeK COMPUTER INC. X75A
        drivers: platform: x86: Use PTR_RET function
        sony-laptop: SVS151290S kbd backlight and gfx switch support
        hp-wmi: add more definitions for new event_id's
        dell-laptop: Fix krealloc() misuse in parse_da_table()
        hp_accel: Ignore the error from lis3lv02d_poweron() at resume
        dell: add new dell WMI format for the AIO machines
      a77c0058
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal · 3644bc2e
      Linus Torvalds 提交于
      Pull stray syscall bits from Al Viro:
       "Several syscall-related commits that were missing from the original"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
        switch compat_sys_sysctl to COMPAT_SYSCALL_DEFINE
        unicore32: just use mmap_pgoff()...
        unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE
        x86, vm86: fix VM86 syscalls: use SYSCALL_DEFINEx(...)
      3644bc2e
    • L
      Merge tag 'ecryptfs-3.10-rc1-ablkcipher' of... · 6fad8d02
      Linus Torvalds 提交于
      Merge tag 'ecryptfs-3.10-rc1-ablkcipher' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs
      
      Pull eCryptfs update from Tyler Hicks:
       "Improve performance when AES-NI (and most likely other crypto
        accelerators) is available by moving to the ablkcipher crypto API.
        The improvement is more apparent on faster storage devices.
      
        There's no noticeable change when hardware crypto is not available"
      
      * tag 'ecryptfs-3.10-rc1-ablkcipher' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
        eCryptfs: Use the ablkcipher crypto API
      6fad8d02
    • L
      Merge tag 'for-linus-20130509' of git://git.infradead.org/~dwmw2/random-2.6 · f741df1f
      Linus Torvalds 提交于
      Pull misc fixes from David Woodhouse:
       "This is some miscellaneous cleanups that don't really belong anywhere
        else (or were ignored), that have been sitting in linux-next for some
        time.  Two of them are fixes resulting from my audit of krealloc()
        usage that don't seem to have elicited any response when I posted
        them, and the other three are patches from Artem removing dead code."
      
      * tag 'for-linus-20130509' of git://git.infradead.org/~dwmw2/random-2.6:
        pcmcia: remove RPX board stuff
        m68k: remove rpxlite stuff
        pcmcia: remove Motorola MBX860 support
        params: Fix potential memory leak in add_sysfs_param()
        dell-laptop: Fix krealloc() misuse in parse_da_table()
      f741df1f
    • L
      Merge tag 'kvm-3.10-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm · c67723eb
      Linus Torvalds 提交于
      Pull kvm fixes from Gleb Natapov:
       "Most of the fixes are in the emulator since now we emulate more than
        we did before for correctness sake we see more bugs there, but there
        is also an OOPS fixed and corruption of xcr0 register."
      
      * tag 'kvm-3.10-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: emulator: emulate SALC
        KVM: emulator: emulate XLAT
        KVM: emulator: emulate AAM
        KVM: VMX: fix halt emulation while emulating invalid guest sate
        KVM: Fix kvm_irqfd_init initialization
        KVM: x86: fix maintenance of guest/host xcr0 state
      c67723eb
    • L
      Merge tag 'dm-3.10-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm · ec667158
      Linus Torvalds 提交于
      Pull device-mapper updates from Alasdair Kergon:
       "Allow devices that hold metadata for the device-mapper thin
        provisioning target to be extended easily; allow WRITE SAME on
        multipath devices; an assortment of little fixes and clean-ups."
      
      * tag 'dm-3.10-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm: (21 commits)
        dm cache: set config value
        dm cache: move config fns
        dm thin: generate event when metadata threshold passed
        dm persistent metadata: add space map threshold callback
        dm persistent data: add threshold callback to space map
        dm thin: detect metadata device resizing
        dm persistent data: support space map resizing
        dm thin: open dev read only when possible
        dm thin: refactor data dev resize
        dm cache: replace memcpy with struct assignment
        dm cache: fix typos in comments
        dm cache policy: fix description of lookup fn
        dm: document iterate_devices
        dm persistent data: fix error message typos
        dm cache: tune migration throttling
        dm mpath: enable WRITE SAME support
        dm table: fix write same support
        dm bufio: avoid a possible __vmalloc deadlock
        dm snapshot: fix error return code in snapshot_ctr
        dm cache: fix error return code in cache_create
        ...
      ec667158
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · f755407d
      Linus Torvalds 提交于
      Pull HID fixes from Jiri Kosina:
      
       - fix usage of sleeping lock in atomic context from Jiri Kosina
      
       - build fix for hid-steelseries under certain .config setups by Simon Wood
      
       - simple mismerge fix from Fernando Luis Vázquez Cao
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: debug: fix RCU preemption issue
        HID: hid-steelseries fix led class build issue
        HID: reintroduce fix-up for certain Sony RF receivers
      f755407d
  4. 10 5月, 2013 28 次提交