On Mon, Oct 21, 2019 at 04:46:33PM +0200, Oleg Nesterov wrote:
On 10/14, Christian Brauner wrote:
The child helper process on Linux posix_spawn must ensure that no signal handlers are enabled, so the signal disposition must be either SIG_DFL or SIG_IGN. However, it requires a sigprocmask to obtain the current signal mask and at least _NSIG sigaction calls to reset the signal handlers for each posix_spawn call
Plus the caller has to block/unblock all signals around clone(VM|VFORK).
Can this justify the new CLONE_ flag? Honestly, I have no idea. But the patch is simple and looks technically correct to me. FWIW,
Reviewed-by: Oleg Nesterov oleg@redhat.com
The problem is not just the number of syscalls but also that the sigaction logic is already quite complicated and would need to be even more complicated without this flag. That's covered mostly in the glibc thread though. Even just the ability to avoid potentially _NSIG syscalls is enough justification especially since were not scarce on flags.
Thanks! I'll pick this up for 5.5. Christian