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 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel