Paolo Valente wrote:Right. I was thinking only about the case where all the 101 threads concurrently access the disk, and I just wanted to say that weights may offer more help than priorities in simple cases as this one.Avi Kivity ha scritto:Jumping in at random, does "process" here mean task or mms_struct? If the former, doesn't that mean that a 100-thread process can starve out a single-threaded process?Hierarchical would simplify isolating groups of threads or processes.
Perhaps we need hierarchical io scheduling, like cfs has for the cpu.
However, some simple solution is already available with bfq. For example, if you have to fairly share the disk bandwidth between the above 100 threads and another important thread, you get it by just assigning weight 1 to each of these 100 threads, and weight 100 to the important one.
Doesn't work. If the 100-thread process wants to use just on thread for issuing I/O, it will be starved by the single-threaded process.
[my example has process A with 100 threads, and process B with 1 thread, not a 101-thread process with one important thread]