Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > On Tue, Jan 11, 2022 at 10:51 AM Eric W. Biederman > <ebiederm@xxxxxxxxxxxx> wrote: >> >> + while ((n == -ERESTARTSYS) && test_thread_flag(TIF_NOTIFY_SIGNAL)) { >> + tracehook_notify_signal(); >> + n = __kernel_write(file, addr, nr, &pos); >> + } > > This reads horribly wrongly to me. > > That "tracehook_notify_signal()" thing *has* to be renamed before we > have anything like this that otherwise looks like "this will just loop > forever". > > I'm pretty sure we've discussed that "tracehook" thing before - the > whole header file is misnamed, and most of the functions in theer are > too. > > As an ugly alternative, open-code it, so that it's clear that "yup, > that clears the TIF_NOTIFY_SIGNAL flag". A cleaner alternative looks like to modify the pipe code to use wake_up_XXX instead of wake_up_interruptible_XXX and then have code that does pipe_write_killable instead of pipe_write_interruptible. There is also a question of how all of this should interact with the freezer, as I think changing from interruptible to killable means that the coredumps became unfreezable. I am busily simmering this on my back burner and I hope I can come up with something sensible. Eric