Messages in this thread | | | Date | Tue, 12 Apr 2022 13:44:21 +0200 | From | Peter Zijlstra <> | Subject | [PATCH 0/5] ptrace-vs-PREEMPT_RT and freezer rewrite |
| |
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(-)
| |