The biggest is the fact that page cache pagse are owned by processes not
threads. A related issue is that writeback tracks ownership per inode with a
mechanism for transferring ownership when majority writer changes. Splitting
IO control per-thread would increase friction there. So, the summary is that
the kernel doesn't track related resource consumptions at thread
granularity.
So mainly the writeback functionality or is it ingrained in all
functionality like latency and priority?
If not, is there a subset of io cgroup subsys that could easily support threading?
And if so, could one either split the subsystem into two subsystems a
io_threaded and io or possibly add an option to disable the functionality
that restricts it from supporting threading?
Thanks.