Research XanMod kernels on Clear Linux

There it is, running like a champ :llama:

1 Like

I was on X11 at the time. I’m running out of time for Clear projects and trying to finish. Just now, finished solving the issue.

In cased you glanced quickly, I have ltsdesktop which is Clear’s LTS kernel with preempt and rcu boost enabled. In other words, I have reached apples-to-apples comparison between Clear and XanMod. Clear’s kernel also drops frames with preempt enabled. Marching forward and through discovery, I think not a good idea to enable preempt by default.

$ sudo clr-boot-manager list-kernels
  org.clearlinux.ltscurrent.6.1.53-1313
* org.clearlinux.xmlts.6.1.54-4
  org.clearlinux.ltsdesktop.6.1.53-3
  org.clearlinux.xmedge.6.4.15-3
  org.clearlinux.xmlts.6.1.54-3
  org.clearlinux.xmrt.6.1.46-3

Above, xmlts.6.1.54-3 has preempt enabled and 6.1.54-4 not. The latter experiences no frame drops without chrt, while the system is running background jobs. :slight_smile:

Status: I completed user-simulation. That was intense. I added safety to automation. So, that folks cannot install same version on top of self or remove self, … and more.

I see the light :slight_smile:

1 Like

The spec files are based on Clear’s kernels and using Clear’s config. The desktop flavors have the preempt and rcu overrides enabled. The rcu_boost knob depends on rt_mutexes, preempt_rcu, and rcu_expert.

cp %{SOURCE1} .config

# Enable preempt.
%if 1
scripts/config -e PREEMPT_BUILD
scripts/config -d PREEMPT_NONE
scripts/config -d PREEMPT_VOLUNTARY
scripts/config -e PREEMPT 
scripts/config -e PREEMPT_COUNT
scripts/config -e PREEMPTION
scripts/config -e PREEMPT_DYNAMIC
%endif

# Enable RCU boost (requires preempt).
%if 1
scripts/config -e RT_MUTEXES
scripts/config -e PREEMPT_RCU
scripts/config -e RCU_EXPERT
scripts/config -e RCU_BOOST
scripts/config --set-val RCU_BOOST_DELAY 500
scripts/config -d RCU_EXP_KTHREAD
%endif

mv .config config
1 Like

There will be two flavors default and preempt for edge, lts and rt. The sole difference between default and preempt is the latter built with preempt and rcu_boost overrides enabled in the spec file. Previously, I imagined desktop and server for naming. But this is what it says.

  org.clearlinux.xmedge-default.6.5.4-100
  org.clearlinux.xmedge-preempt.6.5.4-100

  org.clearlinux.xmlts-default.6.1.54-100
  org.clearlinux.xmlts-preempt.6.1.54-100

  org.clearlinux.xmrt-default.6.1.54-100
  org.clearlinux.xmrt-preempt.6.1.54-100
1 Like

Benchmark results apples-to-apples comparison on Clear Linux.

The RT variant will have two preempt flavors; one configured with PREEMPT_RT, the other PREEMPT_DYNAMIC.

Some nice figures there. Clear doing even better than expected.

1 Like

Agree :slight_smile: The Clear ltsdesktop and preempt_rt (with PREEMPT_RT knob enabled) do not exists. I built them locally for apples-to-apples comparison with XanMod.

The discovery led to a surprise. I added one more entry to the mix; the RT kernel with PREEMPT_DYNAMIC knobs (same overrides as lts preempt). That’s the kernel I chose for running on my desktop.

Viewing the results is best with two to three browser windows. Scroll to the bottom of the page in the third window for the RT PREEMPT_DYNAMIC results. Scroll to the ltscurrent, ltsdefault section in the first window and Clear rt, XanMod rt section in the 2nd window.

2 Likes

I am wondering, how can just one person do this much? You must have a few developers working in a team! :laughing:

Can’t wait @marioroy !!!

I suggested that last week :wink:

1 Like

A guy who did Many-Core Engine for Perl on his own can do this by himself @Businux. @marioroy you are an amazing human being. I apologise for my flattery.

1 Like

Thank you @Indy for the kind words.

The XanMod on Clear is interesting. Today, Sir Lego came by and asked about the customization or play factor. :blush: Ah, yes… The repo provides custom spec files. This is where to apply desired kernel customization.

linux-xmedge-custom.spec
linux-xmlts-custom.spec
linux-xmrt-custom.spec

Basically, please refrain from making modifications to the default and preempt spec files. Doing so will cause git pull to fail. Instead, make modifications to the custom spec file. The custom.spec files are ignored by git pull.

./xm-build edge-custom
./xm-install edge-custom
./xm-uninstall edge-custom

Tab auto-completion is done.

$ ./xm-build 
edge-custom    edge-preempt   lts-default    rt-custom      rt-preempt     
edge-default   lts-custom     lts-preempt    rt-default     rt-preempt_rt  

The /boot partition has limited space. So, no reason to install many XanMod kernels. Build the one you want and enjoy the XanMod kernel. If later changing your mind, remember to manage and uninstall unused XanMod kernels. Do not fill up your /boot partition.

1 Like

I finished the project and made a new thread for announcement.

1 Like

Sucess!! I can feel the fluidness of the GUI straight away.

Screenshot from 2023-09-24 15-34-16

1 Like