Forgive this impatient soul. When will the kernel 6.12 be released?

It is such an upgrade! Thank you.

Indy and the Quest for the 6.12 Kernel

In the world of bytes where imaginations soar,
Lives a curious soul, Indy, exploring the core.
With a heart full of questions and a mind sharp as steel,
He seeks out the truth that the developers conceal.

In Clear Linux, where performance shines bright,
A kernel named 6.12 dances just out of sight.
Indy wonders aloud, with a furrowed brow,
“When will this marvel reveal itself now?”

It’s not just a date that he wishes to find,
But a puzzle of factors, complex and entwined.
With features and fixes, security tight,
The answer is cloaked in the shadows of night.

The cycles of coding, the whispers of change,
In the world of development, timelines are strange.
So tell me, dear friend, what does Indy crave?
A glimpse of the future, a kernel to save.

What is the answer, both near and afar?
In the depths of the code lies the guiding star.
So ponder this riddle, let your thoughts twine,
When will 6.12 emerge, shining divine?

3 Likes

so – normally we wait for the .1 stable update. Mostly because of packaging technical reasons (the filename/directory names of various things in the “.0” are kind of rather odd and different than anything after that – which leads to manual and thus fragile things)

and 6.12.1 came out late last week! I’ve already updated our package, all it now takes is for an update to pass QA for it to become available.

Just curious: what kind of things are you looking forward to?

3 Likes

That’s quite nice. Thank you for enabling preemption.

129c131
< CONFIG_PREEMPT_VOLUNTARY_BUILD=y
---
> CONFIG_PREEMPT_BUILD=y
131,132c133,137
< CONFIG_PREEMPT_VOLUNTARY=y
< # CONFIG_PREEMPT is not set
---
> # CONFIG_PREEMPT_VOLUNTARY is not set
> CONFIG_PREEMPT=y
> # CONFIG_PREEMPT_RT is not set
> CONFIG_PREEMPT_COUNT=y
> CONFIG_PREEMPTION=y
134a140
> # CONFIG_SCHED_CLASS_EXT is not set
158a165
> CONFIG_PREEMPT_RCU=y
163a171
> CONFIG_TASKS_RCU=y
170a179,181
> CONFIG_RCU_BOOST=y
> CONFIG_RCU_BOOST_DELAY=500
> # CONFIG_RCU_EXP_KTHREAD is not set
172a184
> # CONFIG_RCU_NOCB_CPU_CB_BOOST is not set

There’s a patch for lazy preemption that is beneficial depending on the app.

$ sudo cat /sys/kernel/debug/sched/preempt 
none voluntary (full) lazy 

$ echo lazy | sudo tee /sys/kernel/debug/sched/preempt

The 6.12 kernel includes sched_ext schedulers. Missing in Clear Linux is sched-ext tools. My favorite is scx_rusty. Though scx_flash and scx_lavd are amazing, as well.

See how it’s packaged for CachyOS. It’s a meson build.

The 6.12 kernel need various knobs enabled (mentioned at scx url) for this to work.

Well, that’s another nice thing about 6.12 and like to make a kernel with SCX support. But it needs the scx_scheds tools bundle providing the scx_* binaries.

scx_bpfland   scx_flatcg    scx_loader    scx_qmap      scx_rusty     
scx_central   scx_lavd      scx_nest      scx_rlfifo    scx_simple    
scx_flash     scx_layered   scx_pair      scx_rustland  scx_userland  

I looked at packaging scx and … it’s a tad … interestingly weird
so far it has defeated me but I’ll try again later

Thanks, @arjan, for your reply. I am interested in a low-latency kernel and a super responsive GUI. I play with a DAW (Bitwig Studio), and the 6.12 kernel with sched-ext rusty makes it possible to set a buffer size of 64 samples without any dropouts. This is wild! So, the answer to your question is ‘sched-ext’. This is a screenshot of kernel 6.12 performance on Cachy OS.

When I updated CL today, I was super excited about the CL 6.12 kernel, but the Nvidia driver is now broken, so I have no desktop.

1 Like

we’ll check why nouveau is broken – it shouldn’t be

still working on the sched-ext tooling – the combination of rust, meson and bpf is generally not a happy one (the build side keeps trying to download stuff from the internet which we cannot allow)

1 Like

ok scx bundle made – will be in the next release

2 Likes

This is really good news! Thank you @arjan .

I bet @marioroy has a good insight into this, as does the proprietary driver!

The driver part is broken.

  1. The 560.35.03 driver requires patching to work with the 6.12 kernel. However, the latest production 550.135 works, but another problem described next.
  2. During the 550.135 driver installation, there becomes two sets of NVIDIA modules in the /lib/modules/kernel path. One set is compressed, the other not and making matters worst do not match. This is not going to work.

What to do? Right now, the NVIDIA 550.135 driver requires no patching. So go with that one by downloading the driver and passing the path to install-driver. This should work for first time NVIDIA installation.

On a Clear installation with prior NVIDIA driver, perform the following steps after the 550.135 driver installation.

sudo rm -f /lib/modules/*/updates/dkms/nvidia*

Boot your machine and press “e” at the boot screen and prepend "3 " with a space to the kernel arguments. Log in and change folder to nvidia-driver-on-clear-linux. Run the check script. That will build the NVIDIA modules.

./check-kernel-dkms
1 Like

@arjan Is there something missing in the linux-dev package? Well, it’s not happy for the Linux 6.12 kernel. I tried NVIDIA 565.57.01, 560.35.05, 550.135, and the Vulkan beta driver 550.40.80. All failing with the same error.

make[3]: *** No rule to make target 'scripts/module-common.c', needed by '/var/lib/dkms/nvidia/550.40.80/build/.module-common.o'.  Stop.
make[3]: *** Waiting for unfinished jobs....
  CC [M]  /var/lib/dkms/nvidia/550.40.80/build/nvidia.mod.o
make[2]: *** [/usr/lib/modules/6.12.1-1493.native/build/Makefile:1869: modules] Error 2
make[1]: *** [Makefile:224: __sub-make] Error 2
make[1]: Leaving directory '/usr/lib/modules/6.12.1-1493.native/build'
make: *** [Makefile:85: modules] Error 2

There it is and unsure if this is correct or maybe module-common.c is missing. No out-of-tree module will build on Clear for Linux 6.12.

$ cd /lib/modules/6.12.1-1493.native/build/scripts

$ grep "module-common.c" Makefile.modfinal 
$(extmod_prefix).module-common.o: $(srctree)/scripts/module-common.c FORCE

It turns out to be many missing *.c files in the scripts folder and sub-folders for the linux-dev bundle. I compared to another OS distribution.

What to do? Well, Grace says to add the missing *.c file (singular, not all of them). And that works, fortunately. An update for my NVIDIA on Clear repo is undergoing validation. :cherry_blossom:

Edit: This is completed.

2 Likes

My laptop is much more responsive on 6.12.1.

@marioroy I really appreciate your time looking into this and fixing things.

Running 565.57.01 on kernel 6.12.1-1493.native.

Thank you!

1 Like