On 04/11/17 00:29, Paolo Valente wrote: > >> Il giorno 10 apr 2017, alle ore 17:15, Bart Van Assche <bart.vanassche@xxxxxxxxxxx> ha scritto: >> >> On Mon, 2017-04-10 at 11:55 +0200, Paolo Valente wrote: >>> That said, if you do always want maximum throughput, even at the >>> expense of latency, then just switch off low-latency heuristics, i.e., >>> set low_latency to 0. Depending on the device, setting slice_ilde to >>> 0 may help a lot too (as well as with CFQ). If the throughput is >>> still low also after forcing BFQ to an only-throughput mode, then you >>> hit some bug, and I'll have a little more work to do ... >> >> Has it been considered to make applications tell the I/O scheduler >> whether to optimize for latency or for throughput? It shouldn't be that >> hard for window managers and shells to figure out whether or not a new >> application that is being started is interactive or not. This would >> require a mechanism that allows applications to provide such information >> to the I/O scheduler. Wouldn't that be a better approach than the I/O >> scheduler trying to guess whether or not an application is an interactive >> application? > > IMO that would be an (or maybe the) optimal solution, in terms of both > throughput and latency. We have even developed a prototype doing what > you propose, for Android. Unfortunately, I have not yet succeeded in > getting support, to turn it into candidate production code, or to make > a similar solution for lsb-compliant systems. Hello Paolo, What API was used by the Android application to tell the I/O scheduler to optimize for latency? Do you think that it would be sufficient if the application uses the ioprio_set() system call to set the I/O priority to IOPRIO_CLASS_RT? Thanks, Bart.