From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Thomas Gleixner <tglx@linutronix.de>,
Andrew Morton <akpm@linux-foundation.org>,
Will Deacon <will.deacon@arm.com>
Subject: [GIT PULL] locking changes for v5.7
Date: Mon, 30 Mar 2020 17:18:40 +0200 [thread overview]
Message-ID: <20200330151840.GA99197@gmail.com> (raw)
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: f1e67e355c2aafeddf1eac31335709236996d2fe fs/buffer: Make BH_Uptodate_Lock bit_spin_lock a regular spinlock_t
The main changes in this cycle were:
- Continued user-access cleanups in the futex code.
- percpu-rwsem rewrite that uses its own waitqueue and atomic_t instead
of an embedded rwsem. This addresses a couple of weaknesses, but the
primary motivation was complications on the -rt kernel.
- Introduce raw lock nesting detection on lockdep
(CONFIG_PROVE_RAW_LOCK_NESTING=y), document the raw_lock vs. normal
lock differences. This too originates from -rt.
- Reuse lockdep zapped chain_hlocks entries, to conserve RAM footprint
on distro-ish kernels running into the "BUG: MAX_LOCKDEP_CHAIN_HLOCKS
too low!" depletion of the lockdep chain-entries pool.
- Misc cleanups, smaller fixes and enhancements - see the changelog for
details.
Thanks,
Ingo
------------------>
Al Viro (8):
futex: arch_futex_atomic_op_inuser() calling conventions change
sh: no need of access_ok() in arch_futex_atomic_op_inuser()
[parisc, s390, sparc64] no need for access_ok() in futex handling
objtool: whitelist __sanitizer_cov_trace_switch()
x86: convert arch_futex_atomic_op_inuser() to user_access_begin/user_access_end()
x86: don't reload after cmpxchg in unsafe_atomic_op2() loop
generic arch_futex_atomic_op_inuser() doesn't need access_ok()
x86: get rid of user_atomic_cmpxchg_inatomic()
Boqun Feng (1):
locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()
Clark Williams (1):
thermal/x86_pkg_temp: Make pkg_temp_lock a raw_spinlock_t
Davidlohr Bueso (2):
locking/percpu-rwsem: Fold __percpu_up_read()
locking/percpu-rwsem: Add might_sleep() for writer locking
Logan Gunthorpe (1):
PCI/switchtec: Fix init_completion race condition with poll_wait()
Peter Zijlstra (13):
locking/percpu-rwsem, lockdep: Make percpu-rwsem use its own lockdep_map
locking/percpu-rwsem: Convert to bool
locking/percpu-rwsem: Move __this_cpu_inc() into the slowpath
locking/percpu-rwsem: Extract __percpu_down_read_trylock()
locking/percpu-rwsem: Remove the embedded rwsem
locking/rwsem: Remove RWSEM_OWNER_UNKNOWN
futex: Remove pointless mmgrap() + mmdrop()
futex: Remove {get,drop}_futex_key_refs()
locking/lockdep: Fix bad recursion pattern
locking/lockdep: Rework lockdep_lock
lockdep: Teach lockdep about "USED" <- "IN-NMI" inversions
acpi: Remove header dependency
lockdep: Introduce wait-type checks
Peter Zijlstra (Intel) (2):
rcuwait: Add @state argument to rcuwait_wait_event()
powerpc/ps3: Convert half completion to rcuwait
Randy Dunlap (1):
Documentation/locking/locktypes: Minor copy editor fixes
Sebastian Andrzej Siewior (9):
pci/switchtec: Replace completion wait queue usage for poll
nds32: Remove mm.h from asm/uaccess.h
csky: Remove mm.h from asm/uaccess.h
hexagon: Remove mm.h from asm/uaccess.h
ia64: Remove mm.h from asm/uaccess.h
microblaze: Remove mm.h from asm/uaccess.h
lockdep: Add hrtimer context tracing bits
lockdep: Annotate irq_work
lockdep: Add posixtimer context tracing bits
Sebastian Siewior (1):
completion: Use lockdep_assert_RT_in_threaded_ctx() in complete_all()
Thomas Gleixner (9):
usb: gadget: Use completion interface instead of open coding it
orinoco_usb: Use the regular completion interfaces
Documentation: Add lock ordering and nesting documentation
timekeeping: Split jiffies seqlock
sched/swait: Prepare usage in completions
completion: Use simple wait queues
m68knommu: Remove mm.h include from uaccess_no.h
Documentation/locking/locktypes: Further clarifications and wordsmithing
fs/buffer: Make BH_Uptodate_Lock bit_spin_lock a regular spinlock_t
Waiman Long (6):
locking/lockdep: Decrement IRQ context counters when removing lock chain
locking/lockdep: Display irq_context names in /proc/lockdep_chains
locking/lockdep: Track number of zapped classes
locking/lockdep: Throw away all lock chains with zapped class
locking/lockdep: Track number of zapped lock chains
locking/lockdep: Reuse freed chain_hlocks entries
Will Deacon (1):
asm-generic/bitops: Update stale comment
Documentation/locking/index.rst | 1 +
Documentation/locking/locktypes.rst | 347 +++++++++++
arch/alpha/include/asm/futex.h | 5 +-
arch/arc/include/asm/futex.h | 5 +-
arch/arm/include/asm/futex.h | 5 +-
arch/arm64/include/asm/futex.h | 5 +-
arch/csky/include/asm/uaccess.h | 1 -
arch/hexagon/include/asm/futex.h | 5 +-
arch/hexagon/include/asm/uaccess.h | 1 -
arch/ia64/include/asm/futex.h | 5 +-
arch/ia64/include/asm/uaccess.h | 1 -
arch/ia64/kernel/process.c | 1 +
arch/ia64/mm/ioremap.c | 1 +
arch/m68k/include/asm/uaccess_no.h | 1 -
arch/microblaze/include/asm/futex.h | 5 +-
arch/microblaze/include/asm/uaccess.h | 1 -
arch/mips/include/asm/futex.h | 5 +-
arch/nds32/include/asm/futex.h | 6 +-
arch/nds32/include/asm/uaccess.h | 1 -
arch/openrisc/include/asm/futex.h | 5 +-
arch/parisc/include/asm/futex.h | 2 -
arch/powerpc/include/asm/futex.h | 5 +-
arch/powerpc/platforms/ps3/device-init.c | 18 +-
arch/riscv/include/asm/futex.h | 5 +-
arch/s390/include/asm/futex.h | 2 -
arch/sh/include/asm/futex.h | 4 -
arch/sparc/include/asm/futex_64.h | 4 -
arch/x86/include/asm/futex.h | 99 +--
arch/x86/include/asm/uaccess.h | 93 ---
arch/xtensa/include/asm/futex.h | 5 +-
.../net/wireless/intersil/orinoco/orinoco_usb.c | 21 +-
drivers/pci/switch/switchtec.c | 22 +-
drivers/platform/x86/dell-smo8800.c | 1 +
drivers/platform/x86/wmi.c | 1 +
.../intel/int340x_thermal/acpi_thermal_rel.c | 1 +
drivers/thermal/intel/x86_pkg_temp_thermal.c | 24 +-
drivers/usb/gadget/function/f_fs.c | 2 +-
drivers/usb/gadget/legacy/inode.c | 4 +-
fs/buffer.c | 19 +-
fs/ext4/page-io.c | 8 +-
fs/ntfs/aops.c | 9 +-
include/acpi/acpi_bus.h | 2 +-
include/asm-generic/bitops.h | 5 +-
include/asm-generic/futex.h | 2 -
include/linux/buffer_head.h | 6 +-
include/linux/completion.h | 8 +-
include/linux/irq_work.h | 2 +
include/linux/irqflags.h | 48 +-
include/linux/lockdep.h | 86 ++-
include/linux/mutex.h | 7 +-
include/linux/percpu-rwsem.h | 83 +--
include/linux/rcuwait.h | 12 +-
include/linux/rwlock_types.h | 6 +-
include/linux/rwsem.h | 12 +-
include/linux/sched.h | 2 +
include/linux/spinlock.h | 35 +-
include/linux/spinlock_types.h | 24 +-
include/linux/wait.h | 1 +
kernel/cpu.c | 4 +-
kernel/exit.c | 1 +
kernel/futex.c | 107 +---
kernel/irq/handle.c | 7 +
kernel/irq_work.c | 2 +
kernel/locking/lockdep.c | 674 +++++++++++++++++----
kernel/locking/lockdep_internals.h | 14 +-
kernel/locking/lockdep_proc.c | 31 +-
kernel/locking/mutex-debug.c | 2 +-
kernel/locking/percpu-rwsem.c | 194 ++++--
kernel/locking/rwsem.c | 9 +-
kernel/locking/rwsem.h | 10 -
kernel/locking/spinlock_debug.c | 6 +-
kernel/rcu/tree.c | 1 +
kernel/rcu/update.c | 24 +-
kernel/sched/completion.c | 36 +-
kernel/sched/sched.h | 3 +
kernel/sched/swait.c | 15 +-
kernel/time/hrtimer.c | 6 +-
kernel/time/jiffies.c | 7 +-
kernel/time/posix-cpu-timers.c | 6 +-
kernel/time/tick-common.c | 10 +-
kernel/time/tick-sched.c | 20 +-
kernel/time/timekeeping.c | 6 +-
kernel/time/timekeeping.h | 3 +-
lib/Kconfig.debug | 17 +
tools/objtool/check.c | 1 +
85 files changed, 1611 insertions(+), 702 deletions(-)
create mode 100644 Documentation/locking/locktypes.rst
next reply other threads:[~2020-03-30 15:18 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-30 15:18 Ingo Molnar [this message]
2020-03-31 0:25 ` [GIT PULL] locking changes for v5.7 pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200330151840.GA99197@gmail.com \
--to=mingo@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.