Hello, I was investigating why dbench performance (even for single dbench client) with BFQ is significantly worse than it used to be CFQ. The culprit is the idling logic in BFQ. The dbench workload is very fsync(2) heavy. In practice the time to complete fsync(2) calls is what determines the overall performance. For filesystems with a journal such as xfs or ext4 it is common that fsync(2) involves writing data from the process runningg fsync(2) - dbench in this case - and then waiting for the journalling machinery to flush out metadata from a separate process (jbd2 process in ext4 case, worker thread in xfs case). CFQ's heuristic was able to determine that it isn't worth to idle waiting for either dbench or jbd2 IO. BFQ's heuristic is not able to determine this and thus jbd2 process is often blocked waiting for idle timer of dbench queue to trigger. The first patch in the series is an obvious bugfix but is not enough to improve performance. The second patch does improve dbench performance from ~80 MB/s to ~200 MB/s on my test machine but I'm aware that it is probably way too aggressive and probably a different solution is needed. So I just wrote that patch to see the results and spark some discussion :). Any idea how to improve the waker logic so that dbench performance doesn't drop so dramatically? Honza