Oleg Nesterov <o...@redhat.com> writes: > On 07/11, Eric W. Biederman wrote: >> >> Oleg Nesterov <o...@redhat.com> writes: >> >> >> - recalc_sigpending(); >> >> - if (signal_pending(current)) { >> >> + if (read_seqcount_retry(¤t->signal->multi_process_seq, seq) || >> >> + fatal_signal_pending(current)) { >> >> retval = -ERESTARTNOINTR; >> >> goto bad_fork_cancel_cgroup; >> > >> > So once again, I think this is not right, see the discussion on >> > bugzilla. >> >> I am trying to dig through and understand your concerns. I am having >> difficulty understanding your concerns. >> >> Do the previous patches look good to you? > > Yes, yes, personally I like 1-10 after a quick glance. I'll try to read this > series carefully later, but I don't think I will find something really > wrong.
Good. Then I will consider those acked by both you and Linus. Oleg do you mind if I add: Acked-by: Oleg Nesterov <o...@redhat.com> To those patches? >> If I understand you correctly. Your concern is that since we added the: >> >> recalc_sigpending(); >> if (signal_pending(current)) >> return -ERESTARTNOINTR; >> >> Other (non-signal) code such as the freezer has come to depend upon that >> test. Changing the test in the proposed way will allow the new child to >> escape the freezer, as it is not guaranteed the new child will be >> frozen. > > Yes. >> It seems reasonable to look at other things that set TIF_SIGPENDING and >> see if any of them are broken by the fork changes. > > Again, please look at do_signal_stop(). If it was the source of > signal_pending(), > copy_process() should fail. Or we should update the new thread to participate > in > group-stop, but then we need to set TIF_SIGPENDING, copy the relevant part of > current->jobctl, and increment ->group_stop_count at least. Hmm. That is an interesting twist. In general for do_signal_stop is fine as long as we have the recalc_sigpending at the start of fork. But yes. What happens when it isn't a fork but it is a clone. Signals that affect the entire thread group (STOP CLONE) are very interesting from this perspective. Same issue as with fork, but different scope. Eric