On Thu, Jan 26, 2023 at 10:53:49AM -0800, Andrei Vagin wrote: > On Thu, Jan 26, 2023 at 10:30 AM Oleg Nesterov <oleg@xxxxxxxxxx> wrote: > > > > On 01/26, Andrei Vagin wrote: > > > > > > On Thu, Jan 26, 2023 at 7:07 AM Oleg Nesterov <oleg@xxxxxxxxxx> wrote: > > > > > > > > IIUC, PTRACE_O_SUSPEND_SYSCALL_USER_DISPATCH is needed to run the injected > > > > code, and this also needs to change the state of the traced process. If > > > > the tracer (CRIU) dies while the tracee runs this code, I guess the tracee > > > > will have other problems? > > > > > > Our injected code can reheal itself if something goes wrong. The hack > > > here is that we inject > > > the code with a signal frame and it calls rt_segreturn to resume the process. > > > > What will happen if CRIU dies and clears ->ptrace right before > > syscall_user_dispatch() checks PT_SUSPEND_SYSCALL_USER_DISPATCH ? > > > > How the tracee will react to SIGSYS with unexpected .si_syscall ? > > I got it. PTRACE_O_SUSPEND_SUD doesn't help us here, because we rely > on sigreturn > that is called after ptrace_detach. Thanks. > > > > > > I don't expect that > > > the syscall user dispatch > > > is used by many applications, > > > > Agreed, so the case when CRIU will need to do the additional > > PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG twice to disable and then re-enable > > syscall_user_dispatch is unlikely. > > > > > so I don't strongly insist on > > > PTRACE_O_SUSPEND_SYSCALL_USER_DISPATCH. > > > > I too won't argue too much. but so far I do not feel there is enough > > justification for this feature ... > > Agree > > > > > Oleg. > > Seems that's consensus, I will drop it.