From dafa5d88435853809040761b79ab9d8f2217281b Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 3 Sep 2015 10:27:16 +0200 Subject: score: Implement priority boosting --- doc/user/glossary.texi | 6 ++++++ doc/user/sem.t | 5 +++++ doc/user/smp.t | 6 ++++-- 3 files changed, 15 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/glossary.texi b/doc/user/glossary.texi index f0beeab4d7..bf22cf6133 100644 --- a/doc/user/glossary.texi +++ b/doc/user/glossary.texi @@ -505,6 +505,12 @@ A mechanism used to represent the relative importance of an element in a set of items. RTEMS uses priority to determine which task should execute. +@item priority boosting +A simple approach to extend the priority inheritance protocol for clustered +scheduling is @dfn{priority boosting}. In case a mutex is owned by a task of +another cluster, then the priority of the owner task is raised to an +artificially high priority, the pseudo-interrupt priority. + @item priority inheritance An algorithm that calls for the lower priority task holding a resource to have its priority diff --git a/doc/user/sem.t b/doc/user/sem.t index 6bd22dd3d7..210f1d0d92 100644 --- a/doc/user/sem.t +++ b/doc/user/sem.t @@ -115,6 +115,11 @@ for that resource. Each time a task blocks attempting to obtain the resource, the task holding the resource may have its priority increased. +On SMP configurations, in case the task holding the resource and the task that +blocks attempting to obtain the resource are in different scheduler instances, +the priority of the holder is raised to the pseudo-interrupt priority (priority +boosting). The pseudo-interrupt priority is the highest priority. + RTEMS supports priority inheritance for local, binary semaphores that use the priority task wait queue blocking discipline. When a task of higher priority than the task diff --git a/doc/user/smp.t b/doc/user/smp.t index db4114c564..de07f3c2d9 100644 --- a/doc/user/smp.t +++ b/doc/user/smp.t @@ -164,12 +164,14 @@ and instruction caches. With clustered scheduling it is possible to honour the cache topology of a system and thus avoid expensive cache synchronization traffic. It is easy to implement. The problem is to provide synchronization primitives for inter-cluster synchronization (more than one cluster is involved -in the synchronization process). In RTEMS there are currently three means +in the synchronization process). In RTEMS there are currently four means available @itemize @bullet @item events, -@item message queues, and +@item message queues, +@item semaphores using the @ref{Semaphore Manager Priority Inheritance} +protocol (priority boosting), and @item semaphores using the @ref{Semaphore Manager Multiprocessor Resource Sharing Protocol} (MrsP). @end itemize -- cgit v1.2.3