On Tue, Jun 22, 2021 at 1:53 PM Eric W. Biederman <ebiederm@xxxxxxxxxxxx> wrote: > > Playing with it some more I think I have everything working working > except for PTRACE_EVENT_SECCOMP (which can stay ptrace_event) and > group_exit(2). > > Basically in exit sending yourself a signal and then calling do_exit > from the signal handler is not unreasonable, as exit is an ordinary > system call. Ok, this is a bit odd, but I do like the concept of just making ptrace_event just post a signal, and have all ptrace things always be handled at signal time (or the special system call entry/exit, which is fine too). > For purposes of discussion this is my current draft implementation. I didn't check what is so different about exit_group() that you left that as an exercise for the reader, but if that ends up then removing the whole "wait synchromously for ptrace" cases for good I don't _hate_ this. It's a bit odd, but it would be really nice to limit where ptrace picks up data. We do end up doing that stuff in "get_signal()", and that means that we have the interaction with io_uring calling it directly, but it's at least not a new thing. Linus