On Wed, 2021-06-09 at 17:26 -0400, Olivier Langlois wrote:
On Wed, 2021-06-09 at 16:05 -0500, Eric W. Biederman wrote:
quoted
quoted
So the TIF_NOTIFY_SIGNAL does get set WHILE the core dump is
written.
Did you mean?
So the TIF_NOTIFY_SIGNAL does _not_ get set WHILE the core dump is
written.
Absolutely not. I did really mean what I have said. Bear with me
that,
I am not qualifying myself as an expert kernel dev yet so feel free
to
correct me if I say some heresy...
io_uring is placing my task in my TCP socket wait queue because it
wants to read data from it.
The task returns to user space and core dump with a SEGV.
now my understanding is that the code that is waking up tasks, it is
the NIC driver interrupt handler which can occur while the core dump
is
written.
does that make sense?
my testing is telling me that this is exactly what happens...
Another thing to know is that dump_interrupted() isn't only called from
do_coredump().
At first, I did the mistake to think that if dump_interrupt() was
returning false when called from do_coredump() all was good.
It is not the case. dump_interrupted() is also called from dump_emit()
which is called from several places by functions inside binfmt_elf.c
So dump_interrupted() is called several times during the coredump
generation.