Hi, I'm trying to address an issue in CRIU (Checkpoint Restore In Userspace) about timed syscalls restart. It's not possible to use restart_syscall() as the majority of applications does, as after restore the kernel doesn't know anything about a syscall that may have been interrupted on checkpoint. That's because the tasks are re-created from scratch and so there isn't task_struct::restart_block set on a new task.
As a preparation, unify timeouts for different syscalls in restart_block. On contrary, I'm struggling with patches that introduce the new ptrace() request API. I'll speak about difficulties of designing new ptrace operation on Containers Microconference at Plumbers [with a hope to find the sensible solution]. Cc: Adrian Reber <[email protected]> Cc: Alexander Viro <[email protected]> Cc: Andrei Vagin <[email protected]> Cc: Andy Lutomirski <[email protected]> Cc: Cyrill Gorcunov <[email protected]> Cc: Dmitry Safonov <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Oleg Nesterov <[email protected]> Cc: Pavel Emelyanov <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Cc: [email protected] Dmitry Safonov (9): futex: Remove unused uaddr2 in restart_block restart_block: Prevent userspace set part of the block select: Convert __esimate_accuracy() to ktime_t select: Micro-optimise __estimate_accuracy() select: Convert select_estimate_accuracy() to take ktime_t select: Extract common code into do_sys_ppoll() select: Use ktime_t in do_sys_poll() and do_poll() select/restart_block: Convert poll's timeout to u64 restart_block: Make common timeout fs/eventpoll.c | 4 +- fs/select.c | 214 ++++++++++++--------------------- include/linux/poll.h | 2 +- include/linux/restart_block.h | 11 +- kernel/futex.c | 14 +-- kernel/time/alarmtimer.c | 6 +- kernel/time/hrtimer.c | 14 ++- kernel/time/posix-cpu-timers.c | 10 +- kernel/time/posix-stubs.c | 8 +- kernel/time/posix-timers.c | 8 +- 10 files changed, 115 insertions(+), 176 deletions(-) -- 2.23.0

