Thread (47 messages) 47 messages, 5 authors, 2020-05-22

Re: io_uring vs CPU hotplug, was Re: [PATCH 5/9] blk-mq: don't set data->ctx and data->hctx in blk_mq_alloc_request_hctx

From: Jens Axboe <axboe@kernel.dk>
Date: 2020-05-20 14:47:40
Also in: io-uring, lkml

On 5/20/20 2:03 AM, Christoph Hellwig wrote:
On Wed, May 20, 2020 at 11:04:24AM +0800, Ming Lei wrote:
quoted
On Wed, May 20, 2020 at 09:18:23AM +0800, Ming Lei wrote:
quoted
On Tue, May 19, 2020 at 05:30:00PM +0200, Christoph Hellwig wrote:
quoted
On Tue, May 19, 2020 at 09:54:20AM +0800, Ming Lei wrote:
quoted
As Thomas clarified, workqueue hasn't such issue any more, and only other
per CPU kthreads can run until the CPU clears the online bit.

So the question is if IO can be submitted from such kernel context?
What other per-CPU kthreads even exist?
I don't know, so expose to wider audiences.
One user is io uring with IORING_SETUP_SQPOLL & IORING_SETUP_SQ_AFF, see
io_sq_offload_start(), and it is a IO submission kthread.
As far as I can tell that code is buggy, as it still needs to migrate
the thread away when the cpu is offlined.  This isn't a per-cpu kthread
in the sene of having one for each CPU.

Jens?
It just uses kthread_create_on_cpu(), nothing home grown. Pretty sure
they just break affinity if that CPU goes offline.

-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help