Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Jul 2021 13:47:47 -0400
From:      George Mitchell <george+freebsd@m5p.com>
To:        FreeBSD Hackers <freebsd-hackers@FreeBSD.org>
Subject:   Periodic rant about SCHED_ULE
Message-ID:  <13445948-7804-20b4-4ae6-aaac14d11e87@m5p.com>

next in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--HF7V0AghedMoWNFDpuKNTarcdpkVGOeR5
Content-Type: multipart/mixed; boundary="JEQlsITH6BsjloiA4uygFg539pzKZdt9A";
 protected-headers="v1"
From: George Mitchell <george+freebsd@m5p.com>
To: FreeBSD Hackers <freebsd-hackers@FreeBSD.org>
Message-ID: <13445948-7804-20b4-4ae6-aaac14d11e87@m5p.com>
Subject: Periodic rant about SCHED_ULE

--JEQlsITH6BsjloiA4uygFg539pzKZdt9A
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable

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


--JEQlsITH6BsjloiA4uygFg539pzKZdt9A--

--HF7V0AghedMoWNFDpuKNTarcdpkVGOeR5
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsF5BAABCAAjFiEENdM4ZHktsJW5kKZXwRES3m+p4fkFAmDl6MMFAwAAAAAACgkQwRES3m+p4fkP
MRAAutre1e/bqhY2w1fQdiktJc6bo7+kFgW1V8qxTNumUXfyZCgL6DCALhKrDkBaAZsuvwWFSAaK
ASjGOTdlPA/fZ0tr2HWH77Z2kbj1RP7ce9zDP5PDVWZaPeD7arnAJSBvD0K9kiI/sAVBRW80WH4C
zj1rW4/XqcJN2/YPsjLfVTbToqEPJN6XpodInYrpKBF2W47hTcHF6qxUkaa/7J5gIDOY2ad7c35q
tuCQKlsoFPpD6l/UYXevO5pe/MVEX5hJLHrPhCUbqZEgeVMltqn+V76DVcywO/x0cBj65k3TETus
tAcZebbKuvII9WBfM58Kt+zMRc3ezU+7pN6FOwJCj89vJ6OLO19LAXQ2zvLmSDYRz+OjxK4Z3IZk
3MWpc2qwOoNsABp9bg8pvbihNoug9bM/qhbyFP1+nbyHvbpgOIid9K5jub20TNPEN/j0cSGUQaed
rs5rZlv7XuOMspr1hq5fra26M/nh3li31mltfNA2qHoBYecpiBY3x+CfDGydOIVbl8+ed/A+tQAX
/3mVORXsLry7jSB+dBSakJ4caR97Ehc/nWSFFGn+WlYtTURi7mGFI/axm/RGKdR/TSasS6MlPJLg
lZbSOTvE/i/5N2+162qgLEuYuqAjPUnlIvJ8yzN9nHFMdSTSr3uuyeqaXaketRmP9h7k7wxCdzQg
aJ8=
=0sGY
-----END PGP SIGNATURE-----

--HF7V0AghedMoWNFDpuKNTarcdpkVGOeR5--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?13445948-7804-20b4-4ae6-aaac14d11e87>