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