Session Resources

Abstract

DescriptionThis presentation is a report on the last improvements on the BFQ I/O scheduler. These improvements benefit virtually any system, from embedded devices, to personal systems, to nodes in a data center.

This first set of changes concerns throughput. In the most complex scenarios for guaranteeing I/O bandwidths, BFQ delivers up to five-time higher throughput than existing solutions. But the same mechanisms that gained BFQ this primacy become a hindrance with some deceptive workloads. These workloads trick BFQ mechanisms into wrongly believing that some I/O flows need to be privileged with respect to other flows, even at the expense of losing throughput dramatically. In contrast, total throughout is the only performance parameter that matters. We took countermeasures to offset this loss of throughput, countermeasures that fully succeed with some 
unfriendly workloads.

Then, as for I/O control, the combination of several new improvements and fixes let the worst-case start-up time of applications drop by an additional 35%. We show these results not only through graphs, but also through a new demo with a Chromebook.

The last contributions shown in this presentation are about
efficiency. In fact, even the execution overhead of an I/O scheduler may limit maximum throughput with very fast drives. So, to reduce BFQ overhead, we tried to turn some properties of these drives into BFQs advantage: we looked for costly optimizations that are no longer necessary with these drives. We found some, and added controls that automatically turn them off when not needed.

Paolo Valente profile image

Paolo Valente / Assistant Professor of CS University of Modena and Reggio Emilia, Italy

Paolo Valente is an Assistant Professor of Computer Science at the University of Modena and Reggio Emilia, Italy. Some of his activities focus 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 seems to be on the right track to replace the current default I/O scheduler in Linux. 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. Paolo has given about thirty talks, as an invited speaker or to present his scientific papers.

Paolo Valente profile image

Paolo Valente / Linaro, Collaborator, Assistant professor Linaro

Paolo Valente is an Assistant Professor of Computer Science at the
University of Modena and Reggio Emilia, Italy, and a collaborator of
the Linaro engineering organization. Paolos main activities focus on
scheduling algorithms for storage devices, transmission links and
CPUs. In this respect, Paolo is the author of the last version of the
BFQ I/O scheduler. BFQ entered the Linux kernel from 4.12, providing
unprecedented low-latency and fairness guarantees. 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. Finally, Paolo has also defined and implemented other
algorithms, part of which are now in FreeBSD, and has provided new
theoretic results on multiprocessor scheduling.

Paolo has given about forty talks, as an invited speaker or to present
his scientific papers.