BFQ and related stuff on disk scheduling
BFQ-v3 sports the following new features (see the
changelog in README.BFQ for more details):
- New improvements to the low-latency mechanisms, including a more accurate criterion to distinguish between greedy-but-seeky and soft real-time applications. Interactive applications now enjoy noticeably lower latencies.
- Switch to the simpler one-request-dispatch-at-a-time scheme as in CFQ.
- Cooperating-queues merging, ported from CFQ by Arianna Avanzini. Queues of processes performing IO on interleaved, yet contiguous disk zones are merged to boost the throughput. Some little optimizations to get a more stable throughput have been added to the original port.
-
Static fallback queue for extreme OOM conditions. Port contributed by
Francesco Allertsen.
According to our tests on 2.6.39 and 3.0, none of these features is paid with a loss of aggregate throughput with respect to BFQ-v2. As usual, there is still room for improvement, because, e.g., interactive applications happen occasionally to experience a quite higher latency than the average.
The patchset and any incremental patch can be downloaded here.