[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <874kkm8s8d.fsf@x220.int.ebiederm.org>
Date: Tue, 15 Dec 2020 19:17:06 -0600
From: ebiederm@...ssion.com (Eric W. Biederman)
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: <linux-kernel@...r.kernel.org>,
Peter Zijlstra <peterz@...radead.org>
Subject: [GIT PULL] exec-update-lock for v5.11
Linus,
Please pull the exec-update-lock-for-v5.11 branch from the git tree:
git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace.git exec-update-lock-for-v5.11
HEAD: f7cfd871ae0c5008d94b6f66834e7845caa93c15 exec: Transform exec_update_mutex into a rw_semaphore
These changes are on top of:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/rwsem
and have a slight conflict with 78af4dc949da ("perf: Break deadlock
involving exec_update_mutex") which moves where the lock is taken
in perf_event_open.
The key point of this is to transform exec_update_mutex into a
rw_semaphore so readers can be separated from writers. This makes it
easier to understand what the holders of the lock are doing, and makes
it harder to contend or deadlock on the lock. The real deadlock fix
wound up in perf_event_open.
Eric W. Biederman (3):
rwsem: Implement down_read_killable_nested
rwsem: Implement down_read_interruptible
exec: Transform exec_update_mutex into a rw_semaphore
fs/exec.c | 12 ++++++------
fs/proc/base.c | 10 +++++-----
include/linux/rwsem.h | 3 +++
include/linux/sched/signal.h | 11 ++++++-----
init/init_task.c | 2 +-
kernel/events/core.c | 12 ++++++------
kernel/fork.c | 6 +++---
kernel/kcmp.c | 30 +++++++++++++++---------------
kernel/locking/rwsem.c | 40 ++++++++++++++++++++++++++++++++++++++++
kernel/pid.c | 4 ++--
10 files changed, 87 insertions(+), 43 deletions(-)
Eric
Powered by blists - more mailing lists