Re: Periodic rant about SCHED_ULE

From: George Mitchell <george+freebsd_at_m5p.com>
Date: Wed, 22 Mar 2023 19:40:53 UTC
On 3/22/23 15:21, Mark Millard wrote:
> George Mitchell <george+freebsd@m5p.com> wrote on
> Date: Wed, 22 Mar 2023 17:36:39 UTC :
> [...]
>> Here are the very complicated instructions for reproducing the problem:
>> 1. Install and start misc/dnetc from ports.
> 
> Installing is likely easy, as likely would be building
> with default options (if any). I know nothing about
> starting misc/dnetc so that is research. (Possibly
> trivial, although if it has alternatives to control
> then I'd need to match that context too.)

service dnetc start

> 
>> 2. Run "make buildworld".
> 
> So on the 32 hardware-thread (16 cores) amd64 machine that
> I have access to, the test is to only have buildworld use
> about one hardware thread, no matter what else is going on.
> I never would have guessed that the steps would not involve
> more like -j$(sysctl -n hw.ncpu) (so around -j32 in this
> context). So it is good that you provided your note or
> I'd not know if I'd done similarly or not when trying such.
> 
> [Note: -j1 and lack of -j are not strictly equivalent in
> how make operates. As I remember, the distinction makes
> a notable difference in the number of subprocesses created
> directly by make (one per action "line" vs. one for the
> whole block?). So even using -j1 might make a difference
> vs. what you specified. I'd have to test to see.]

I am literally running "make buildworld" with no additional options.

> 
>> Standard out conveniently reports how long it took (wall clock).
> 
> But nothing in your instructions indicate about how
> to get an idea much progress dnetc made during the
> various tests? [...]

Honestly, I've never worried about this part.  But dnetc logs its
progress in /usr/local/distributed.net/dnetc.txt, though not in terms
that are easy to relate to real-world progress.  Oddly, when I run
"make buildworld," I'm primarily interested in getting the world built.
Perhaps others feel differently.

> [...]
> FYI: I've never built with and run the alternate
> scheduler so if there is any appropriate background
> for that that would not be obvious on finding basic
> instructions, it would be appropriate to provide
> such notes.
> [...]

You have to build a new kernel, using a config file in which you have
replaced "options SCHED_ULE" with "options SCHED_4BSD".     -- George