...
BFQ started from CFQ, extending it in the way you correctly describe,
so it is indeed very similar. There are also some minor changes to
locking, cic handling, hw_tag detection and to the CIC_SEEKY heuristic.
The two schedulers share similar goals, and in my opinion BFQ can be
considered, in the long term, a CFQ replacement; *but* before talking
about replacing CFQ we have to consider that:
- it *needs* review and testing; we've done our best, but for sure
it's not enough; review and testing are never enough;
- the service domain fairness, which was one of our objectives, requires
some extra complexity; the mechanisms we used and the design choices
we've made may not fit all the needs, or may not be as generic as the
simpler CFQ's ones;
- CFQ has years of history behind and has been tuned for a wider
variety of environments than the ones we've been able to test.
If time-based fairness is considered more robust and the loss of
service-domain fairness is not a problem, then the two schedulers can
be made even more similar.
--