Periodic rant about SCHED_ULE
- Reply: Gary Jennejohn : "Re: Periodic rant about SCHED_ULE"
- Reply: Rozhuk Ivan : "Re: Periodic rant about SCHED_ULE"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 07 Jul 2021 17:47:47 UTC
CPU: AMD Ryzen 5 2600X Six-Core Processor (3600.10-MHz K8-class CPU) (12 threads). FreeBSD 12.2-RELEASE-p7 r369865 GENERIC amd64 (SCHED_ULE) vs FreeBSD 12.2-RELEASE-p7 r369865 M5P amd64 (SCHED_4BSD). Comparing "make buildworld" time with misc/dnetc running vs not running. (misc/dnetc is your basic 100% compute-bound task, running at nice 20.) Three out of the four combinations build in roughly four hours, but SCHED_ULE with dnetc running takes close to twelve! (And that was overnight with basically nothing else running.) This is an even worse disparity than I have seen in previous releases. Based on my total lack of an exact understanding of how loadable kernel modules work, I nevertheless hypothesize that it should be possible for the scheduler to be a loadable kernel module, given that the interface to the schedule seems to have been carefully thought out and scrupulously observed by both ULE and 4BSD. Perhaps the system could start with a dummy scheduler that is just barely functional enough to get the appropriate module loaded and have it supersede the dummy scheduler? Then switching between the schedulers would become much less of a hassle than it is currently. Why, if it is configurable, it could even be compatible with freebsd-update! I've been ranting about this for years now, and I've had my say -- but no one has ever answered my question about what workload SCHED_ULE is best for, though numerous people have claimed that it's better than SCHED_4BSD for -- some rumored workload or other. -- George