Date: Wed, 22 Mar 2023 13:34:17 -0700 From: Mark Millard <marklmi@yahoo.com> To: George Mitchell <george+freebsd@m5p.com> Cc: FreeBSD Hackers <freebsd-hackers@freebsd.org> Subject: Re: Periodic rant about SCHED_ULE Message-ID: <E8A93C10-F5A4-4473-9AED-299C108CAD6C@yahoo.com> In-Reply-To: <952d9795-19dc-8ad1-bb75-5c556ca6795a@m5p.com> References: <6BD317F2-7EDD-45C0-9DC9-5B94C1BBB8E1.ref@yahoo.com> <6BD317F2-7EDD-45C0-9DC9-5B94C1BBB8E1@yahoo.com> <952d9795-19dc-8ad1-bb75-5c556ca6795a@m5p.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mar 22, 2023, at 12:40, George Mitchell <george+freebsd@m5p.com> = wrote: > 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.) >=20 > service dnetc start I built and installed misc/dnetc and got a binary blob that clearly was not built in my environment: # file /usr/local/distributed.net/dnetc /usr/local/distributed.net/dnetc: ELF 64-bit LSB executable, x86-64, = version 1 (FreeBSD), statically linked, for FreeBSD 10.1 (1001515), = FreeBSD-style, stripped Way older FreeBSD vintage than the locally available toolchains would normally build. Some might be cautious about such a thing. The man page reported that: QUOTE If you have never run the client before, it will initiate the = menu-driven configuration. Save and quit when done, the configuration file will = be saved in the same directory as the client. Now, simply restart the client. =46rom that point on it will use the saved configuration. END QUOTE I've not seen what the configuration asks about yet. >>> 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.] >=20 > I am literally running "make buildworld" with no additional options. So required for repeating your results, but likely making such results not be interesting relative to how I normally deal with buildworld buildkernel and the likel, no matter if there is other activity in an overlapping time frame or not: my time preferences are too strong to wait for a single hardware thread to do my normal builds, even with no competing activity on the builder. >>> 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? [...] >=20 > 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. Off topic for the specifics of the actual benchmark that you run: Then why not use of -jN ? In my context, any buildworld using -j1 or no -j at all takes a huge amount of time longer than letting it use all the hardware threads (or so). (I've avoided having any I/O bound contexts for such.) It does not take additional load on the system for that to be true --including on the 4-core small arm boards when I happen to buildworld on such (rare). >> [...] >> 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. >> [...] >=20 > You have to build a new kernel, using a config file in which you have > replaced "options SCHED_ULE" with "options SCHED_4BSD". -- George Thanks for the notes. I've not decided if I'll do anything with the binary blob or not. =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E8A93C10-F5A4-4473-9AED-299C108CAD6C>