[PATCH] c-user: Clarify CONFIGURE_MAXIMUM_PRIORITY
Sebastian Huber
sebastian.huber at embedded-brains.de
Wed Feb 19 13:04:26 UTC 2020
Update #3875.
---
c-user/configuring_a_system.rst | 43 ++++++++++++++++++++++++++++++-----------
1 file changed, 32 insertions(+), 11 deletions(-)
diff --git a/c-user/configuring_a_system.rst b/c-user/configuring_a_system.rst
index d6d9411..5deabd7 100644
--- a/c-user/configuring_a_system.rst
+++ b/c-user/configuring_a_system.rst
@@ -618,12 +618,22 @@ DEFAULT VALUE:
to 255.
DESCRIPTION:
- This configuration parameter specified the maximum numeric priority of any
- task in the system and one less that the number of priority levels in the
- system.
+ For the schedulers
- Reducing the number of priorities in the system reduces the amount of memory
- allocated from the RTEMS Workspace.
+ * :ref:`SchedulerPriority`, which is the default in uniprocessor
+ configurations and can be configured through the
+ :ref:`CONFIGURE_SCHEDULER_PRIORITY` configuration option,
+
+ * :ref:`SchedulerSMPPriority` which can be configured through the
+ :ref:`CONFIGURE_SCHEDULER_PRIORITY_SMP` configuration option, and
+
+ * :ref:`SchedulerSMPPriorityAffinity` which can be configured through the
+ :ref:`CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP` configuration option
+
+ this configuration option specifies the maximum numeric priority of any task
+ for these schedulers and one less that the number of priority levels for
+ these schedulers. For all other schedulers provided by RTEMS, this
+ configuration option has no effect.
NOTES:
The numerically greatest priority is the logically lowest priority in the
@@ -632,11 +642,13 @@ NOTES:
Priority zero (0) is reserved for internal use by RTEMS and is not available
to applications.
- With some schedulers, reducing the number of priorities can reduce the
- amount of memory used by the scheduler. For example, the Deterministic
- Priority Scheduler (DPS) used by default uses three pointers of storage per
- priority level. Reducing the number of priorities from 256 levels to
- sixteen (16) can reduce memory usage by about three (3) kilobytes.
+ Reducing the number of priorities through this configuration option reduces
+ the amount of memory allocated by the schedulers listed above. These
+ schedulers use a chain control structure per priority and this structure
+ consists of three pointers. On a 32-bit architecture, the allocated memory
+ is 12 bytes * (``CONFIGURE_MAXIMUM_PRIORITY`` + 1), e.g. 3072 bytes for 256
+ priority levels (default), 48 bytes for 4 priority levels
+ (``CONFIGURE_MAXIMUM_PRIORITY == 3``).
.. index:: CONFIGURE_MAXIMUM_PROCESSORS
@@ -1471,7 +1483,7 @@ DATA TYPE:
RTEMS Task Priority (``rtems_task_priority``).
RANGE:
- One (1) to CONFIGURE_MAXIMUM_PRIORITY.
+ One (1) to the maximum user priority value of the scheduler.
DEFAULT VALUE:
The default value is 1, which is the highest priority in the Classic API.
@@ -3485,6 +3497,9 @@ NOTES:
: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:
@@ -3520,6 +3535,9 @@ NOTES:
<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:
@@ -3554,6 +3572,9 @@ NOTES:
<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:
--
2.16.4
More information about the devel
mailing list