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
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.