[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87k1dxaxcl.fsf_-_@xmission.com>
Date: Fri, 07 Jun 2019 16:39:54 -0500
From: ebiederm@...ssion.com (Eric W. Biederman)
To: Oleg Nesterov <oleg@...hat.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Deepa Dinamani <deepa.kernel@...il.com>,
linux-kernel@...r.kernel.org, arnd@...db.de, dbueso@...e.de,
axboe@...nel.dk, dave@...olabs.net, e@...24.org, jbaron@...mai.com,
linux-fsdevel@...r.kernel.org, linux-aio@...ck.org,
omar.kilani@...il.com, tglx@...utronix.de, stable@...r.kernel.org,
Al Viro <viro@...IV.linux.org.uk>,
Linus Torvalds <torvalds@...ux-foundation.org>,
David Laight <David.Laight@...LAB.COM>,
<linux-arch@...r.kernel.org>
Subject: [RFC PATCH 0/5]: Removing saved_sigmask
While reviewing Oleg's patches I realized a bunch of the logic around
saved_sigmask was redundant. So I dug just to see what I could see.
I turns out that real_blocked and saved_sigmask were different
implementations of the same idea for slightly different purposes.
Which means we only need either real_blocked or saved_sigmask.
I chose real_blocked as it has just a little bit of code associated
with it to disable optimizations on the signal sending path that do
not apply to blocked signals.
I did a little bit of cleanup of the users. Modified the core to keep
real_blocked in sync with blocked except while a clever system call that
like pselect or sigtimedwait is running.
After the dust cleared this allowed restore_sigmask and all of the logic
to keep it valid to be removed entirely.
I have only done the most cursory of testing at this point. Does anyone
have any thoughts in cleaning up the code in this direction?
Eric W. Biederman (5):
signal: Teach sigsuspend to use set_user_sigmask
signal/kvm: Stop using sigprocmask in kvm_sigset_(activate|deactivate)
signal: Always keep real_blocked in sync with blocked
signal: Remove saved_sigmask
signal: Remove the unnecessary restore_sigmask flag
arch/arc/include/asm/thread_info.h | 1 -
arch/arm/include/asm/thread_info.h | 1 -
arch/arm64/include/asm/thread_info.h | 1 -
arch/c6x/include/asm/thread_info.h | 1 -
arch/csky/include/asm/thread_info.h | 2 -
arch/h8300/include/asm/thread_info.h | 1 -
arch/hexagon/include/asm/thread_info.h | 1 -
arch/m68k/include/asm/thread_info.h | 1 -
arch/mips/include/asm/thread_info.h | 1 -
arch/nds32/include/asm/thread_info.h | 2 -
arch/nios2/include/asm/thread_info.h | 2 -
arch/riscv/include/asm/thread_info.h | 1 -
arch/s390/include/asm/thread_info.h | 1 -
arch/sparc/include/asm/thread_info_32.h | 1 -
arch/um/include/asm/thread_info.h | 1 -
arch/unicore32/include/asm/thread_info.h | 1 -
arch/xtensa/include/asm/thread_info.h | 1 -
include/linux/sched.h | 5 --
include/linux/sched/signal.h | 84 +-------------------------------
kernel/ptrace.c | 15 ++----
kernel/signal.c | 56 +++++++++------------
virt/kvm/kvm_main.c | 11 +----
22 files changed, 31 insertions(+), 160 deletions(-)
Eric
Powered by blists - more mailing lists