On 7/03/2014 9:20 pm, Sebastian Huber wrote:
Add a local context structure to the SMP lock API for acquire and release pairs. This context can be used to store the ISR level and profiling information. It may be later used to enable more sophisticated lock algorithms, e.g. MCS locks.
Nice.
--- a/cpukit/rtems/include/rtems/rtems/intr.h +++ b/cpukit/rtems/include/rtems/rtems/intr.h
Unrelated patch question. With SMP is it safe at this API level for a user to disable interrupts with out a lock ? I am struggling to see a use case in the application world where it is.
--- a/cpukit/score/include/rtems/score/smplock.h +++ b/cpukit/score/include/rtems/score/smplock.h @@ -42,54 +42,50 @@ extern "C" { * The SMP lock is implemented as a ticket lock. This provides fairness in * case of concurrent lock attempts. * - * This SMP lock API has a flaw. It does not provide the ability to use a - * local context for acquire and release pairs. Such a context is necessary to - * implement for example the Mellor-Crummey and Scott (MCS) locks. The SMP - * lock is currently used in _Thread_Disable_dispatch() and - * _Thread_Enable_dispatch() and makes them to a giant lock acquire and - * release. Since these functions do not pass state information via a local - * context there is currently no use case for such a feature. + * This SMP lock API uses a local context for acquire and release pairs. Such + * a context may be used to implement for example the Mellor-Crummey and Scott + * (MCS) locks in the future.
Should there be a '@todo' tag ? Chris _______________________________________________ rtems-devel mailing list rtems-devel@rtems.org http://www.rtems.org/mailman/listinfo/rtems-devel