Thread (8 messages) 8 messages, 3 authors, 2007-11-14

Re: Priority Ceiling for SMP?

From: Luís Henriques <hidden>
Date: 2007-11-08 18:07:19

Hi!
On Thursday 08 November 2007, you wrote:
Hi!

I'm thinking about adding the priority ceiling protocol to -rt
(implemented in a way so that you can select between priority
inheritance and priority ceiling with the kernel configurator).

Since this mechanism inherently avoids dead-locks, it could be
helpful for applications that need high safety integrity levels!?

The priority ceiling protocol is basically no rocket science
and implemented for other OSes for a while, so it should be
a no-brainer get it going with Linux. However. I'm struggling
at the point where it comes to SMP: it seems like when a task
acquires a lock, it is necessary to un-schedule any active
tasks on other cores sharing the same lock. This would be
very inefficient, of course, because tasks sharing a lock
couldn't run in parallel on different CPUs.

Does anybody know of any other priority inversion and
dead-lock avoidance mechanism that would efficiently work
on SMP?

Feedback is highly appreciated!

regards

Bernhard
Maybe I didn't completely understood your question, but... if there is a 
problem with SMP efficiency (I do not really know, but believe you :) ) with 
priority ceiling (PC) implementation, this problem should have been already 
identified (and possibly solved) in the current PI implementation, right?

As far as I know (and I might be wrong), the PC is very similar to the PI.  
Main difference is that for the PC, the priority burst is to the lock ceiling 
value instead of the higher priority task that accesses the lock.

(BTW, what do you think that should be the kernel behaviour when the ceiling 
value is violated?  Typical solution in RTOS is to have a fatal error)

Best regards
-- 
Luís Henriques
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help