Kernel 6.13 ==> preemptive multitasking

Tried bootparameter “preempt=full”
uname -a tells no change, says: 6.13.0-1-MANJARO #1 SMP PREEMPT_DYNAMIC
with or without this parameter??

I do not know how to check for what setting this flag is supposed to be doing.

But uname is not the tool to check whether your parameter does anything.
It just prints certain information - but not whether features like this are currently active or not.
Basically just names, but not features.

uname --help

There is probably information about that in the system log - or not.
I did not check.

journalctl
or
sudo dmesg | less

1 Like

I am on Kernel 6.6.65-1:

zgrep PREEMPT /proc/config.gz :

CONFIG_PREEMPT_BUILD=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
CONFIG_PREEMPT_DYNAMIC=y
CONFIG_PREEMPT_RCU=y
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set

… but:
does setting this boot parameter actually do anything?
… and what and how to check whether it did?

That is how I read the question.

1 Like

Based on The kernel's command-line parameters — The Linux Kernel documentation

   preempt=        [KNL]
                    Select preemption mode if you have CONFIG_PREEMPT_DYNAMIC
                    none - Limited to cond_resched() calls
                    voluntary - Limited to cond_resched() and might_sleep() calls
                    full - Any section that isn't explicitly preempt disabled
                           can be preempted anytime.

So, seems that the Kernel parameter, enable/force the preemption.

Yes, it should do that - and it probably does.
But: is there a check whether and what it actually did?
I think that was the aim of the question.

1 Like

I don’t know much about this, but when I look at dmesg on my system I see

[    0.090018] Dynamic Preempt: full

which makes me wonder if it is defaulting to full since I’ve not explicitly set anything.

You could try explicitly setting the value to something else like lazy and see if dmesg reports something different. I guess.

1 Like

Exactly!
And dmesg verifies (at least on linux613)
0.058415] Dynamic Preempt: full
Finally like AMIGA did 1985 :innocent:

It may come as a surprise, but:
that is the case for every Manjaro kernel (not just 613) and without that parameter.

In other words:
the effect of you adding that kernel boot parameter is: none
… remove the parameter and the dmesg output will not change …

3 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.