Re: [PATCH v2 0/4][RESEND] cancel all reqs of an exiting task

From: Jens Axboe
Date: Mon Jun 15 2020 - 11:04:22 EST


On 6/15/20 1:24 AM, Pavel Begunkov wrote:
> io_uring_flush() {
> ...
> if (fatal_signal_pending(current) || (current->flags & PF_EXITING))
> io_wq_cancel_pid(ctx->io_wq, task_pid_vnr(current));
> }
>
> This cancels only the first matched request. The pathset is mainly
> about fixing that. [1,2] are preps, [3/4] is the fix.
>
> The [4/4] tries to improve the worst case for io_uring_cancel_files(),
> that's when they are a lot of inflights with ->files. Instead of doing
> {kill(); wait();} one by one, it cancels all of them at once.

Applied, thanks.

--
Jens Axboe