A Set Of BFQ Improvements Ready For Testing
Recently I wrote about a BFQ regression fix that should take care of a problem spotted in our recent I/O scheduler Linux 4.13 benchmarks while now that work has yielded a set of four patches working to improve this recently-merged scheduler.
Paolo Valente of Linaro sent out a set of fixes for affecting service guarantees.
He explained in the patch series:
Paolo Valente of Linaro sent out a set of fixes for affecting service guarantees.
He explained in the patch series:
the first patch in this series fixes a bug that causes bfq to fail to guarantee a high responsiveness on some drives, if there is heavy random read+write I/O in the background. More precisely, such a failure allowed this bug to be found [1], but the bug may well cause other yet unreported anomalies.The work for now is on the kernel mailing list. It isn't clear at the moment if Paolo will try to get these into Linux 4.14 or wait until 4.15. Anyhow, I'll have some new I/O scheduler tests shortly on Phoronix.
This fix uncovered other bugs that were concealed by the fixed bug, for rather subtle reasons. These further bugs caused similar responsiveness failures, but with sequential reaad+write workloads in the background. The remaining three patches fix these further bugs.
The sum of these fixes makes responsiveness much stabler with BFQ. In the presence of write hogs, it is however still impossible for an I/O scheduler to guarantee perfect responsiveness in any circumstance, because of throttling issues in the virtual-memory management subsystem, and in other higher-level components.
1 Comment