[rtems-central commit] spec: Clarify scheduler configuration

Sebastian Huber sebh at rtems.org
Tue May 9 13:45:27 UTC 2023


Module:    rtems-central
Branch:    master
Commit:    616271ea455ef6f67e7ade140fd8c81668d504d7
Changeset: http://git.rtems.org/rtems-central/commit/?id=616271ea455ef6f67e7ade140fd8c81668d504d7

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri May  5 14:41:20 2023 +0200

spec: Clarify scheduler configuration

---

 spec/acfg/if/scheduler-assign-no-scheduler.yml        |  2 +-
 spec/acfg/if/scheduler-assign-processor-mandatory.yml |  2 +-
 spec/acfg/if/scheduler-assign-processor-optional.yml  |  2 +-
 spec/acfg/if/scheduler-assign.yml                     |  2 +-
 spec/acfg/if/scheduler-control-edf-smp.yml            | 14 ++++++++++++++
 spec/acfg/if/scheduler-control-priority.yml           | 14 ++++++++++++++
 spec/acfg/req/scheduler-control-edf-smp.yml           | 18 ++++++++++++++++++
 spec/acfg/req/scheduler-control-priority.yml          | 18 ++++++++++++++++++
 spec/acfg/val/scheduler-table-entries-one-cpu.yml     |  2 ++
 spec/rtems/scheduler/val/smp-only.yml                 | 17 ++++++++++++++---
 10 files changed, 84 insertions(+), 7 deletions(-)

diff --git a/spec/acfg/if/scheduler-assign-no-scheduler.yml b/spec/acfg/if/scheduler-assign-no-scheduler.yml
index bf169fd6..9f32984f 100644
--- a/spec/acfg/if/scheduler-assign-no-scheduler.yml
+++ b/spec/acfg/if/scheduler-assign-no-scheduler.yml
@@ -1,7 +1,7 @@
 SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
+enabled-by: RTEMS_SMP
 index-entries: []
 interface-type: unspecified-define
 links:
diff --git a/spec/acfg/if/scheduler-assign-processor-mandatory.yml b/spec/acfg/if/scheduler-assign-processor-mandatory.yml
index 3cf53fe0..25d64954 100644
--- a/spec/acfg/if/scheduler-assign-processor-mandatory.yml
+++ b/spec/acfg/if/scheduler-assign-processor-mandatory.yml
@@ -1,7 +1,7 @@
 SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
+enabled-by: RTEMS_SMP
 index-entries: []
 interface-type: unspecified-define
 links:
diff --git a/spec/acfg/if/scheduler-assign-processor-optional.yml b/spec/acfg/if/scheduler-assign-processor-optional.yml
index 2bcb89f1..67a80bdb 100644
--- a/spec/acfg/if/scheduler-assign-processor-optional.yml
+++ b/spec/acfg/if/scheduler-assign-processor-optional.yml
@@ -1,7 +1,7 @@
 SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
+enabled-by: RTEMS_SMP
 index-entries: []
 interface-type: unspecified-define
 links:
diff --git a/spec/acfg/if/scheduler-assign.yml b/spec/acfg/if/scheduler-assign.yml
index 184370e9..01b98ad3 100644
--- a/spec/acfg/if/scheduler-assign.yml
+++ b/spec/acfg/if/scheduler-assign.yml
@@ -1,7 +1,7 @@
 SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
+enabled-by: RTEMS_SMP
 index-entries: []
 interface-type: unspecified-macro
 links:
diff --git a/spec/acfg/if/scheduler-control-edf-smp.yml b/spec/acfg/if/scheduler-control-edf-smp.yml
new file mode 100644
index 00000000..3fae05ed
--- /dev/null
+++ b/spec/acfg/if/scheduler-control-edf-smp.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: RTEMS_SMP
+index-entries: []
+interface-type: unspecified-macro
+links:
+- role: interface-placement
+  uid: header-scheduler
+- role: interface-ingroup
+  uid: group-schedgeneral
+name: RTEMS_SCHEDULER_EDF_SMP
+references: []
+type: interface
diff --git a/spec/acfg/if/scheduler-control-priority.yml b/spec/acfg/if/scheduler-control-priority.yml
new file mode 100644
index 00000000..335dc87f
--- /dev/null
+++ b/spec/acfg/if/scheduler-control-priority.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-macro
+links:
+- role: interface-placement
+  uid: header-scheduler
+- role: interface-ingroup
+  uid: group-schedgeneral
+name: RTEMS_SCHEDULER_PRIORITY
+references: []
+type: interface
diff --git a/spec/acfg/req/scheduler-control-edf-smp.yml b/spec/acfg/req/scheduler-control-edf-smp.yml
new file mode 100644
index 00000000..57f79bcc
--- /dev/null
+++ b/spec/acfg/req/scheduler-control-edf-smp.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: RTEMS_SMP
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/scheduler-control-edf-smp
+- role: requirement-refinement
+  uid: group
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/scheduler-control-edf-smp:/name} macro shall define a scheduler
+  control data structure for the ${/doc/if/scheduler-smp-edf:/name} scheduler
+  with the specified name.
+type: requirement
diff --git a/spec/acfg/req/scheduler-control-priority.yml b/spec/acfg/req/scheduler-control-priority.yml
new file mode 100644
index 00000000..f4902eef
--- /dev/null
+++ b/spec/acfg/req/scheduler-control-priority.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+  uid: ../if/scheduler-control-priority
+- role: requirement-refinement
+  uid: group
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/scheduler-control-priority:/name} macro shall define a scheduler
+  control data structure for the ${/doc/if/scheduler-priority:/name} scheduler
+  with the specified name and priority count.
+type: requirement
diff --git a/spec/acfg/val/scheduler-table-entries-one-cpu.yml b/spec/acfg/val/scheduler-table-entries-one-cpu.yml
index 2286fe52..a2996782 100644
--- a/spec/acfg/val/scheduler-table-entries-one-cpu.yml
+++ b/spec/acfg/val/scheduler-table-entries-one-cpu.yml
@@ -18,6 +18,8 @@ test-actions:
     links:
     - role: validation
       uid: ../req/scheduler-table-entries
+    - role: validation
+      uid: ../req/scheduler-control-priority
   links: []
 test-brief: |
   Tests the effect of ${/acfg/if/scheduler-table-entries:/name} the application
diff --git a/spec/rtems/scheduler/val/smp-only.yml b/spec/rtems/scheduler/val/smp-only.yml
index 25a7eb87..7535f5fa 100644
--- a/spec/rtems/scheduler/val/smp-only.yml
+++ b/spec/rtems/scheduler/val/smp-only.yml
@@ -66,9 +66,10 @@ test-actions:
 - action-brief: |
     Call ${../if/ident:/name} for each configured scheduler.
   action-code: |
-    rtems_status_code sc;
-    rtems_id          id[ 4 ];
-    rtems_id          id_by_cpu;
+    rtems_status_code   sc;
+    rtems_id            id[ 4 ];
+    rtems_id            id_by_cpu;
+    rtems_task_priority priority;
 
     sc = rtems_scheduler_ident( TEST_SCHEDULER_A_NAME, &id[ 0 ]);
     T_step_rsc_success( ${.:/step}, sc );
@@ -120,6 +121,15 @@ test-actions:
     links:
     - role: validation
       uid: /acfg/req/scheduler-assign-scheduler
+  - brief: |
+      Check that scheduler B has the maximum priority of the EDF SMP scheduler.
+    code: |
+      sc = rtems_scheduler_get_maximum_priority( id_by_cpu, &priority );
+      T_step_rsc_success( ${.:/step}, sc );
+      T_step_eq_u32( ${.:/step}, priority, (uint32_t) INT_MAX );
+    links:
+    - role: validation
+      uid: /acfg/req/scheduler-control-edf-smp
   - brief: |
       Check that processor 2 has scheduler C assigned if it is present.
     code: |
@@ -147,6 +157,7 @@ test-context-support: null
 test-description: null
 test-header: null
 test-includes:
+- limits.h
 - rtems.h
 test-local-includes:
 - ts-config.h



More information about the vc mailing list