From 49115133adb81b19701450c3f1778f4e6e96c3a5 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 18 May 2011 23:29:12 +0000 Subject: 2011-05-18 Joel Sherrill * user/conf.t: Add SMP Configuration parameters. --- doc/ChangeLog | 4 ++++ doc/user/conf.t | 48 +++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 47 insertions(+), 5 deletions(-) (limited to 'doc') diff --git a/doc/ChangeLog b/doc/ChangeLog index 1135c2b772..5da1b7175b 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2011-05-18 Joel Sherrill + + * user/conf.t: Add SMP Configuration parameters. + 2011-05-18 Joel Sherrill * user/conf.t: Slight rework to deemphasize not using confdefs.h diff --git a/doc/user/conf.t b/doc/user/conf.t index f1cb8bf99e..0f7cfe36d7 100644 --- a/doc/user/conf.t +++ b/doc/user/conf.t @@ -402,11 +402,12 @@ a scheduling algorithm for an application. For the schedulers built into RTEMS, @findex CONFIGURE_SCHEDULER_PRIORITY @item Deterministic Priority Scheduler - This is the default scheduler -in RTEMS and is designed for predictable performance under the highest -loads. It can block or unblock a thread in a constant amount of time. -This scheduler requires a variable amount of memory based upon the number -of priorities configured in the system. This scheduler may be explicitly -selected by defining @code{CONFIGURE_SCHEDULER_PRIORITY}. +in RTEMS for single core applications and is designed for predictable +performance under the highest loads. It can block or unblock a thread +in a constant amount of time. This scheduler requires a variable +amount of memory based upon the number of priorities configured in +the system. This scheduler may be explicitly selected by defining +@code{CONFIGURE_SCHEDULER_PRIORITY}. @findex CONFIGURE_SCHEDULER_SIMPLE @item Simple Priority Scheduler - This is an alternative scheduler @@ -418,6 +419,23 @@ constant time operation with this scheduler. This scheduler is appropriate for use in small systems where RAM is limited. This scheduler may be explicitly selected by defining @code{CONFIGURE_SCHEDULER_SIMPLE}. +@findex CONFIGURE_SCHEDULER_SIMPLE_SMP +@item Simple SMP Priority Scheduler - This scheduler is derived from the +Simple Priority Scheduler but is capable of scheduling threads across +multiple cores. It is designed to provide the same task scheduling +behaviour as the Deterministic Priority Scheduler while distributing +threads across multiple cores. Being based upon the Simple Priority +Scheduler, it is also maintains a single sorted list of all ready threads. +Thus blocking or unblocking a thread is not a constant time operation +with this scheduler. In addition, when allocating threads to cores, +the algorithm is not constant time. This algorithm was not designed +with efficiency as a primary design goal. Its primary design goal was to +provide an SMP-aware scheduling algorithm that is simple to understand. +This scheduler is currently the default in SMP configurations and is +only selected when @code{CONFIGURE_SMP_APPLICATION} is defined. In a +configuration with SMP enabled at configure time, it may be explicitly +selected by defining @code{CONFIGURE_SCHEDULER_SIMPLE_SMP}. + @end itemize The pluggable scheduler interface was added after the 4.10 release series @@ -450,6 +468,26 @@ For guidance on the configuration macros, please examine @code{cpukit/sapi/include/confdefs.h} for how these are defined for the Deterministic Priority Scheduler. +@c +@c +@c +@subsection SMP Specific Configuration Parameters + +When RTEMS is configured to support SMP target systems, there are other +configuration parameters which apply. + +@itemize @bullet + +@findex CONFIGURE_SMP_APPLICATION +@item @code{CONFIGURE_SMP_APPLICATION} must be defined if the application +is to make use of multiple CPU cores in an SMP target system. + +@item @code{CONFIGURE_SMP_MAXIMUM_PROCESSORS} must be set to the number +of CPU cores in the SMP configuration. If there are more cores available +than configured, the rest will be ignored. + +@end itemize + @c @c @c -- cgit v1.2.3