[PATCH 1/4] smp: Documentation

Gedare Bloom gedare at rtems.org
Thu Sep 3 14:59:21 UTC 2015


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.

> +
> +For the configuration of clustered/partitioned schedulers see @ref{Configuring
> +a System Configuring Clustered/Partitioned Schedulers}.
> +
> +To set the scheduler of a task see @ref{Symmetric Multiprocessing Services
> +SCHEDULER_IDENT - Get ID of a scheduler} and @ref{Symmetric Multiprocessing
> +Services TASK_SET_SCHEDULER - Set scheduler of a task}.
> +
>  @subsection Scheduler Helping Protocol
>
>  The scheduler provides a helping protocol to support locking protocols like
> --
> 1.8.4.5
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel



More information about the devel mailing list