Project Proposal: add sleeping spinlocks to mainline kernel


Tim Bird <tim.bird@...>
 

Summary: add sleeping spinlocks to the mainline kernel

Proposer: Tim Bird

Description:
One of the last major elements of the RT-preempt patch set that is
still not mainlined is the implementation of the so-called
"sleeping spinlocks". It would be good to mainline these,
addressing remaining issues to their inclusion in the standard
Linux kernel.

Thomas Gleixner discussed the status of RT-preempt at the
[http://lwn.net/Articles/354690/ realtime preemption mini-summit,
and the [http://lwn.net/Articles/357465/ 2009 kernel summit].

Related work:
* RT-preempt
** http://rt.wiki.kernel.org/index.php/Main_Page

Scope: unknown

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================


Linus Walleij <linus.ml.walleij@...>
 

2009/12/16 Tim Bird <tim.bird@...>:

Summary: add sleeping spinlocks to the mainline kernel
If realtime performance overall is a big deal for CELF I would suggest
adding "Kill-the-BKL" to the suggested projects. There are still some
RTOS people using the BKL as an argument to flak the Linux kernel,
c.f.
http://www.freescale.com/files/32bit/doc/ref_manual/EMBMCRM.pdf
(section 5.2)

Another item could be to go through some common embedded
arch drivers and switch them from request_irq() to request_threaded_irq()
just based on the observation that almost nobody actually use that
in the mainline kernel, though I'm sure they should,
if realtime is a desired feature.
(The wm8350-core driver is an excellent example of a situation where
it is used properly.)

NB: I'm not a member of the CE Linux Forum and nor is my company
so I'm just talking freely here. (linux-embedded is public, hehe.)

Yours,
Linus Walleij


Tim Bird <tim.bird@...>
 

Linus Walleij wrote:
2009/12/16 Tim Bird <tim.bird@...>:

Summary: add sleeping spinlocks to the mainline kernel
If realtime performance overall is a big deal for CELF I would suggest
adding "Kill-the-BKL" to the suggested projects. There are still some
RTOS people using the BKL as an argument to flak the Linux kernel,
c.f.
http://www.freescale.com/files/32bit/doc/ref_manual/EMBMCRM.pdf
(section 5.2)
The only reference I could find in section 5.2 to BKL was
an OSE BKL. Maybe I missed the reference to the Linux BKL.
(I looked pretty quickly).

However, agree that BKL reduction is a worthy goal.


Another item could be to go through some common embedded
arch drivers and switch them from request_irq() to request_threaded_irq()
just based on the observation that almost nobody actually use that
in the mainline kernel, though I'm sure they should,
if realtime is a desired feature.
(The wm8350-core driver is an excellent example of a situation where
it is used properly.)
Likely, CELF would be most interested in switching to using
threaded interrupts in places where the drivers were commonly
used in embedded devices. This would require some analysis.
But this is another good suggestion.

NB: I'm not a member of the CE Linux Forum and nor is my company
so I'm just talking freely here. (linux-embedded is public, hehe.)
The feedback is much appreciated!
-- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================