What are the advantages of bfs over cfs and are there any benchmarks to see if there are any real performance gains?


There is an excellent PDF document here, which explains in detail the differences. It also does several tests that show in graphs how both behave under certain conditions.

Here is a small document from the creator of BFS: http://ck.kolivas.org/patches/bfs/bfs-faq.txt about why he created this scheduler.

But the main differences are:

BFS is better for interactive tasks that block on I/O or user input
BFS is generally a bit faster but a bit more inconsistent
BFS in low latency apps will show a big improvement over CFS (Like video apps)
BFS has much less "spikes" in cpu usage

CFS is generally more consistent for a consistent performance
CFS is better for batch processing that is CPU bound
CFS in multi cpu intensive tasks + multiple tasks will have better performance than BFS
CFS has more spikes than BFS but it works to be more fair between tasks

For the normal user, BFS might give a "better" performance but it will give less performance if you do a lot of batch process.

| improve this answer | |
  • 1
    So in summary... "probably"? The BFS scheduler is probably better for desktop computing? – Scaine Jan 9 '11 at 10:05
  • 1
    Well, as the linked pdf says : "it is dicult to provide a single CPU scheduler that performs well in all platforms and use cases." – Maxime R. Jan 9 '11 at 16:01
  • 1
    Like Maxime said. At least the most common usages must be studied further and tested a lot to determined the best suited scheduler. For the time being the work for this to come is under way. – Luis Alvarado Jan 9 '11 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.