Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
PF_IO_WORKER signal tweaks
Hi, Been trying to ensure that we do the right thing wrt signals and PF_IO_WORKER threads, and I think there are two cases we need to handle explicitly: 1) Just don't allow signals to them in general. We do mask everything as blocked, outside of SIGKILL, so things like wants_signal() will never return true for them. But it's still possible to send them a signal via (ultimately) group_send_sig_info(). This will then deliver the signal to the original io_uring owning task, and that seems a bit unexpected. So just don't allow them in general. 2) STOP is done a bit differently, and we should not allow that either. Outside of that, I've been looking at same_thread_group(). This will currently return true for an io_uring task and it's IO workers, since they do share ->signal. From looking at the kernel users of this, that actually seems OK for the cases I checked. One is accounting related, which we obviously want, and others are related to permissions between tasks. FWIW, I ran with the below and didn't observe any ill effects, but I'd like someone to actually think about and verify that PF_IO_WORKER same_thread_group() usage is sane.
- Loading branch information