Re: [RFD] I/O scheduling in blk-mq

From: Bart Van Assche
Date: Mon Aug 08 2016 - 12:36:04 EST


On 08/08/16 07:09, Paolo wrote:
2) To provide per-process service guarantees, an I/O scheduler must
create per-process internal queues. BFQ and CFQ use I/O contexts to
achieve this goal. Is something like that (or exactly the same)
available also in blk-mq? If so, do you have any suggestion, or link to
documentation/code on how to use what is available in blk-mq?

Hello Paolo,

I/O contexts are, by definition, data structures that are shared by multiple I/O queues. blk-mq reaches high performance by keeping each per-CPU queue independent. This means that using I/O contexts in a blk-mq I/O scheduler would introduce a contention point and probably also a performance bottleneck. So I would appreciate it if multiqueue schedulers would avoid constructs similar to I/O contexts.

Thanks,

Bart.