Date: Thu, 23 Mar 2023 21:50:35 +0100 From: Peter <pmc@citylink.dinoex.sub.org> To: freebsd-hackers@freebsd.org Subject: Re: Periodic rant about SCHED_ULE Message-ID: <ZBy7m0%2B2nNzc/r1Q@disp.intra.daemon.contact>
next in thread | raw e-mail | index | archive | help
> Yes, you've all heard it before, but I've just reverified on FreeBSD Yes, this is part of our culture: we need this periodic rant every once and again. > 13.1-RELEASE-p7 that SCHED_ULE gives terrible performance for "make > buildworld" in the presence of a totally compute-bound job (misc/dnetc Yes, this is well known, and works-as-designed. The reason is that a totally compute-bound job can only be preempted, it cannot be scheduled. A /mostly/ compute-bound job however does occasional system calls, and at that point it will be scheduled. Then, the design specifics of sched-ULE is that a preempted job will be re-positioned by the scheduler to it's former place, i.e. as said above, it will NOT be scheduled. In other words: it just continues to run until the quantum is empty. And that is the reason why your "totally compute-bound" job gets more compute than the competing one with i/o. You can actually ignore the responses with the naive questions here, because what you observe is what the code says that it has to happen. So, when I ran into this issue many years ago, I just fixed it, and my machines run fine since then. The only problem is: nobody wants the patch. (And no, I don't say that patch would solve all problems, but it did solve mine, and one could start from there.)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ZBy7m0%2B2nNzc/r1Q>