preemtible Kernel

Gilboa Davara gilboad at gmail.com
Thu Sep 27 07:57:21 UTC 2007


On Wed, 2007-09-26 at 14:22 +0200, Boris Glawe wrote:
> Hello,
> 
>  From the introduction of kernel 2.6 on, the kernel can be configured to 
> be preemtible. This promises better latency.
> Many did not use this feature in the past: Why?
> 
> When I look at Fedora's 7 kernel source configuration (with 'make 
> menuconfig'), the kernel is also not preemtible, but "voluntarily 
> preemtible": What does that mean?
> 
> thanks and greets
> Boris

As the name suggests (and I'm doing a massive simplification... so don't
shoot me) involuntary preemption means: "Unless strictly stated
other-wise, your code can be preempted any time, any place" while
voluntary preemption (roughly) means: "When you call certain kernel
functions the CPU might get rescheduled from under your feet".

Needless to say, involuntary preemption can wreck havoc on code that was
never designed with preemption in mind. (Mostly
resource-sharing-dead-locks and code re-entries)
As such, making the kernel preempt-able ready takes a lot of time (to
change the code behavior)  and a lot of testing. (To fix all the bugs)

- Gilboa




More information about the fedora-list mailing list