summaryrefslogtreecommitdiffstats
path: root/c-user/config/index.rst
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-09 08:54:45 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-12 10:20:34 +0100
commit275f4a049c2f21dd3aab33201c4b76a5ece1ed6d (patch)
treead840c37dc038febd21f1ec27c0a0422569f49f1 /c-user/config/index.rst
parentc-user: Move "Idle Task Configuration" (diff)
downloadrtems-docs-275f4a049c2f21dd3aab33201c4b76a5ece1ed6d.tar.bz2
c-user: Move "General Scheduler Configuration"
Update #3836.
Diffstat (limited to 'c-user/config/index.rst')
-rw-r--r--c-user/config/index.rst387
1 files changed, 1 insertions, 386 deletions
diff --git a/c-user/config/index.rst b/c-user/config/index.rst
index 912d8b3..1afc3ed 100644
--- a/c-user/config/index.rst
+++ b/c-user/config/index.rst
@@ -1,6 +1,5 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2010 Gedare Bloom
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
.. index:: configuring a system
@@ -23,391 +22,7 @@ Configuring a System
bdbuf
bsp-related
idle-task
-
-General Scheduler Configuration
-===============================
-
-This section defines the configuration parameters related to selecting a
-scheduling algorithm for an application. A scheduler configuration is optional
-and only necessary in very specific circumstances. A normal application
-configuration does not need any of the configuration options described in this
-section. By default, the :ref:`Deterministic Priority Scheduler
-<SchedulerPriority>` algorithm is used in uniprocessor configurations. In case
-SMP is enabled and the configured maximum processors
-(:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`) is greater
-than one, then the :ref:`Earliest Deadline First (EDF) SMP Scheduler
-<SchedulerSMPEDF>` is selected as the default scheduler algorithm.
-
-For the :ref:`schedulers built into
-RTEMS <SchedulingConcepts>`, the configuration is straightforward. All that is
-required is to define the configuration macro which specifies which scheduler
-you want for in your application.
-
-The pluggable scheduler interface also enables the user to provide their own
-scheduling algorithm. If you choose to do this, you must define multiple
-configuration macros.
-
-.. index:: CONFIGURE_SCHEDULER_CBS
-
-.. _CONFIGURE_SCHEDULER_CBS:
-
-CONFIGURE_SCHEDULER_CBS
------------------------
-
-CONSTANT:
- ``CONFIGURE_SCHEDULER_CBS``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- If defined, then the :ref:`Constant Bandwidth Server (CBS) Scheduler
- <SchedulerCBS>` algorithm is made available to the application.
-
-NOTES:
- This scheduler configuration option is an advanced configuration option.
- Think twice before you use it.
-
- 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
-
-.. _CONFIGURE_SCHEDULER_EDF:
-
-CONFIGURE_SCHEDULER_EDF
------------------------
-
-CONSTANT:
- ``CONFIGURE_SCHEDULER_EDF``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- If defined, then the :ref:`Earliest Deadline First (EDF) Scheduler
- <SchedulerEDF>` algorithm is made available to the application.
-
-NOTES:
- This scheduler configuration option is an advanced configuration option.
- Think twice before you use it.
-
- 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
-
-.. _CONFIGURE_SCHEDULER_EDF_SMP:
-
-CONFIGURE_SCHEDULER_EDF_SMP
----------------------------
-
-CONSTANT:
- ``CONFIGURE_SCHEDULER_EDF_SMP``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- If defined, then the :ref:`Earliest Deadline First (EDF) SMP Scheduler
- <SchedulerSMPEDF>` algorithm is made available to the application.
-
-NOTES:
- This scheduler configuration option is an advanced configuration option.
- Think twice before you use it.
-
- 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 if
- :ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>` is
- greater than one.
-
-.. index:: CONFIGURE_SCHEDULER_NAME
-
-.. _CONFIGURE_SCHEDULER_NAME:
-
-CONFIGURE_SCHEDULER_NAME
-------------------------
-
-CONSTANT:
- ``CONFIGURE_SCHEDULER_NAME``
-
-DATA TYPE:
- RTEMS Name (``rtems_name``).
-
-RANGE:
- Any value.
-
-DEFAULT VALUE:
- The default name is
-
- - ``"MEDF"`` for the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`,
- - ``"MPA "`` for the :ref:`Arbitrary Processor Affinity Priority SMP Scheduler <SchedulerSMPPriorityAffinity>`,
- - ``"MPD "`` for the :ref:`Deterministic Priority SMP Scheduler <SchedulerSMPPriority>`,
- - ``"MPS "`` for the :ref:`Simple Priority SMP Scheduler <SchedulerSMPPrioritySimple>`,
- - ``"UCBS"`` for the :ref:`Uniprocessor CBS Scheduler <SchedulerCBS>`,
- - ``"UEDF"`` for the :ref:`Uniprocessor EDF Scheduler <SchedulerEDF>`,
- - ``"UPD "`` for the :ref:`Uniprocessor Deterministic Priority Scheduler <SchedulerPriority>`, and
- - ``"UPS "`` for the :ref:`Uniprocessor Simple Priority Scheduler <SchedulerPrioritySimple>`.
-
-DESCRIPTION:
- Schedulers can be identified via ``rtems_scheduler_ident``. The name of
- the scheduler is determined by the configuration.
-
-NOTES:
- This scheduler configuration option is an advanced configuration option.
- Think twice before you use it.
-
-.. index:: CONFIGURE_SCHEDULER_PRIORITY
-
-.. _CONFIGURE_SCHEDULER_PRIORITY:
-
-CONFIGURE_SCHEDULER_PRIORITY
-----------------------------
-
-CONSTANT:
- ``CONFIGURE_SCHEDULER_PRIORITY``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is defined by default. This is the default scheduler and specifying
- this configuration parameter is redundant.
-
-DESCRIPTION:
- If defined, then the :ref:`Deterministic Priority Scheduler
- <SchedulerPriority>` algorithm is made available to the application.
-
-NOTES:
- This scheduler configuration option is an advanced configuration option.
- Think twice before you use it.
-
- 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.
-
- The memory allocated for this scheduler depends on the
- :ref:`CONFIGURE_MAXIMUM_PRIORITY` configuration option.
-
-.. 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 configuration option is an advanced configuration option.
- Think twice before you use it.
-
- 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.
-
- The memory allocated for this scheduler depends on the
- :ref:`CONFIGURE_MAXIMUM_PRIORITY` configuration option.
-
-.. index:: CONFIGURE_SCHEDULER_PRIORITY_SMP
-
-.. _CONFIGURE_SCHEDULER_PRIORITY_SMP:
-
-CONFIGURE_SCHEDULER_PRIORITY_SMP
---------------------------------
-
-CONSTANT:
- ``CONFIGURE_SCHEDULER_PRIORITY_SMP``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- If defined, then the :ref:`Deterministic Priority SMP Scheduler
- <SchedulerSMPPriority>` algorithm is made available to the application.
-
-NOTES:
- This scheduler configuration option is an advanced configuration option.
- Think twice before you use it.
-
- 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.
-
- The memory allocated for this scheduler depends on the
- :ref:`CONFIGURE_MAXIMUM_PRIORITY` configuration option.
-
-.. index:: CONFIGURE_SCHEDULER_SIMPLE
-
-.. _CONFIGURE_SCHEDULER_SIMPLE:
-
-CONFIGURE_SCHEDULER_SIMPLE
---------------------------
-
-CONSTANT:
- ``CONFIGURE_SCHEDULER_SIMPLE``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- If defined, then the :ref:`Simple Priority Scheduler
- <SchedulerPrioritySimple>` algorithm is made available to the application.
-
-NOTES:
- This scheduler configuration option is an advanced configuration option.
- Think twice before you use it.
-
- 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
-
-.. _CONFIGURE_SCHEDULER_SIMPLE_SMP:
-
-CONFIGURE_SCHEDULER_SIMPLE_SMP
-------------------------------
-
-CONSTANT:
- ``CONFIGURE_SCHEDULER_SIMPLE_SMP``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- If defined, then the :ref:`Simple Priority SMP Scheduler
- <SchedulerSMPPrioritySimple>` algorithm is made available to the
- application.
-
-NOTES:
- This scheduler configuration option is an advanced configuration option.
- Think twice before you use it.
-
- 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
-
-.. _CONFIGURE_SCHEDULER_USER:
-
-CONFIGURE_SCHEDULER_USER
-------------------------
-
-CONSTANT:
- ``CONFIGURE_SCHEDULER_USER``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- RTEMS allows the application to provide its own task/thread scheduling
- algorithm. In order to do this, one must define
- ``CONFIGURE_SCHEDULER_USER`` to indicate the application provides its own
- scheduling algorithm. If ``CONFIGURE_SCHEDULER_USER`` is defined then the
- following additional macros must be defined:
-
- - ``CONFIGURE_SCHEDULER`` must be defined to a static definition of
- the scheduler data structures of the user scheduler.
-
- - ``CONFIGURE_SCHEDULER_TABLE_ENTRIES`` must be defined to a scheduler
- table entry initializer for the user scheduler.
-
- - ``CONFIGURE_SCHEDULER_USER_PER_THREAD`` must be defined to the type of
- the per-thread information of the user scheduler.
-
-NOTES:
- This scheduler configuration option is an advanced configuration option.
- Think twice before you use it.
-
- At this time, the mechanics and requirements for writing a new scheduler
- are evolving and not fully documented. It is recommended that you look at
- the existing Deterministic Priority Scheduler in
- ``cpukit/score/src/schedulerpriority*.c`` for guidance. For guidance on
- the configuration macros, please examine ``cpukit/sapi/include/confdefs.h``
- for how these are defined for the Deterministic Priority Scheduler.
+ scheduler-general
.. _ConfigurationSchedulersClustered: