[RFC PATCH 0/3] Seccomp non-preemptible notifier

From: Sargun Dhillon
Date: Sat Feb 20 2021 - 04:12:27 EST


This patchset addresses a race condition we've dealt with recently with
seccomp. Specifically programs interrupting syscalls while they're in
progress. This was exacerbated by Golang's recent adoption of "async
preemption", in which they try to interrupt any syscall that's been
running for more than 10ms during GC. During certain syscalls, it's
non-trivial to write them in a reetrant manner in userspace (mount).

This has a couple semantic changes, and relaxes a check on seccomp_data.
I can deal with these, but this was a first cut. I also expect that the
patch would be squashed down, but it's split out for easier review.

Sargun Dhillon (3):
seccomp: Refactor notification handler to prepare for new semantics
seccomp: Add wait_killable semantic to seccomp user notifier
selftests/seccomp: Add test for wait killable notifier

include/uapi/linux/seccomp.h | 10 +++
kernel/seccomp.c | 63 +++++++++++++------
tools/testing/selftests/seccomp/seccomp_bpf.c | 60 ++++++++++++++++++
3 files changed, 114 insertions(+), 19 deletions(-)

--
2.25.1