[GIT PULL] locking changes for v4.13

From: Ingo Molnar
Date: Mon Jul 03 2017 - 04:07:25 EST


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: 5d6dec6fba38c3e2d408df108bb92ef4ac201f18 locking/refcount: Remove the half-implemented refcount_sub() API

The main changes in this cycle were:

- Add CONFIG_REFCOUNT_FULL=y to allow the disabling of the 'full' (robustness
checked) refcount_t implementation with slightly lower runtime overhead. (Kees Cook)

The lighter weight variant is the default. The two variants use the same API.
Having this variant was a precondition by some maintainers to merge refcount_t
cleanups.

- Add lockdep support for rtmutexes (Peter Zijlstra)

- liblockdep fixes and improvements (Sasha Levin, Ben Hutchings)

- ... misc fixes and improvements.

Thanks,

Ingo

------------------>
Alexander Sverdlin (2):
tools: Add install make target for liblockdep
tools/lib/lockdep: Don't mix fd-based and stream IO

Ben Hutchings (10):
tools/lib/lockdep: Fix undefined symbol prandom_u32
tools/lib/lockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain/: Depth
tools/lib/lockdep: Define the ARRAY_SIZE() macro
tools/lib/lockdep: Enable -Wall by default
tools/lib/lockdep: Fix 'unused value' warnings
tools/lib/lockdep: Fix 'set but not used' warnings
tools/lib/lockdep: Fix 'defined but not used' warning for init_utsname()
tools/lib/lockdep: Fix object file paths used in an out-of-tree build
tools/lib/lockdep: Remove double-quotes from soname
tools/lib/lockdep: Use LDFLAGS

Dmitry Vyukov (1):
locking/x86: Remove the unused atomic_inc_short() methd

Kees Cook (2):
locking/refcount: Create unchecked atomic_t implementation
locking/refcount: Remove the half-implemented refcount_sub() API

Levin, Alexander (Sasha Levin) (10):
MAINTAINERS: Update email for Sasha Levin
tools/lib/lockdep: Fix compilation for 4.11
tools/include: Add (mostly) empty include/linux/sched/mm.h
tools/lib/lockdep: Include err.h
tools/lib/lockdep: Add empty __is_[module,kernel]_percpu_address
tools/include: Add IS_ERR_OR_NULL to err.h
tools/lib/lockdep: Add dummy current_gfp_context()
tools/lib/lockdep: Hide liblockdep output from test results
tools/lib/lockdep: Remove private kernel headers
locking/rtmutex: Don't initialize lockdep when not required

Peter Zijlstra (4):
MAINTAINERS: Claim atomic*_t maintainership
rt_mutex: Add lockdep annotations
locking/selftest: Remove the bad unlock ordering test
locking/selftest: Add RT-mutex support

Vishal Thanki (1):
tools/lib/lockdep: Remove -lpthread compiler option


MAINTAINERS | 11 +-
arch/Kconfig | 9 ++
arch/tile/lib/atomic_asm_32.S | 3 +-
arch/x86/include/asm/atomic.h | 13 --
include/linux/refcount.h | 38 ++++-
include/linux/rtmutex.h | 25 ++-
kernel/locking/rtmutex-debug.c | 6 +-
kernel/locking/rtmutex-debug.h | 2 +-
kernel/locking/rtmutex.c | 37 ++++-
kernel/locking/rtmutex.h | 2 +-
lib/Kconfig.debug | 3 +
lib/locking-selftest-rtmutex.h | 11 ++
lib/locking-selftest.c | 133 ++++++++++++----
lib/refcount.c | 3 +
tools/Makefile | 8 +-
tools/include/asm/sections.h | 4 +
tools/include/linux/bitops.h | 10 ++
tools/include/linux/compiler.h | 12 ++
.../uinclude => include}/linux/debug_locks.h | 3 +-
tools/include/linux/delay.h | 4 +
tools/include/linux/err.h | 5 +
tools/include/linux/ftrace.h | 4 +
tools/include/linux/gfp.h | 4 +
.../lockdep/uinclude => include}/linux/hardirq.h | 0
tools/include/linux/interrupt.h | 4 +
.../lockdep/uinclude => include}/linux/irqflags.h | 8 +-
tools/include/linux/jhash.h | 175 +++++++++++++++++++++
.../lockdep/uinclude => include}/linux/kallsyms.h | 3 +-
.../uinclude => include}/linux/kern_levels.h | 0
tools/include/linux/kernel.h | 4 +
.../lockdep/uinclude => include}/linux/kmemcheck.h | 0
tools/include/linux/linkage.h | 4 +
.../lockdep/uinclude => include}/linux/lockdep.h | 34 ++--
.../lockdep/uinclude => include}/linux/module.h | 5 +
tools/include/linux/mutex.h | 4 +
tools/include/linux/proc_fs.h | 4 +
.../{lib/lockdep/uinclude => include}/linux/rcu.h | 3 +
tools/include/linux/sched/clock.h | 4 +
tools/include/linux/sched/mm.h | 4 +
tools/include/linux/sched/task.h | 4 +
tools/include/linux/seq_file.h | 4 +
tools/include/linux/spinlock.h | 26 +++
.../uinclude => include}/linux/stacktrace.h | 0
tools/include/linux/unaligned/packed_struct.h | 46 ++++++
tools/include/trace/events/lock.h | 4 +
tools/lib/lockdep/Makefile | 9 +-
tools/lib/lockdep/lockdep.c | 19 +++
tools/lib/lockdep/preload.c | 5 +-
tools/lib/lockdep/rbtree.c | 2 +-
tools/lib/lockdep/run_tests.sh | 8 +-
tools/lib/lockdep/uinclude/asm/hash.h | 6 -
tools/lib/lockdep/uinclude/asm/hweight.h | 3 -
tools/lib/lockdep/uinclude/asm/sections.h | 3 -
tools/lib/lockdep/uinclude/linux/bitops.h | 3 -
tools/lib/lockdep/uinclude/linux/compiler.h | 10 --
tools/lib/lockdep/uinclude/linux/delay.h | 3 -
tools/lib/lockdep/uinclude/linux/ftrace.h | 3 -
tools/lib/lockdep/uinclude/linux/gfp.h | 3 -
tools/lib/lockdep/uinclude/linux/hash.h | 1 -
tools/lib/lockdep/uinclude/linux/interrupt.h | 3 -
tools/lib/lockdep/uinclude/linux/kernel.h | 47 ------
tools/lib/lockdep/uinclude/linux/linkage.h | 3 -
tools/lib/lockdep/uinclude/linux/list.h | 1 -
tools/lib/lockdep/uinclude/linux/mutex.h | 3 -
tools/lib/lockdep/uinclude/linux/poison.h | 1 -
tools/lib/lockdep/uinclude/linux/prefetch.h | 6 -
tools/lib/lockdep/uinclude/linux/proc_fs.h | 3 -
.../lib/lockdep/uinclude/linux/rbtree_augmented.h | 2 -
tools/lib/lockdep/uinclude/linux/seq_file.h | 3 -
tools/lib/lockdep/uinclude/linux/spinlock.h | 25 ---
tools/lib/lockdep/uinclude/linux/stringify.h | 7 -
tools/lib/lockdep/uinclude/trace/events/lock.h | 3 -
72 files changed, 641 insertions(+), 234 deletions(-)
create mode 100644 lib/locking-selftest-rtmutex.h
create mode 100644 tools/include/asm/sections.h
rename tools/{lib/lockdep/uinclude => include}/linux/debug_locks.h (74%)
create mode 100644 tools/include/linux/delay.h
create mode 100644 tools/include/linux/ftrace.h
create mode 100644 tools/include/linux/gfp.h
rename tools/{lib/lockdep/uinclude => include}/linux/hardirq.h (100%)
create mode 100644 tools/include/linux/interrupt.h
rename tools/{lib/lockdep/uinclude => include}/linux/irqflags.h (84%)
create mode 100644 tools/include/linux/jhash.h
rename tools/{lib/lockdep/uinclude => include}/linux/kallsyms.h (89%)
rename tools/{lib/lockdep/uinclude => include}/linux/kern_levels.h (100%)
rename tools/{lib/lockdep/uinclude => include}/linux/kmemcheck.h (100%)
create mode 100644 tools/include/linux/linkage.h
rename tools/{lib/lockdep/uinclude => include}/linux/lockdep.h (63%)
rename tools/{lib/lockdep/uinclude => include}/linux/module.h (51%)
create mode 100644 tools/include/linux/mutex.h
create mode 100644 tools/include/linux/proc_fs.h
rename tools/{lib/lockdep/uinclude => include}/linux/rcu.h (76%)
create mode 100644 tools/include/linux/sched/clock.h
create mode 100644 tools/include/linux/sched/mm.h
create mode 100644 tools/include/linux/sched/task.h
create mode 100644 tools/include/linux/seq_file.h
rename tools/{lib/lockdep/uinclude => include}/linux/stacktrace.h (100%)
create mode 100644 tools/include/linux/unaligned/packed_struct.h
create mode 100644 tools/include/trace/events/lock.h
delete mode 100644 tools/lib/lockdep/uinclude/asm/hash.h
delete mode 100644 tools/lib/lockdep/uinclude/asm/hweight.h
delete mode 100644 tools/lib/lockdep/uinclude/asm/sections.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/bitops.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/compiler.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/delay.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/ftrace.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/gfp.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/hash.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/interrupt.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/kernel.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/linkage.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/list.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/mutex.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/poison.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/prefetch.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/proc_fs.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/rbtree_augmented.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/seq_file.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/spinlock.h
delete mode 100644 tools/lib/lockdep/uinclude/linux/stringify.h
delete mode 100644 tools/lib/lockdep/uinclude/trace/events/lock.h

[ ... diff skipped due to size ... ]