SMP: ISR disable/enable vs. mutual exclustion

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Aug 23 14:26:00 UTC 2013


I will add the lock to the rtems_chain_control to keep it simple.

There is a big problem with the extract operation:

void _Chain_Extract(
   Chain_Node *node
)
{
   ISR_Level level;

   _ISR_Disable( level );
     _Chain_Extract_unprotected( node );
   _ISR_Enable( level );
}

Here we don't have access to the corresponding chain control and thus the lock 
object.

Thus the normal extract operation is not available on SMP.  An extract variant 
which needs also the chain control as a parameter must be used.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the devel mailing list