Index: c-user/configuring_a_system.rst
===================================================================
--- c-user/configuring_a_system.rst	(revision c65aeed3cd4ceae2f8310039bc90febedd9ea700)
+++ c-user/configuring_a_system.rst	(revision bf78123adaaef8e56eb76e5d6bf9c0ba1b03b57e)
@@ -3327,15 +3327,11 @@
 
 DESCRIPTION:
-    The Constant Bandwidth Server Scheduler (CBS) is an alternative scheduler
-    in RTEMS for uniprocessor applications. The CBS is a budget aware
-    extension of EDF scheduler. The goal of this scheduler is to ensure
-    temporal isolation of tasks. The CBS is equipped with a set of additional
-    rules and provides with an extensive API.
-
-    This scheduler may be explicitly selected by defining
-    ``CONFIGURE_SCHEDULER_CBS``.
-
-NOTES:
-    None.
+    If defined, then the :ref:`Constant Bandwidth Server (CBS) Scheduler
+    <SchedulerCBS>` algorithm is made available to the application.
+
+NOTES:
+    In case no explicit :ref:`clustered scheduler configuration
+    <ConfigurationSchedulersClustered>` is present, then it is used as the
+    scheduler for exactly one processor.
 
 .. index:: CONFIGURE_SCHEDULER_EDF
@@ -3359,19 +3355,11 @@
 
 DESCRIPTION:
-    The Earliest Deadline First Scheduler (EDF) is an alternative scheduler in
-    RTEMS for uniprocessor applications. The EDF schedules tasks with dynamic
-    priorities equal to deadlines. The deadlines are declared using only Rate
-    Monotonic manager which handles periodic behavior.  Period is always equal
-    to deadline. If a task does not have any deadline declared or the deadline
-    is cancelled, the task is considered a background task which is scheduled
-    in case no deadline-driven tasks are ready to run.  Moreover, multiple
-    background tasks are scheduled according their priority assigned upon
-    initialization. All ready tasks reside in a single ready queue.
-
-    This scheduler may be explicitly selected by defining
-    ``CONFIGURE_SCHEDULER_EDF``.
-
-NOTES:
-    None.
+    If defined, then the :ref:`Earliest Deadline First (EDF) Scheduler
+    <SchedulerEDF>` algorithm is made available to the application.
+
+NOTES:
+    In case no explicit :ref:`clustered scheduler configuration
+    <ConfigurationSchedulersClustered>` is present, then it is used as the
+    scheduler for exactly one processor.
 
 .. index:: CONFIGURE_SCHEDULER_EDF_SMP
@@ -3395,9 +3383,18 @@
 
 DESCRIPTION:
-    If defined, then the Earliest Deadline First (EDF) SMP Scheduler is
-    selected as the default scheduler.
-
-NOTES:
-    None.
+    If defined, then the :ref:`Earliest Deadline First (EDF) SMP Scheduler
+    <SchedulerSMPEDF>` algorithm is made available to the application.
+
+NOTES:
+    This scheduler algorithm is only available when RTEMS is built with SMP
+    support enabled.
+
+    In case no explicit :ref:`clustered scheduler configuration
+    <ConfigurationSchedulersClustered>` is present, then it is used as the
+    scheduler for up to 32 processors.
+
+    This scheduler algorithm is the default in SMP configurations and is only
+    selected when :ref:`CONFIGURE_MAXIMUM_PROCESSORS
+    <CONFIGURE_MAXIMUM_PROCESSORS>` is greater than one.
 
 .. index:: CONFIGURE_SCHEDULER_NAME
@@ -3457,14 +3454,47 @@
 
 DESCRIPTION:
-    The Deterministic Priority Scheduler is the default scheduler in RTEMS for
-    uniprocessor 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.
-
-NOTES:
-    This scheduler may be explicitly selected by defining
-    ``CONFIGURE_SCHEDULER_PRIORITY`` although this is equivalent to the default
-    behavior.
+    If defined, then the :ref:`Deterministic Priority Scheduler
+    <SchedulerPriority>` algorithm is made available to the application.
+
+NOTES:
+    In case no explicit :ref:`clustered scheduler configuration
+    <ConfigurationSchedulersClustered>` is present, then it is used as the
+    scheduler for exactly one processor.
+
+    This scheduler algorithm is the default when
+    :ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>` is
+    exactly one.
+
+.. index:: CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP
+
+.. _CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP:
+
+CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP
+-----------------------------------------
+
+CONSTANT:
+    ``CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP``
+
+DATA TYPE:
+    Boolean feature macro.
+
+RANGE:
+    Defined or undefined.
+
+DEFAULT VALUE:
+    This is not defined by default.
+
+DESCRIPTION:
+    If defined, then the :ref:`Arbitrary Processor Affinity SMP Scheduler
+    <SchedulerSMPPriorityAffinity>` algorithm is made available to the
+    application.
+
+NOTES:
+    This scheduler algorithm is only available when RTEMS is built with SMP
+    support enabled.
+
+    In case no explicit :ref:`clustered scheduler configuration
+    <ConfigurationSchedulersClustered>` is present, then it is used as the
+    scheduler for up to 32 processors.
 
 .. index:: CONFIGURE_SCHEDULER_PRIORITY_SMP
@@ -3488,17 +3518,14 @@
 
 DESCRIPTION:
-    The Deterministic Priority SMP Scheduler is derived from the Deterministic
-    Priority Scheduler but is capable of scheduling threads across multiple
-    processors.
-
-    In a configuration with SMP enabled at configure time, it may be explicitly
-    selected by defining ``CONFIGURE_SCHEDULER_PRIORITY_SMP``.
-
-NOTES:
-    This scheduler is only available when RTEMS is configured with SMP support
-    enabled.
-
-    This scheduler is currently the default in SMP configurations and is only
-    selected when ``CONFIGURE_MAXIMUM_PROCESSORS`` is greater than one.
+    If defined, then the :ref:`Deterministic Priority SMP Scheduler
+    <SchedulerSMPPriority>` algorithm is made available to the application.
+
+NOTES:
+    This scheduler algorithm is only available when RTEMS is built with SMP
+    support enabled.
+
+    In case no explicit :ref:`clustered scheduler configuration
+    <ConfigurationSchedulersClustered>` is present, then it is used as the
+    scheduler for up to 32 processors.
 
 .. index:: CONFIGURE_SCHEDULER_SIMPLE
@@ -3522,17 +3549,11 @@
 
 DESCRIPTION:
-    When defined, the Simple Priority Scheduler is used at the thread
-    scheduling algorithm. This is an alternative scheduler in RTEMS.  It is
-    designed to provide the same task scheduling behaviour as the Deterministic
-    Priority Scheduler while being simpler in implementation and uses less
-    memory for data management.  It maintains a single sorted list of all ready
-    threads.  Thus blocking or unblocking a thread is not a constant time
-    operation with this scheduler.
-
-    This scheduler may be explicitly selected by defining
-    ``CONFIGURE_SCHEDULER_SIMPLE``.
-
-NOTES:
-    This scheduler is appropriate for use in small systems where RAM is limited.
+    If defined, then the :ref:`Simple Priority Scheduler
+    <SchedulerPrioritySimple>` algorithm is made available to the application.
+
+NOTES:
+    In case no explicit :ref:`clustered scheduler configuration
+    <ConfigurationSchedulersClustered>` is present, then it is used as the
+    scheduler for exactly one processor.
 
 .. index:: CONFIGURE_SCHEDULER_SIMPLE_SMP
@@ -3556,23 +3577,15 @@
 
 DESCRIPTION:
-    The Simple SMP Priority Scheduler is derived from the Simple Priority
-    Scheduler but is capable of scheduling threads across multiple processors.
-    It is designed to provide the same task scheduling behaviour as the
-    Deterministic Priority Scheduler while distributing threads across multiple
-    processors.  Being based upon the Simple Priority Scheduler, it 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 processors, 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.
-
-    In a configuration with SMP enabled at configure time, it may be explicitly
-    selected by defining ``CONFIGURE_SCHEDULER_SIMPLE_SMP``.
-
-NOTES:
-    This scheduler is only available when RTEMS is configured with SMP support
-    enabled.
+    If defined, then the :ref:`Simple Priority SMP Scheduler
+    <SchedulerSMPPrioritySimple>` algorithm is made available to the
+    application.
+
+NOTES:
+    This scheduler algorithm is only available when RTEMS is built with SMP
+    support enabled.
+
+    In case no explicit :ref:`clustered scheduler configuration
+    <ConfigurationSchedulersClustered>` is present, then it is used as the
+    scheduler for up to 32 processors.
 
 .. index:: CONFIGURE_SCHEDULER_USER
@@ -3636,7 +3649,8 @@
 owned by exactly one scheduler instance.
 
-A clustered scheduler configuration is optional.  By default, all processors are
-managed by the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`.  In order to use
-clustered scheduling the application designer has to answer two questions.
+A clustered scheduler configuration is optional.  By default, up to 32
+processors are managed by the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`.  In
+order to use clustered scheduling the application designer has to answer two
+questions.
 
 #. How is the set of processors partitioned into clusters?
@@ -3652,11 +3666,11 @@
 with the following defines
 
-- ``CONFIGURE_SCHEDULER_EDF_SMP``,
-
-- ``CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP``,
-
-- ``CONFIGURE_SCHEDULER_PRIORITY_SMP``, and
-
-- ``CONFIGURE_SCHEDULER_SIMPLE_SMP``.
+- :ref:`CONFIGURE_SCHEDULER_EDF_SMP <CONFIGURE_SCHEDULER_EDF_SMP>`,
+
+- :ref:`CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP <CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP>`,
+
+- :ref:`CONFIGURE_SCHEDULER_PRIORITY_SMP <CONFIGURE_SCHEDULER_PRIORITY_SMP>`, and
+
+- :ref:`CONFIGURE_SCHEDULER_SIMPLE_SMP <CONFIGURE_SCHEDULER_SIMPLE_SMP>`.
 
 This is necessary to calculate the per-thread overhead introduced by the
