[PATCH 1/4] smp: Documentation
Gedare Bloom
gedare at rtems.org
Fri Sep 4 09:58:07 UTC 2015
On Fri, Sep 4, 2015 at 2:35 AM, Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
>
>
> On 03/09/15 16:59, Gedare Bloom wrote:
>>
>> On Thu, Sep 3, 2015 at 8:01 AM, Sebastian Huber
>> <sebastian.huber at embedded-brains.de> wrote:
>>>
>>> >---
>>> > doc/user/smp.t | 38 ++++++++++++++++++++++++++++++++++++++
>>> > 1 file changed, 38 insertions(+)
>>> >
>>> >diff --git a/doc/user/smp.t b/doc/user/smp.t
>>> >index 1b4849a..ba700e0 100644
>>> >--- a/doc/user/smp.t
>>> >+++ b/doc/user/smp.t
>>> >@@ -147,6 +147,44 @@ another processor. So if we enable interrupts
>>> > during this transition we have
>>> > to provide an alternative task independent stack for this time frame.
>>> > This
>>> > issue needs further investigation.
>>> >
>>> >+ at subsection Clustered/Partitioned Scheduling
>>> >+
>>> >+We have clustered scheduling in case the set of processors of a system
>>> > is
>>> >+partitioned into non-empty pairwise-disjoint subsets. These subsets are
>>> > called
>>> >+clusters. Clusters with a cardinality of one are partitions. Each
>>> > cluster is
>>> >+owned by exactly one scheduler instance.
>>> >+
>>> >+Clustered/partitioned scheduling helps to control the worst-case
>>> > latencies in
>>> >+the system, see @cite{Brandenburg, Björn B.: Scheduling and Locking in
>>> >+Multiprocessor Real-Time Operating Systems. PhD thesis, 2011.
>>> >+ at uref{http://www.cs.unc.edu/~bbb/diss/brandenburg-diss.pdf}}. The goal
>>> > is to
>>> >+reduce the amount of shared state in the system and thus prevention of
>>> > lock
>>> >+contention. Modern multi-processor systems tend to have several layers
>>> > of data
>>> >+and instruction caches. With clustered/partitioned 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-partition synchronization. In
>>> > RTEMS there
>>> >+are currently three means available
>>> >+
>>> >+ at itemize @bullet
>>> >+ at item events,
>>> >+ at item message queues, and
>>> >+ at item semaphores using the @ref{Semaphore Manager Multiprocessor
>>> > Resource
>>> >+Sharing Protocol} (MrsP).
>>> >+ at end itemize
>>> >+
>>> >+The clustered/partitioned scheduling approach enables separation of
>>> > functions
>>> >+with real-time requirements and functions that profit from fairness and
>>> > high
>>> >+throughput provided the scheduler instances are fully decoupled and
>>> > adequate
>>> >+intra-partition synchronization primitives are used. This is work in
>>> > progress.
>>
>> inter-partition? inter-partition doesn't make sense. Also, to be
>> general, it should really be inter-cluster, which goes for the above
>> use of "inter-partition" as well. Because of the use of partition in
>> Partitioned Scheduling, we have to be careful about the use of
>> partition in other places related to SMP scheduling, unfortunately.
>>
>
> Would it be better to replace "clustered/partitioned scheduling" with
> "clustered scheduling" throughout the manual and just mention that
> partitions are clusters with exactly one processor? So we have
> "inter-cluster synchronization" for synchronization that involves more than
> more cluster and "intra-cluster synchronization" for synchronization that
> involves exactly one cluster.
>
Yes.
> --
> 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