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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6/7/20 9:32 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.
> 
> Pavel Begunkov (4):
>   io-wq: reorder cancellation pending -> running
>   io-wq: add an option to cancel all matched reqs
>   io_uring: cancel all task's requests on exit
>   io_uring: batch cancel in io_uring_cancel_files()
> 
>  fs/io-wq.c    | 108 ++++++++++++++++++++++++++------------------------
>  fs/io-wq.h    |   3 +-
>  fs/io_uring.c |  29 ++++++++++++--
>  3 files changed, 83 insertions(+), 57 deletions(-)

Can you rebase this to include the changing of using ->task_pid to
->task instead? See:

https://lore.kernel.org/io-uring/87a71jjbzr.fsf@xxxxxxxxxxxxxxxxxxxxx/T/#u

Might as well do it at the same time, imho, since the cancel-by-task is
being reworked anyway.

-- 
Jens Axboe




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux