* Ingo Molnar <mi...@kernel.org> wrote: > Linus, > > Please pull the latest locking-core-for-linus git tree from: > > git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git > locking-core-for-linus > > # HEAD: bc88c10d7e6900916f5e1ba3829d66a9de92b633 locking/spinlock/debug: > Remove spinlock lockup detection code
Hm, Peter just reminded me that I forgot to apply a fix that squashes a boot time warning on some x86 CPUs. I've pushed a new version with that single commit (95cb64c1fe6) appended, the updated diffstat and shortlog is below: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-for-linus # HEAD: 95cb64c1fe61e70685a95f6260c8e9cd219fe08c fork: Fix task_struct alignment ... sorry about this! Thanks, Ingo ------------------> Andy Shevchenko (1): locking/jump_labels: Update bug_at() boot message Byungchul Park (1): lockdep: Fix incorrect condition to print bug msgs for MAX_LOCKDEP_CHAIN_HLOCKS Chris Wilson (8): locking/ww_mutex: Fix compilation of __WW_MUTEX_INITIALIZER locking/ww_mutex: Add ww_mutex to locktorture test locking/ww_mutex: Begin kselftests for ww_mutex locking/ww_mutex: Add kselftests for ww_mutex AA deadlock detection locking/ww_mutex: Add kselftests for ww_mutex ABBA deadlock detection locking/ww_mutex: Add kselftests for resolving ww_mutex cyclic deadlocks locking/ww_mutex: Add kselftests for ww_mutex stress locking/ww_mutex: Add ww_mutex to tools/testing/selftests Davidlohr Bueso (8): kernel/exit: Compute 'current' directly drivers/tty: Compute 'current' directly kernel/locking: Compute 'current' directly sched/core: Remove set_task_state() sched/wait, RCU: Introduce rcuwait machinery locking/percpu-rwsem: Replace waitqueue with rcuwait sched/wait, rcuwait: Fix typo in comment sched/wake_q: Clarify queue reinit comment Ingo Molnar (1): locking/ww_mutex: Turn off __must_check for now Kees Cook (1): lkdtm: Convert to refcount_t testing Luis R. Rodriguez (1): jump_labels: Move header guard #endif down where it belongs Nicolai Hähnle (10): locking/ww_mutex: Extract stamp comparison to __ww_mutex_stamp_after() locking/ww_mutex: Set use_ww_ctx even when locking without a context locking/ww_mutex: Remove the __ww_mutex_lock*() inline wrappers locking/ww_mutex: Add waiters in stamp order locking/ww_mutex: Notify waiters that have to back off while adding tasks to wait list locking/ww_mutex: Optimize ww-mutexes by waking at most one waiter for backoff when acquiring the lock locking/ww_mutex: Re-check ww->ctx in the inner optimistic spin loop locking/ww_mutex: Optimize ww-mutexes by yielding to other waiters from optimistic spin locking/mutex: Initialize mutex_waiter::ww_ctx with poison when debugging locking/ww_mutex/Documentation: Update the design document Pan Xinhui (1): locking/pvqspinlock: Don't wait if vCPU is preempted Peter Zijlstra (12): locking/mutex: Fix mutex handoff locking/mutex: Improve inlining locking/atomic, kref: Add KREF_INIT() locking/atomic, kref: Add kref_read() locking/atomic, kref: Kill kref_sub() locking/atomic, kref: Use kref_get_unless_zero() more locking/atomic, kref: Avoid more abuse locking/atomic, kref: Implement kref_put_lock() locking/mutex: Fix lockdep_assert_held() fail refcount_t: Introduce a special purpose refcount type kref: Implement 'struct kref' using refcount_t fork: Fix task_struct alignment Steven Rostedt (VMware) (1): locking/rtmutex: Flip unlikely() branch to likely() in __rt_mutex_slowlock() Waiman Long (5): locking/spinlocks: Remove the unused spin_lock_bh_nested() API locking/spinlocks/x86, paravirt: Remove paravirt_ticketlocks_enabled locking/rwsem: Remove unnecessary atomic_long_t casts locking/rwsem: Reinit wake_q after use locking/spinlock/debug: Remove spinlock lockup detection code Documentation/locking/ww-mutex-design.txt | 12 +- arch/um/drivers/random.c | 2 +- arch/x86/include/asm/spinlock.h | 3 - arch/x86/kernel/jump_label.c | 3 +- arch/x86/kernel/kvm.c | 14 - arch/x86/kernel/paravirt-spinlocks.c | 3 - arch/x86/xen/spinlock.c | 19 - drivers/block/drbd/drbd_bitmap.c | 2 +- drivers/block/drbd/drbd_main.c | 7 +- drivers/block/drbd/drbd_req.c | 31 +- drivers/block/rbd.c | 8 +- drivers/block/virtio_blk.c | 2 +- drivers/gpu/drm/drm_gem_cma_helper.c | 2 +- drivers/gpu/drm/drm_info.c | 2 +- drivers/gpu/drm/drm_mode_object.c | 4 +- drivers/gpu/drm/etnaviv/etnaviv_gem.c | 2 +- drivers/gpu/drm/i915/i915_gem_object.h | 2 +- drivers/gpu/drm/msm/msm_gem.c | 2 +- drivers/gpu/drm/nouveau/nouveau_fence.c | 2 +- drivers/gpu/drm/omapdrm/omap_gem.c | 2 +- drivers/gpu/drm/ttm/ttm_bo.c | 63 +- drivers/gpu/drm/ttm/ttm_execbuf_util.c | 4 +- drivers/gpu/drm/ttm/ttm_object.c | 2 +- drivers/infiniband/hw/cxgb3/iwch_cm.h | 6 +- drivers/infiniband/hw/cxgb3/iwch_qp.c | 2 +- drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 6 +- drivers/infiniband/hw/cxgb4/qp.c | 2 +- drivers/infiniband/hw/usnic/usnic_ib_sysfs.c | 6 +- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 4 +- drivers/md/dm-bufio.c | 2 +- drivers/md/dm-crypt.c | 4 +- drivers/md/persistent-data/dm-block-manager.c | 4 +- drivers/misc/genwqe/card_dev.c | 2 +- drivers/misc/lkdtm.h | 8 +- drivers/misc/lkdtm_bugs.c | 87 ++- drivers/misc/lkdtm_core.c | 8 +- drivers/misc/mei/debugfs.c | 2 +- drivers/pci/hotplug/pnv_php.c | 2 +- drivers/pci/slot.c | 2 +- drivers/scsi/bnx2fc/bnx2fc_io.c | 8 +- drivers/scsi/cxgbi/libcxgbi.h | 4 +- drivers/scsi/lpfc/lpfc_debugfs.c | 2 +- drivers/scsi/lpfc/lpfc_els.c | 2 +- drivers/scsi/lpfc/lpfc_hbadisc.c | 40 +- drivers/scsi/lpfc/lpfc_init.c | 3 +- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 4 +- drivers/staging/android/ion/ion.c | 2 +- drivers/staging/comedi/comedi_buf.c | 2 +- .../staging/lustre/lnet/libcfs/linux/linux-debug.c | 2 +- drivers/target/target_core_pr.c | 10 +- drivers/target/tcm_fc/tfc_sess.c | 2 +- drivers/tty/tty_ldsem.c | 18 +- drivers/usb/gadget/function/f_fs.c | 2 +- drivers/usb/mon/mon_main.c | 2 +- fs/exofs/sys.c | 2 +- fs/fuse/fuse_i.h | 2 +- fs/ocfs2/cluster/netdebug.c | 2 +- fs/ocfs2/cluster/tcp.c | 2 +- fs/ocfs2/dlm/dlmdebug.c | 12 +- fs/ocfs2/dlm/dlmdomain.c | 2 +- fs/ocfs2/dlm/dlmmaster.c | 8 +- fs/ocfs2/dlm/dlmunlock.c | 2 +- include/asm-generic/rwsem.h | 13 +- include/drm/drm_framebuffer.h | 2 +- include/drm/ttm/ttm_bo_api.h | 15 +- include/drm/ttm/ttm_bo_driver.h | 4 +- include/linux/jump_label.h | 4 +- include/linux/kref.h | 78 +-- include/linux/mutex.h | 5 +- include/linux/percpu-rwsem.h | 8 +- include/linux/poison.h | 1 + include/linux/rcuwait.h | 63 ++ include/linux/refcount.h | 294 ++++++++++ include/linux/sched.h | 37 +- include/linux/spinlock.h | 8 - include/linux/spinlock_api_smp.h | 2 - include/linux/spinlock_api_up.h | 1 - include/linux/sunrpc/cache.h | 2 +- include/linux/ww_mutex.h | 32 +- include/net/bluetooth/hci_core.h | 4 +- init/version.c | 4 +- kernel/exit.c | 52 +- kernel/fork.c | 6 +- kernel/locking/Makefile | 1 + kernel/locking/lockdep.c | 2 +- kernel/locking/locktorture.c | 73 +++ kernel/locking/mutex-debug.h | 17 - kernel/locking/mutex.c | 516 ++++++++++------ kernel/locking/mutex.h | 4 - kernel/locking/percpu-rwsem.c | 7 +- kernel/locking/qspinlock_paravirt.h | 2 +- kernel/locking/rtmutex.c | 2 +- kernel/locking/rwsem-spinlock.c | 18 +- kernel/locking/rwsem-xadd.c | 14 +- kernel/locking/semaphore.c | 7 +- kernel/locking/spinlock.c | 8 - kernel/locking/spinlock_debug.c | 86 +-- kernel/locking/test-ww_mutex.c | 646 +++++++++++++++++++++ kernel/pid.c | 4 +- lib/Kconfig.debug | 25 + net/bluetooth/6lowpan.c | 2 +- net/bluetooth/a2mp.c | 4 +- net/bluetooth/amp.c | 4 +- net/bluetooth/l2cap_core.c | 4 +- net/ceph/messenger.c | 4 +- net/ceph/osd_client.c | 10 +- net/sunrpc/cache.c | 2 +- net/sunrpc/svc_xprt.c | 6 +- net/sunrpc/svcauth.c | 15 +- net/sunrpc/xprtrdma/svc_rdma_transport.c | 4 +- security/apparmor/include/apparmor.h | 6 - security/apparmor/include/policy.h | 4 +- tools/testing/selftests/locking/ww_mutex.sh | 10 + .../selftests/rcutorture/configs/lock/CFLIST | 1 + .../selftests/rcutorture/configs/lock/LOCK07 | 6 + .../selftests/rcutorture/configs/lock/LOCK07.boot | 1 + 116 files changed, 1864 insertions(+), 761 deletions(-) create mode 100644 include/linux/rcuwait.h create mode 100644 include/linux/refcount.h create mode 100644 kernel/locking/test-ww_mutex.c create mode 100644 tools/testing/selftests/locking/ww_mutex.sh create mode 100644 tools/testing/selftests/rcutorture/configs/lock/LOCK07 create mode 100644 tools/testing/selftests/rcutorture/configs/lock/LOCK07.boot [ ... ]