summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-06 13:52:29 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-10 09:51:00 +0100
commite9d9a6ac52f5afd20ae4ff024fea0e6b1de45467 (patch)
treed2ee9358759bbccc0be663300d08937c88e9b03e
parentgenerate_membench.py: New script (diff)
downloadrtems-central-e9d9a6ac52f5afd20ae4ff024fea0e6b1de45467.tar.bz2
spec: Add memory benchmarks
-rw-r--r--config.yml2
-rw-r--r--spec-glossary/glossary/feature.yml13
-rw-r--r--spec/dev/clock/req/mem-driver.yml16
-rw-r--r--spec/dev/clock/val/mem-driver.yml53
-rw-r--r--spec/req/mem-benchmark.yml15
-rw-r--r--spec/rtems/barrier/req/mem-wait-rel-del.yml17
-rw-r--r--spec/rtems/barrier/req/mem-wait-rel.yml17
-rw-r--r--spec/rtems/barrier/val/mem-wait-rel-del.yml59
-rw-r--r--spec/rtems/barrier/val/mem-wait-rel.yml57
-rw-r--r--spec/rtems/event/req/mem-snd-rcv.yml16
-rw-r--r--spec/rtems/event/val/mem-snd-rcv.yml53
-rw-r--r--spec/rtems/fatal/req/mem-fatal.yml15
-rw-r--r--spec/rtems/fatal/val/mem-fatal.yml52
-rw-r--r--spec/rtems/part/req/mem-get-ret-del.yml17
-rw-r--r--spec/rtems/part/req/mem-get-ret.yml17
-rw-r--r--spec/rtems/part/val/mem-get-ret-del.yml59
-rw-r--r--spec/rtems/part/val/mem-get-ret.yml58
-rw-r--r--spec/rtems/ratemon/req/mem-period-del.yml17
-rw-r--r--spec/rtems/ratemon/req/mem-period.yml16
-rw-r--r--spec/rtems/ratemon/val/mem-period-del.yml57
-rw-r--r--spec/rtems/ratemon/val/mem-period.yml56
-rw-r--r--spec/rtems/req/mem-basic.yml15
-rw-r--r--spec/rtems/req/mem-smp-1.yml17
-rw-r--r--spec/rtems/req/mem-smp-global-2.yml17
-rw-r--r--spec/rtems/req/mem-smp-global-4.yml17
-rw-r--r--spec/rtems/req/mem-smp-part-2.yml17
-rw-r--r--spec/rtems/req/mem-smp-part-4.yml17
-rw-r--r--spec/rtems/sem/req/mem-obt-rel-del.yml17
-rw-r--r--spec/rtems/sem/req/mem-obt-rel.yml17
-rw-r--r--spec/rtems/sem/val/mem-obt-rel-del.yml59
-rw-r--r--spec/rtems/sem/val/mem-obt-rel.yml57
-rw-r--r--spec/rtems/signal/req/mem-catch-snd.yml16
-rw-r--r--spec/rtems/signal/val/mem-catch-snd.yml53
-rw-r--r--spec/rtems/task/req/mem-del.yml15
-rw-r--r--spec/rtems/task/req/mem-exit.yml15
-rw-r--r--spec/rtems/task/req/mem-restart.yml15
-rw-r--r--spec/rtems/task/req/mem-sus-res.yml16
-rw-r--r--spec/rtems/task/val/mem-del.yml53
-rw-r--r--spec/rtems/task/val/mem-exit.yml53
-rw-r--r--spec/rtems/task/val/mem-restart.yml53
-rw-r--r--spec/rtems/task/val/mem-sus-res.yml54
-rw-r--r--spec/rtems/val/mem-basic.yml54
-rw-r--r--spec/rtems/val/mem-smp-1.yml59
-rw-r--r--spec/rtems/val/mem-smp-global-2.yml59
-rw-r--r--spec/rtems/val/mem-smp-global-4.yml59
-rw-r--r--spec/rtems/val/mem-smp-part-2.yml76
-rw-r--r--spec/rtems/val/mem-smp-part-4.yml84
47 files changed, 1666 insertions, 0 deletions
diff --git a/config.yml b/config.yml
index f15a665c..c2bfd1e6 100644
--- a/config.yml
+++ b/config.yml
@@ -7,6 +7,7 @@ build:
RTEMS_QUAL = True
RTEMS_QUAL_ONLY = True
BUILD_TESTS = False
+ BUILD_MEMBENCH = True
BUILD_VALIDATIONTESTS = True
doxyfile-template: templates/Doxyfile
enabled:
@@ -44,6 +45,7 @@ build:
uids:
- /build/cpukit/librtemscpu
- /build/cpukit/librtemstest
+ - /build/testsuites/membench/grp
- /build/testsuites/validation/grp
workspace-directory: workspace/rtems
spec:
diff --git a/spec-glossary/glossary/feature.yml b/spec-glossary/glossary/feature.yml
new file mode 100644
index 00000000..33232062
--- /dev/null
+++ b/spec-glossary/glossary/feature.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: ../glossary-general
+term: feature
+text: |
+ A feature is a collection of interfaces together with their implementation
+ provided by the system.
+type: glossary
diff --git a/spec/dev/clock/req/mem-driver.yml b/spec/dev/clock/req/mem-driver.yml
new file mode 100644
index 00000000..f185da49
--- /dev/null
+++ b/spec/dev/clock/req/mem-driver.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: /rtems/req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of "a basic application configuration with the clock driver enabled
+ (${/acfg/if/appl-needs-clock-driver:/name}).
+type: requirement
diff --git a/spec/dev/clock/val/mem-driver.yml b/spec/dev/clock/val/mem-driver.yml
new file mode 100644
index 00000000..a125d1a8
--- /dev/null
+++ b/spec/dev/clock/val/mem-driver.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-driver
+test-brief: |
+ This static memory usage benchmark program facilitates "a basic application
+ configuration with the clock driver enabled
+ (${/acfg/if/appl-needs-clock-driver:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-clock-driver.c
+type: test-suite
diff --git a/spec/req/mem-benchmark.yml b/spec/req/mem-benchmark.yml
new file mode 100644
index 00000000..f38c400c
--- /dev/null
+++ b/spec/req/mem-benchmark.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: root
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide benchmark programs to show the static memory usage
+ of ${/glossary/feature:/plural}.
+type: requirement
diff --git a/spec/rtems/barrier/req/mem-wait-rel-del.yml b/spec/rtems/barrier/req/mem-wait-rel-del.yml
new file mode 100644
index 00000000..4db9861a
--- /dev/null
+++ b/spec/rtems/barrier/req/mem-wait-rel-del.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-barriers:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/wait:/name},
+ ${../if/release:/name}, and ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/barrier/req/mem-wait-rel.yml b/spec/rtems/barrier/req/mem-wait-rel.yml
new file mode 100644
index 00000000..89fdf5be
--- /dev/null
+++ b/spec/rtems/barrier/req/mem-wait-rel.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-barriers:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/wait:/name}, and
+ ${../if/release:/name}.
+type: requirement
diff --git a/spec/rtems/barrier/val/mem-wait-rel-del.yml b/spec/rtems/barrier/val/mem-wait-rel-del.yml
new file mode 100644
index 00000000..9adcc49f
--- /dev/null
+++ b/spec/rtems/barrier/val/mem-wait-rel-del.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-wait-rel-del
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-barriers:/name} defined to one and calls to
+ ${../if/create:/name}, ${../if/wait:/name}, ${../if/release:/name}, and
+ ${../if/delete:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_barrier_create( 0, 0, 0, NULL );
+ (void) rtems_barrier_wait( 0, 0 );
+ (void) rtems_barrier_release( 0, NULL );
+ (void) rtems_barrier_delete( 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_BARRIERS 1
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-barrier-wait-rel-del.c
+type: test-suite
diff --git a/spec/rtems/barrier/val/mem-wait-rel.yml b/spec/rtems/barrier/val/mem-wait-rel.yml
new file mode 100644
index 00000000..f7c54c15
--- /dev/null
+++ b/spec/rtems/barrier/val/mem-wait-rel.yml
@@ -0,0 +1,57 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-wait-rel
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-barriers:/name} defined to one and calls to
+ ${../if/create:/name}, ${../if/wait:/name}, and ${../if/release:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_barrier_create( 0, 0, 0, NULL );
+ (void) rtems_barrier_wait( 0, 0 );
+ (void) rtems_barrier_release( 0, NULL );
+ }
+
+ #define CONFIGURE_MAXIMUM_BARRIERS 1
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-barrier-wait-rel.c
+type: test-suite
diff --git a/spec/rtems/event/req/mem-snd-rcv.yml b/spec/rtems/event/req/mem-snd-rcv.yml
new file mode 100644
index 00000000..46939338
--- /dev/null
+++ b/spec/rtems/event/req/mem-snd-rcv.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with calls to ${../if/send:/name} and
+ ${../if/receive:/name}.
+type: requirement
diff --git a/spec/rtems/event/val/mem-snd-rcv.yml b/spec/rtems/event/val/mem-snd-rcv.yml
new file mode 100644
index 00000000..6769000c
--- /dev/null
+++ b/spec/rtems/event/val/mem-snd-rcv.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-snd-rcv
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with calls to ${../if/send:/name} and ${../if/receive:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_event_send( 0, 0 );
+ (void) rtems_event_receive( 0, 0, 0, NULL );
+ }
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-event-snd-rcv.c
+type: test-suite
diff --git a/spec/rtems/fatal/req/mem-fatal.yml b/spec/rtems/fatal/req/mem-fatal.yml
new file mode 100644
index 00000000..3dca0890
--- /dev/null
+++ b/spec/rtems/fatal/req/mem-fatal.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with a call to ${../if/fatal:/name}.
+type: requirement
diff --git a/spec/rtems/fatal/val/mem-fatal.yml b/spec/rtems/fatal/val/mem-fatal.yml
new file mode 100644
index 00000000..44be873c
--- /dev/null
+++ b/spec/rtems/fatal/val/mem-fatal.yml
@@ -0,0 +1,52 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-fatal
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with a call to ${../if/fatal:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ rtems_fatal( 0, 0 );
+ }
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-fatal-fatal.c
+type: test-suite
diff --git a/spec/rtems/part/req/mem-get-ret-del.yml b/spec/rtems/part/req/mem-get-ret-del.yml
new file mode 100644
index 00000000..7395e062
--- /dev/null
+++ b/spec/rtems/part/req/mem-get-ret-del.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-partitions:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/get-buffer:/name},
+ ${../if/return-buffer:/name}, and ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/part/req/mem-get-ret.yml b/spec/rtems/part/req/mem-get-ret.yml
new file mode 100644
index 00000000..f84d9514
--- /dev/null
+++ b/spec/rtems/part/req/mem-get-ret.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-partitions:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/get-buffer:/name},
+ and ${../if/return-buffer:/name}.
+type: requirement
diff --git a/spec/rtems/part/val/mem-get-ret-del.yml b/spec/rtems/part/val/mem-get-ret-del.yml
new file mode 100644
index 00000000..0de17904
--- /dev/null
+++ b/spec/rtems/part/val/mem-get-ret-del.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-get-ret-del
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-partitions:/name} defined to one and calls
+ to ${../if/create:/name}, ${../if/get-buffer:/name},
+ ${../if/return-buffer:/name}, and ${../if/delete:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_partition_create( 0, NULL, 0, 0, 0, NULL );
+ (void) rtems_partition_get_buffer( 0, NULL );
+ (void) rtems_partition_return_buffer( 0, NULL );
+ (void) rtems_partition_delete( 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_PARTITIONS 1
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-part-get-ret-del.c
+type: test-suite
diff --git a/spec/rtems/part/val/mem-get-ret.yml b/spec/rtems/part/val/mem-get-ret.yml
new file mode 100644
index 00000000..d10bbdf2
--- /dev/null
+++ b/spec/rtems/part/val/mem-get-ret.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-get-ret
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-partitions:/name} defined to one and calls
+ to ${../if/create:/name}, ${../if/get-buffer:/name}, and
+ ${../if/return-buffer:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_partition_create( 0, NULL, 0, 0, 0, NULL );
+ (void) rtems_partition_get_buffer( 0, NULL );
+ (void) rtems_partition_return_buffer( 0, NULL );
+ }
+
+ #define CONFIGURE_MAXIMUM_PARTITIONS 1
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-part-get-ret.c
+type: test-suite
diff --git a/spec/rtems/ratemon/req/mem-period-del.yml b/spec/rtems/ratemon/req/mem-period-del.yml
new file mode 100644
index 00000000..5fd8c847
--- /dev/null
+++ b/spec/rtems/ratemon/req/mem-period-del.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-periods:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/period:/name}, and
+ ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/ratemon/req/mem-period.yml b/spec/rtems/ratemon/req/mem-period.yml
new file mode 100644
index 00000000..5ea9f542
--- /dev/null
+++ b/spec/rtems/ratemon/req/mem-period.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-periods:/name}
+ defined to one and calls to ${../if/create:/name} and ${../if/period:/name}.
+type: requirement
diff --git a/spec/rtems/ratemon/val/mem-period-del.yml b/spec/rtems/ratemon/val/mem-period-del.yml
new file mode 100644
index 00000000..18348cd5
--- /dev/null
+++ b/spec/rtems/ratemon/val/mem-period-del.yml
@@ -0,0 +1,57 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-period-del
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-periods:/name} defined to one and calls to
+ ${../if/create:/name}, ${../if/period:/name}, and ${../if/delete:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_rate_monotonic_create( 0, NULL );
+ (void) rtems_rate_monotonic_period( 0, 0 );
+ (void) rtems_rate_monotonic_delete( 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_PERIODS 1
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-ratemon-period-del.c
+type: test-suite
diff --git a/spec/rtems/ratemon/val/mem-period.yml b/spec/rtems/ratemon/val/mem-period.yml
new file mode 100644
index 00000000..0e960f65
--- /dev/null
+++ b/spec/rtems/ratemon/val/mem-period.yml
@@ -0,0 +1,56 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-period
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-periods:/name} defined to one and calls to
+ ${../if/create:/name} and ${../if/period:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_rate_monotonic_create( 0, NULL );
+ (void) rtems_rate_monotonic_period( 0, 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_PERIODS 1
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-ratemon-period.c
+type: test-suite
diff --git a/spec/rtems/req/mem-basic.yml b/spec/rtems/req/mem-basic.yml
new file mode 100644
index 00000000..0c2a13a2
--- /dev/null
+++ b/spec/rtems/req/mem-basic.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: /req/mem-benchmark
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration.
+type: requirement
diff --git a/spec/rtems/req/mem-smp-1.yml b/spec/rtems/req/mem-smp-1.yml
new file mode 100644
index 00000000..2a82a9ee
--- /dev/null
+++ b/spec/rtems/req/mem-smp-1.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-processors:/name}
+ defined to one using the SMP EDF scheduler
+ (${/acfg/if/scheduler-edf-smp:/name}).
+type: requirement
diff --git a/spec/rtems/req/mem-smp-global-2.yml b/spec/rtems/req/mem-smp-global-2.yml
new file mode 100644
index 00000000..3f56e572
--- /dev/null
+++ b/spec/rtems/req/mem-smp-global-2.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: mem-smp-1
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-processors:/name}
+ defined to two using the global SMP EDF scheduler
+ (${/acfg/if/scheduler-edf-smp:/name}).
+type: requirement
diff --git a/spec/rtems/req/mem-smp-global-4.yml b/spec/rtems/req/mem-smp-global-4.yml
new file mode 100644
index 00000000..d078da1d
--- /dev/null
+++ b/spec/rtems/req/mem-smp-global-4.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: mem-smp-1
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-processors:/name}
+ defined to four using the global SMP EDF scheduler
+ (${/acfg/if/scheduler-edf-smp:/name}).
+type: requirement
diff --git a/spec/rtems/req/mem-smp-part-2.yml b/spec/rtems/req/mem-smp-part-2.yml
new file mode 100644
index 00000000..9554807a
--- /dev/null
+++ b/spec/rtems/req/mem-smp-part-2.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: mem-smp-1
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-processors:/name}
+ defined to two using one SMP EDF scheduler for each configured processor
+ (${/acfg/if/scheduler-edf-smp:/name}).
+type: requirement
diff --git a/spec/rtems/req/mem-smp-part-4.yml b/spec/rtems/req/mem-smp-part-4.yml
new file mode 100644
index 00000000..ab7fe306
--- /dev/null
+++ b/spec/rtems/req/mem-smp-part-4.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: mem-smp-1
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-processors:/name}
+ defined to four using one SMP EDF scheduler for each configured processor
+ (${/acfg/if/scheduler-edf-smp:/name}).
+type: requirement
diff --git a/spec/rtems/sem/req/mem-obt-rel-del.yml b/spec/rtems/sem/req/mem-obt-rel-del.yml
new file mode 100644
index 00000000..e997aff4
--- /dev/null
+++ b/spec/rtems/sem/req/mem-obt-rel-del.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-semaphores:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/obtain:/name},
+ ${../if/release:/name}, and ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/sem/req/mem-obt-rel.yml b/spec/rtems/sem/req/mem-obt-rel.yml
new file mode 100644
index 00000000..1224b32c
--- /dev/null
+++ b/spec/rtems/sem/req/mem-obt-rel.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with ${/acfg/if/max-semaphores:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/obtain:/name}, and
+ ${../if/release:/name}.
+type: requirement
diff --git a/spec/rtems/sem/val/mem-obt-rel-del.yml b/spec/rtems/sem/val/mem-obt-rel-del.yml
new file mode 100644
index 00000000..3efc7db9
--- /dev/null
+++ b/spec/rtems/sem/val/mem-obt-rel-del.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-obt-rel-del
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-semaphores:/name} defined to one and calls
+ to ${../if/create:/name}, ${../if/obtain:/name}, ${../if/release:/name}, and
+ ${../if/delete:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_semaphore_create( 0, 0, 0, 0, NULL );
+ (void) rtems_semaphore_obtain( 0, 0, 0 );
+ (void) rtems_semaphore_release( 0 );
+ (void) rtems_semaphore_delete( 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_SEMAPHORES 1
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-sem-obt-rel-del.c
+type: test-suite
diff --git a/spec/rtems/sem/val/mem-obt-rel.yml b/spec/rtems/sem/val/mem-obt-rel.yml
new file mode 100644
index 00000000..96ec4734
--- /dev/null
+++ b/spec/rtems/sem/val/mem-obt-rel.yml
@@ -0,0 +1,57 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-obt-rel
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-semaphores:/name} defined to one and calls
+ to ${../if/create:/name}, ${../if/obtain:/name}, and ${../if/release:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_semaphore_create( 0, 0, 0, 0, NULL );
+ (void) rtems_semaphore_obtain( 0, 0, 0 );
+ (void) rtems_semaphore_release( 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_SEMAPHORES 1
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-sem-obt-rel.c
+type: test-suite
diff --git a/spec/rtems/signal/req/mem-catch-snd.yml b/spec/rtems/signal/req/mem-catch-snd.yml
new file mode 100644
index 00000000..fea454a6
--- /dev/null
+++ b/spec/rtems/signal/req/mem-catch-snd.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with calls to ${../if/catch:/name} and
+ ${../if/send:/name}.
+type: requirement
diff --git a/spec/rtems/signal/val/mem-catch-snd.yml b/spec/rtems/signal/val/mem-catch-snd.yml
new file mode 100644
index 00000000..de3beaab
--- /dev/null
+++ b/spec/rtems/signal/val/mem-catch-snd.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-catch-snd
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with calls to ${../if/catch:/name} and ${../if/send:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_signal_catch( NULL, 0 );
+ (void) rtems_signal_send( 0, 0 );
+ }
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-signal-catch-snd.c
+type: test-suite
diff --git a/spec/rtems/task/req/mem-del.yml b/spec/rtems/task/req/mem-del.yml
new file mode 100644
index 00000000..f09c2bc6
--- /dev/null
+++ b/spec/rtems/task/req/mem-del.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with a call to ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-exit.yml b/spec/rtems/task/req/mem-exit.yml
new file mode 100644
index 00000000..669c8db3
--- /dev/null
+++ b/spec/rtems/task/req/mem-exit.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with a call to ${../if/exit:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-restart.yml b/spec/rtems/task/req/mem-restart.yml
new file mode 100644
index 00000000..42c906ca
--- /dev/null
+++ b/spec/rtems/task/req/mem-restart.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with a call to ${../if/restart:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-sus-res.yml b/spec/rtems/task/req/mem-sus-res.yml
new file mode 100644
index 00000000..03f3474a
--- /dev/null
+++ b/spec/rtems/task/req/mem-sus-res.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../../req/mem-basic
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration with calls to ${../if/suspend:/name} and
+ ${../if/resume:/name}.
+type: requirement
diff --git a/spec/rtems/task/val/mem-del.yml b/spec/rtems/task/val/mem-del.yml
new file mode 100644
index 00000000..b41a7f24
--- /dev/null
+++ b/spec/rtems/task/val/mem-del.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-del
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with a call to ${../if/delete:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_task_delete( 0 );
+
+ }
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-task-del.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-exit.yml b/spec/rtems/task/val/mem-exit.yml
new file mode 100644
index 00000000..b325e78e
--- /dev/null
+++ b/spec/rtems/task/val/mem-exit.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-exit
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with a call to ${../if/exit:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ rtems_task_exit();
+
+ }
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-task-exit.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-restart.yml b/spec/rtems/task/val/mem-restart.yml
new file mode 100644
index 00000000..bc5caf56
--- /dev/null
+++ b/spec/rtems/task/val/mem-restart.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-restart
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with a call to ${../if/restart:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_task_restart( 0, 0 );
+
+ }
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-task-restart.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-sus-res.yml b/spec/rtems/task/val/mem-sus-res.yml
new file mode 100644
index 00000000..1e6803fd
--- /dev/null
+++ b/spec/rtems/task/val/mem-sus-res.yml
@@ -0,0 +1,54 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-sus-res
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with calls to ${../if/suspend:/name} and ${../if/resume:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_task_suspend( 0 );
+ (void) rtems_task_resume( 0 );
+
+ }
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-task-sus-res.c
+type: test-suite
diff --git a/spec/rtems/val/mem-basic.yml b/spec/rtems/val/mem-basic.yml
new file mode 100644
index 00000000..e7d16050
--- /dev/null
+++ b/spec/rtems/val/mem-basic.yml
@@ -0,0 +1,54 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-basic
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: |
+ This resource benchmark is configured for exactly one processor, no clock
+ driver, no Newlib reentrancy support, and no file system.
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-rtems-basic.c
+type: test-suite
diff --git a/spec/rtems/val/mem-smp-1.yml b/spec/rtems/val/mem-smp-1.yml
new file mode 100644
index 00000000..e8543a48
--- /dev/null
+++ b/spec/rtems/val/mem-smp-1.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-smp-1
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-processors:/name} defined to one using the
+ SMP EDF scheduler (${/acfg/if/scheduler-edf-smp:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define CONFIGURE_MAXIMUM_PROCESSORS 1
+
+ #if defined(RTEMS_SMP)
+ #define CONFIGURE_SCHEDULER_EDF_SMP
+ #endif
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-rtems-smp-1.c
+type: test-suite
diff --git a/spec/rtems/val/mem-smp-global-2.yml b/spec/rtems/val/mem-smp-global-2.yml
new file mode 100644
index 00000000..82da7d1f
--- /dev/null
+++ b/spec/rtems/val/mem-smp-global-2.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-smp-global-2
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-processors:/name} defined to two using the
+ global SMP EDF scheduler (${/acfg/if/scheduler-edf-smp:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define CONFIGURE_MAXIMUM_PROCESSORS 2
+
+ #if defined(RTEMS_SMP)
+ #define CONFIGURE_SCHEDULER_EDF_SMP
+ #endif
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-rtems-smp-global-2.c
+type: test-suite
diff --git a/spec/rtems/val/mem-smp-global-4.yml b/spec/rtems/val/mem-smp-global-4.yml
new file mode 100644
index 00000000..6503768e
--- /dev/null
+++ b/spec/rtems/val/mem-smp-global-4.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-smp-global-4
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-processors:/name} defined to four using the
+ global SMP EDF scheduler (${/acfg/if/scheduler-edf-smp:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define CONFIGURE_MAXIMUM_PROCESSORS 4
+
+ #if defined(RTEMS_SMP)
+ #define CONFIGURE_SCHEDULER_EDF_SMP
+ #endif
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-rtems-smp-global-4.c
+type: test-suite
diff --git a/spec/rtems/val/mem-smp-part-2.yml b/spec/rtems/val/mem-smp-part-2.yml
new file mode 100644
index 00000000..4be00a35
--- /dev/null
+++ b/spec/rtems/val/mem-smp-part-2.yml
@@ -0,0 +1,76 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-smp-part-2
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-processors:/name} defined to two using one
+ SMP EDF scheduler for each configured processor
+ (${/acfg/if/scheduler-edf-smp:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define CONFIGURE_MAXIMUM_PROCESSORS 2
+
+ #if defined(RTEMS_SMP)
+ #define CONFIGURE_SCHEDULER_EDF_SMP
+
+ #include <rtems/scheduler.h>
+
+ RTEMS_SCHEDULER_EDF_SMP( a );
+
+ RTEMS_SCHEDULER_EDF_SMP( b );
+
+ #define NAME( x ) rtems_build_name( x, ' ', ' ', ' ' )
+
+ #define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( a, NAME( 'A' ) ), \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( b, NAME( 'B' ) )
+
+ #define CONFIGURE_SCHEDULER_ASSIGNMENTS \
+ RTEMS_SCHEDULER_ASSIGN( 0, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY ), \
+ RTEMS_SCHEDULER_ASSIGN( 1, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY )
+ #endif
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-rtems-smp-part-2.c
+type: test-suite
diff --git a/spec/rtems/val/mem-smp-part-4.yml b/spec/rtems/val/mem-smp-part-4.yml
new file mode 100644
index 00000000..f6653d03
--- /dev/null
+++ b/spec/rtems/val/mem-smp-part-4.yml
@@ -0,0 +1,84 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/mem-smp-part-4
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-processors:/name} defined to four using one
+ SMP EDF scheduler for each configured processor
+ (${/acfg/if/scheduler-edf-smp:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define CONFIGURE_MAXIMUM_PROCESSORS 4
+
+ #if defined(RTEMS_SMP)
+ #define CONFIGURE_SCHEDULER_EDF_SMP
+
+ #include <rtems/scheduler.h>
+
+ RTEMS_SCHEDULER_EDF_SMP( a );
+
+ RTEMS_SCHEDULER_EDF_SMP( b );
+
+ RTEMS_SCHEDULER_EDF_SMP( c );
+
+ RTEMS_SCHEDULER_EDF_SMP( d );
+
+ #define NAME( x ) rtems_build_name( x, ' ', ' ', ' ' )
+
+ #define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( a, NAME( 'A' ) ), \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( b, NAME( 'B' ) ), \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( c, NAME( 'C' ) ), \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( d, NAME( 'D' ) )
+
+ #define CONFIGURE_SCHEDULER_ASSIGNMENTS \
+ RTEMS_SCHEDULER_ASSIGN( 0, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY ), \
+ RTEMS_SCHEDULER_ASSIGN( 1, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY ), \
+ RTEMS_SCHEDULER_ASSIGN( 2, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY ), \
+ RTEMS_SCHEDULER_ASSIGN( 3, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY )
+ #endif
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+ #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+ #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+ #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+ #define CONFIGURE_INIT
+
+ #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-rtems-smp-part-4.c
+type: test-suite