On Thu, Sep 21, 2017 at 5:03 AM, Paolo Valente <paolo.valente@xxxxxxxxxx> wrote: > Hi, > 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. > > 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 circustance, > because of throttling issues in the virtual-memory management > subsystem, and in other higher-level components. > > Thanks, > Paolo > > [1] Background I/O Type: Random - Background I/O mix: Reads and writes > - Application to start: LibreOffice Writer in > http://www.phoronix.com/scan.php?page=news_item&px=Linux-4.13-IO-Laptop > > > Paolo Valente (4): > block, bfq: fix wrong init of saved start time for weight raising > block, bfq: check and switch back to interactive wr also on queue > split > block, bfq: let early-merged queues be weight-raised on split too > block, bfq: decrease burst size when queues in burst exit > > block/bfq-iosched.c | 169 ++++++++++++++++++++++++++++++ > +--------------------- > 1 file changed, 102 insertions(+), 67 deletions(-) > > -- > 2.10.0 > Paolo, Please feel free to add: Tested-by: Lee Tibbert <lee.tibbert@xxxxxxxxx> I thought that you and linux-block readers might be interested in a data point. I have been running the algodev variant of these patches for about two weeks. Now I am running these exact patches. At one point, I had firefox running in my main windows, and, in other windows, a full linux build, a full scala-native build, and a git gc. I barely noticed the builds going on. The variance of latency in firefox was well within my normal network variance. Usually any one of the build jobs would have made firefox useless. Pretty amazing! In fact, it was so amazing that I did not trust my memory several days later, so I repeated the full test. Same result: great reduced latency. There being no such thing as a free lunch, the build jobs did take longer than if executed standalone. However, I did not mind because I was able to continue getting work done on the tasks I needed in interactive time. I hope these patches are accepted into linux mainline & will I will continue to exercise them. Lee