Comment by jorvi

Comment by jorvi 3 days ago

6 replies

Well, for the two examples I named:

vm.swappiness defaults to 60, which is default from when everyone was still running spinning rust with a swap partition. Servers these days usually have very specific storage+memory configurations, whereas the usual desktop or laptop has an SSD and 16GB+ of RAM with RAM compression expanding it.

Lazy RCU loading is good on a laptop because you only lose about 10% performance and only with specific workloads, but your idle and light load energy consumption improves. Most laptops spend like 95%+ in light or idle load scenarios. Conversely, on a desktop you don't care (much) about idle and light load energy consumption, you only care about keeping max load consumption low enough so that your fans stay quiet. And on a workstation you don't care about a system being whisper quiet so you can go nuts with the energy consumption.

prmoustache 3 days ago

> vm.swappiness defaults to 60, which is default from when everyone was still running spinning rust with a swap partition. Servers these days usually have very specific storage+memory configurations, whereas the usual desktop or laptop has an SSD and 16GB+ of RAM with RAM compression expanding it.

You don't need to compile a specific kernel for that, this is setup via sysctl.

jcalvinowens 3 days ago

> Lazy RCU loading is good on a laptop

Do you mean RCU_LAZY? Most distros will already enable that: it doesn't do anything without rcu_nocbs, so there's no negative impact on server workloads.

    [calvin@debian-trixie ~] grep RCU_LAZY /boot/config-6.12.57+deb13-amd64
    CONFIG_RCU_LAZY=y
    # CONFIG_RCU_LAZY_DEFAULT_OFF is not set
    [calvin@debian-trixie ~] grep RCU_NOCB_CPU /boot/config-6.12.57+deb13-amd64 
    CONFIG_RCU_NOCB_CPU=y
    # CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...

You just have to set rcu_nocbs on the kernel cmdline.

johnny22 3 days ago

Swappiness and many others can be changed by some sort of system preset rather built that way. I know not ALL options can be done that way, but I'd want to see changes start there where feasible.

malwrar 3 days ago

I totally missed that part of your comment, my bad. Thanks for elaborating on those, I feel inspired to experiment!

So far my kernel journey has been about making my hardware work + enabling features, and that’s mostly how I’ve been discovering config options. Do you have any suggestions on where one aught to read further on this sort of kernel tuning?

EDIT: doing some further research, couldn’t you just set those options via sysctl w/o needing to build a separate kernel?

  • jorvi 2 days ago

    Yes you can adjust them via sysctl or directly as kernel parameter arguments. That isn't my point. My point is that Linux has some horrible defaults :+)

    • malwrar a day ago

      Makes sense! Thanks for turning me on to them, I hadn’t come across those yet in my journey.