public inbox for [email protected]
 help / color / mirror / Atom feed
* [PATCHSET 0/2] Eliminated need for io thread manager
@ 2021-03-22 18:00 Jens Axboe
  2021-03-22 18:00 ` [PATCH 1/2] kernel: allow fork with TIF_NOTIFY_SIGNAL pending Jens Axboe
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jens Axboe @ 2021-03-22 18:00 UTC (permalink / raw)
  To: io-uring

Hi,

Currently (5.12+) any ring that gets created will get an io-wq manager
created. The manager is tasked with creating async workers, if they are
needed. Earlier (5.11 and prior), io_uring would create the manager
thread, and the manager thread would create a static worker per NUMA node
and more if needed. Hence 5.12+ is more lean than earlier, but I would
like us to get to the point where no threads are created if they aren't
strictly needed. For workloads that never need async offload, it's
pointless to create one (or more) threads that just sit idle.

With that in mind, here's a patchset that attempts to do that. There
should be no functional changes here - if we do need an async worker,
the first one created will stick around for the lifetime of the ring.
And more are created as needed, using the same logic as before. The only
difference is that a ring will NOT get a thread by default, only when
it actually needs one is it created.

Comments welcome! This passes normal regression testing, but no further
testing has been done yet.

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-03-23 13:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-22 18:00 [PATCHSET 0/2] Eliminated need for io thread manager Jens Axboe
2021-03-22 18:00 ` [PATCH 1/2] kernel: allow fork with TIF_NOTIFY_SIGNAL pending Jens Axboe
2021-03-22 18:00 ` [PATCH 2/2] io-wq: eliminate the need for a manager thread Jens Axboe
     [not found] ` <[email protected]>
2021-03-23 13:57   ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox