* Linux 6.12 new preemption models
@ 2025-01-01 22:51 Leo Famulari
2025-01-03 18:15 ` kiasoc5
0 siblings, 1 reply; 3+ messages in thread
From: Leo Famulari @ 2025-01-01 22:51 UTC (permalink / raw)
To: guix-devel
FYI, Linux / linux-libre 6.12 introduces a new set of preemption
options:
------
Preemption Model
1. No Forced Preemption (Server) (PREEMPT_NONE)
> 2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY)
3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT)
4. Fully Preemptible Kernel (Real-Time) (PREEMPT_RT) (NEW)
------
These options trade between kernel throughput and latency.
PREEMPT_NONE is how the kernels worked before 6.12.
The trade-off made in PREEMPT_VOLUNTARY is suggested for desktops, so
I'm going to select it for our 6.12 kernel packaging and it will
presumably remain so for future versions as well.
But if you are building Guix kernels for a busy server or HPC, you
should select PREEMPT_NONE. And you might have use cases for the other
options as well.
Let me know if you disagree.
References:
https://cateee.net/lkddb/web-lkddb/PREEMPT_NONE.html
https://cateee.net/lkddb/web-lkddb/PREEMPT_VOLUNTARY.html
https://cateee.net/lkddb/web-lkddb/PREEMPT.html
https://cateee.net/lkddb/web-lkddb/PREEMPT_RT.html
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Linux 6.12 new preemption models
2025-01-01 22:51 Linux 6.12 new preemption models Leo Famulari
@ 2025-01-03 18:15 ` kiasoc5
2025-01-03 18:21 ` Leo Famulari
0 siblings, 1 reply; 3+ messages in thread
From: kiasoc5 @ 2025-01-03 18:15 UTC (permalink / raw)
To: Leo Famulari, guix-devel
On 1/1/25 17:51, Leo Famulari wrote:
> FYI, Linux / linux-libre 6.12 introduces a new set of preemption
> options:
>
> ------
> Preemption Model
> 1. No Forced Preemption (Server) (PREEMPT_NONE)
>> 2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY)
> 3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT)
> 4. Fully Preemptible Kernel (Real-Time) (PREEMPT_RT) (NEW)
> ------
>
> These options trade between kernel throughput and latency.
>
> PREEMPT_NONE is how the kernels worked before 6.12.
>
> The trade-off made in PREEMPT_VOLUNTARY is suggested for desktops, so
> I'm going to select it for our 6.12 kernel packaging and it will
> presumably remain so for future versions as well.
>
> But if you are building Guix kernels for a busy server or HPC, you
> should select PREEMPT_NONE. And you might have use cases for the other
> options as well.
>
> Let me know if you disagree.
>
> References:
> https://cateee.net/lkddb/web-lkddb/PREEMPT_NONE.html
> https://cateee.net/lkddb/web-lkddb/PREEMPT_VOLUNTARY.html
> https://cateee.net/lkddb/web-lkddb/PREEMPT.html
> https://cateee.net/lkddb/web-lkddb/PREEMPT_RT.html
>
How about PREEMPT_DYNAMIC:
https://cateee.net/lkddb/web-lkddb/PREEMPT_DYNAMIC.html
This enables changing between PREEMPT_NONE, PREEMPT_VOLUNTARY, and
PREEMPT at boot time. Then the only kernel that needs to be compiled
separate is PREEMPT_RT.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Linux 6.12 new preemption models
2025-01-03 18:15 ` kiasoc5
@ 2025-01-03 18:21 ` Leo Famulari
0 siblings, 0 replies; 3+ messages in thread
From: Leo Famulari @ 2025-01-03 18:21 UTC (permalink / raw)
To: kiasoc5; +Cc: guix-devel
On Fri, Jan 03, 2025 at 01:15:42PM -0500, kiasoc5 wrote:
> How about PREEMPT_DYNAMIC:
> https://cateee.net/lkddb/web-lkddb/PREEMPT_DYNAMIC.html
>
> This enables changing between PREEMPT_NONE, PREEMPT_VOLUNTARY, and PREEMPT
> at boot time. Then the only kernel that needs to be compiled separate is
> PREEMPT_RT.
Good suggestion! Turns out it's already enabled :)
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-01-03 18:21 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-01 22:51 Linux 6.12 new preemption models Leo Famulari
2025-01-03 18:15 ` kiasoc5
2025-01-03 18:21 ` Leo Famulari
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.