On Sat, May 20, 2023, at 4:43 PM, Demi Marie Obenour wrote:
Therefore, I am
asking if Fedora should use full kernel preemption by default.
https://pagure.io/fedora-workstation/issue/228
The outstanding questions:
a. Do we need some tests that help decide this with metrics? If so what should those be?
b. Should it be restricted to the desktop edition/spins? Or Fedora wide?
c. How do we make the change?
I have no ideas for a.) and I don't know what would be a sufficient sample of
workloads across all of Fedora; or whether to separately test the different editions.
I think if the answer to b.) is it should be Fedora-wide, means there's more pressure
to answer yes to a.)
Whereas if it's focused on desktops, perhaps less testing is needed?
Still another strategy might be to just make preempt full the default Fedora wide in
Rawhide with enough advance notice (like, nowish or soon after Fedora 39 branches). And
once it starts causing issues, revert. That's a bit spaghetti on the wall test
strategy but it's also cheap. (I am aware this is not a good strategy for testing
doneness of spaghetti.)
Regarding c.) gets tricky if it's not Fedora wide. The simplest case is, the change
applies only to desktops, everything else remains on voluntary. The only way I'm aware
of we can change it on the desktops is to set a kernel parameter. This means we need to
have Anaconda set it as a boot parameter, but only for desktops. There is a debugfs
facility for changing it during runtime, but this is not reliable due to debugfs being
disabled when kernel lockdown is in place, which is tied to Secure Boot being enabled.
Hence, the lkml thread referenced in the issue. But the lkml thread went no where (no
responses). Possibly it wasn't provocative enough. Or simply there are no plans to
expose this switch anywhere else.
https://lkml.org/lkml/2023/4/11/1291
Conversely if even two other Fedora editions/spins/variants want some kind of opt out or
opt in, it quickly gets tricky to do all that unique work setting a boot parameter, rather
than just flipping the default across the board and not having a boot parameter.
Anyway, it seems like it would be semi-straightforward to do it in Anaconda just for
desktops using kickstart `bootloader --append=` command.
https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#bootloader
--
Chris Murphy