[PATCH 0/5] ptrace-vs-PREEMPT_RT and freezer rewrite

From: Peter Zijlstra
Date: Tue Apr 12 2022 - 08:31:29 EST


Hi all,

Reviving the freezer rewrite that was languishing, reinvigorated by the
recent ptrace-vs-PREEMPT_RT trouble.

The first patch adds additional state to signal/ptrace stop states, this state
is then used to fix the PREEMPT_RT issue (patch #2) and allow the new freezer
to recover the special stop states (patch #5).

I'm not completely happy with the ptrace solution, but I think it solves all
the various issues I found. I still dislike wait_task_inactive() and now we
have a second copy of that :/

Please consider carefully..

---
drivers/acpi/x86/s2idle.c | 12 +-
drivers/android/binder.c | 4 +-
drivers/media/pci/pt3/pt3.c | 4 +-
drivers/scsi/scsi_transport_spi.c | 7 +-
fs/cifs/inode.c | 4 +-
fs/cifs/transport.c | 5 +-
fs/coredump.c | 5 +-
fs/nfs/file.c | 3 +-
fs/nfs/inode.c | 12 +-
fs/nfs/nfs3proc.c | 3 +-
fs/nfs/nfs4proc.c | 14 +--
fs/nfs/nfs4state.c | 3 +-
fs/nfs/pnfs.c | 4 +-
fs/xfs/xfs_trans_ail.c | 8 +-
include/linux/completion.h | 1 +
include/linux/freezer.h | 244 ++------------------------------------
include/linux/sched.h | 49 ++++----
include/linux/sched/jobctl.h | 8 ++
include/linux/sched/signal.h | 15 ++-
include/linux/sunrpc/sched.h | 7 +-
include/linux/suspend.h | 8 +-
include/linux/umh.h | 9 +-
include/linux/wait.h | 40 ++++++-
init/do_mounts_initrd.c | 10 +-
kernel/cgroup/legacy_freezer.c | 23 ++--
kernel/exit.c | 4 +-
kernel/fork.c | 5 +-
kernel/freezer.c | 139 ++++++++++++++++------
kernel/futex/waitwake.c | 8 +-
kernel/hung_task.c | 4 +-
kernel/power/hibernate.c | 35 ++++--
kernel/power/main.c | 18 +--
kernel/power/process.c | 10 +-
kernel/power/suspend.c | 12 +-
kernel/power/user.c | 24 ++--
kernel/ptrace.c | 185 +++++++++++++++++++++++------
kernel/sched/completion.c | 9 ++
kernel/sched/core.c | 24 ++--
kernel/signal.c | 23 ++--
kernel/time/hrtimer.c | 4 +-
kernel/umh.c | 18 ++-
mm/khugepaged.c | 4 +-
net/sunrpc/sched.c | 12 +-
net/unix/af_unix.c | 8 +-
44 files changed, 541 insertions(+), 507 deletions(-)