On Fri, 2021-05-21 at 03:31 -0400, Olivier Langlois wrote: > > However, I can reproduce it at will with my real program. So as Linus > has suggested, I'll investigate by searching where the PF_IO_WORKER is > used. > > I'll keep the list updated if I discover something. > I think that I am about to stumble into the key to unravel the mystery of my core dump generation issue. I am going ask you a quick question and it is very likely to trigger an ahah moment... To what value is the task_struct mm field is set to for the io-wkr threads? If I look in the create_io_thread() function, I can see that CLONE_VM isn't set... There are still some fuzzy areas in my io_uring inner design understanding but I would think that the io-wrk threads must use the user process mm at some point in order to be able to fill in the user provided buffers... This notion appears to be central when creating a coredump... Only tasks having the same mm than the one receiving the SIGSEGV will be zapped... in zap_threads(): for_each_thread(g, p) { if (unlikely(!p->mm)) continue; if (unlikely(p->mm == mm)) { lock_task_sighand(p, &flags); nr += zap_process(p, exit_code, SIGNAL_GROUP_E XIT); unlock_task_sighand(p, &flags); } break; }