[PATCHSET 0/2] Eliminated need for io thread manager

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

 



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





[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