When Con Kolivas came with his own task scheduler for Linux (long before he came up with Brain Fuck Scheduler name), one of the proposal to Linus-and-co to consider was modular design so that user would have free choice of using one or another scheduler w/o need to patch-compile kernel. Probably it would even support on-line switching as, for e. g., disk’ schedulers do.
Alas, they invented shitty excuse that it’s better to have only one scheduler due to users can have another point of misconfiguration for their Linux running systems. Sounds as an absolute bull-shit and of course you can see just another example of why Linus can be considered a jerk (he wouldn’t care, don’t worry).
I had to have remembered this story as soon as I noticed Mac OS X kernel’s had an entry in its sysctls named
kern.sched. “Whoa!”, I thought, “does it really support changing the scheduler on fly?” – in fact as it turned out, it doesn’t. But, at least, you can specify it at boot time. So, as I can tell you of now, there’re
dualq options available. By default, my system used
multiq, out of curiosity, I tried
sudo nvram boot-args='-v sched=dualq' and it switched. Of course
it did a huge boost in performance I didn’t notice a thing except the sysctl’s output changed. But it’s good to know that with Mac OS X you have an option and who knows may be someday, there would be option
bfs too, huh?