Hi,
Just wanted to offer my 2 cents regarding one of the kernel cmdline parameters that I believe the YaST bootloader module appends the the kernel’s cmdline in grub.
noop is a single-queue scheduler that was deprecated since kernel 5 in favor of blk-mq (multi-queue) schedulers;
cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none
appending
elevator=noop
will not imply “none.”
in 5.8-rc3 (branch master commit cd77006e01b3198c75fb7819b3d0ff89709539bb) you wont even find this option in the documentation anymore
linux-zoxo:/usr/src/linux # grep elevator ./Documentation/admin-guide/kernel-parameters.txt
linux-zoxo:/usr/src/linux
nor does there really seem to be a way to select between none, bfq, kyber, or mq-deadline on the cmdline as near as I can tell, but you can still select none via sysfs, not sure how they intended to have this work now but apparently not by kernel cmdline.
Which brings me to another point, typically as a long time linux desktop user, I’ve never been able to settle for a stock kernel. There are a handful of things that I think would probably be ideal for most desktop users in general:
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_PREEMPT=y
CONFIG_HZ_PERIODIC=y
CPU_IDLE_GOV_LADDER=y
CPU_IDLE_GOV_MENU=n or #(not set)
since this is a laptop dynticks can save power though, I just prefer it not be on because I find that it can add latency in between cpu states and it just makes the system feel (to me) more toyish and the reason why OSX and windows users laugh at linux desktop users, dynticks and full dynticks can save a lot of power though, it’d just be nice if I had more of an actionable choice. So I choose periodic since I’m seldom away from a charger where I can’t just plugin and get power if I need to. The others are definitely nice-to-have, particularly with how X11 responds. Using I/O schedulers typically I have found in the past that noop makes the experience feel more like a desktop than a server, but I’m starting to notice less. I do some server-related stuff on here, and I do use cgroups, particularly I have firefox setup to start with:
systemd-run --user --no-block -p Nice=-19 -p MemoryHigh=1G -p CPUQuota=100% /home/toor/.local/firefox/firefox-bin %u
Generally I also set the specific CPU family for the compiler:
CONFIG_MK8=y
# or CONFIG_MCORE2
and since this is a desktop with 4GB of memory I don’t really want hugepages so I turn of transparent hugepages and I typically turn off transparent hugepages in favor of hugetlbfs since I’m unlikely to use hugepages without setting hugepagesz=1G and setting nr_hugepages when I do want them. Perhaps desktops with larger amounts of memory perform better with hugepages (transparent) but I’ve never investigated this. The point I thought was to minimize the page table growth as applications use larger amounts of memory, along with merging but I’m not really sure how it works off-hand. It seems evident though on this computer I probably don’t need it and don’t have extra memory to waste per page. so I just turn it off.
The problem with custom building the kernel is that I lose secure boot and IMA/evm options unless I setup the signing toolchain and in the past I’ve not been successful in finding a clear path or one source of information related to SuSE that tells me how to do this successfully. I don’t really care enough about it but at the same time I feel like if I have the capability I should be using it. And, I’m also wondering, if anyone else has considered whether or not it would be useful or practical to just add some additional kernel flavors to SuSE going forward, should be easy enough since it’s all built in OBS? Obviously it would be easier if the kernel were more configurable at boot time but they seem to be taking away from boot-time config options plus many of the other options I’m not certain but I want to believe they are not practical to streamline without adding bloat, or nobody cares enough to change it.