The quest for low latency with block I/O
The Linux kernel is undergoing a transition from a single-queue I/O stack, named blk, to a highly parallel, multi-queue stack, named blk-mq. The latter can cope with millions of IOPS. Yet, blk-mq exacerbates the high-latency problems not yet solved in blk. These problems occur at system-service and application level, and can even make a system unusable, depending on the workload. In this respect, a relatively well-known I/O scheduler, named BFQ, and maintained as an independent project, solves these latency problems with many, if not most, typical workloads. In this talk we first show BFQ in action. Then we put BFQ's project into context by reporting on the ongoing work, both in blk and blk-mq, to overcome latency problems. In particular, we focus on the possible adoption of BFQ, or some variant of BFQ, in blk and blk-mq.
Università di Modena e Reggio Emilia
Paolo Valente is an Assistant Professor of Computer Science at the University of Modena and Reggio Emilia, Italy. Part of his activities focuses on scheduling algorithms for transmission links, storage devices, and CPUs. As for transmission links, Paolo is one of the authors of the QFQ packet scheduler, which has been in the Linux kernel until 3.7, after that it has been replaced by QFQ+, a faster variant defined and implemented by Paolo himself. Paolo is also the author of the last version of the BFQ I/O scheduler, which is considered, by many, one the main components needed to solve Linux latency issues at system and application level. Finally, Paolo has also defined and implemented other algorithms, part of which are now in FreeBSD, and has provided new theoretic results concerning multiprocessor scheduling.