diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2023-05-05 14:41:18 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2023-05-08 14:34:56 +0200 |
commit | 4f6e4139427bf8cbcbece12caff09665e1171dbf (patch) | |
tree | 2736c128d1e075163617bbef11c66f871c308847 | |
parent | spec: Reorganize performance runtime limits (diff) | |
download | rtems-central-4f6e4139427bf8cbcbece12caff09665e1171dbf.tar.bz2 |
spec: Specify runtime measurement execution envs
-rw-r--r-- | spec/req/perf-runtime-environment-dirty-cache.yml | 21 | ||||
-rw-r--r-- | spec/req/perf-runtime-environment-full-cache.yml | 20 | ||||
-rw-r--r-- | spec/req/perf-runtime-environment-hot-cache.yml | 20 | ||||
-rw-r--r-- | spec/req/perf-runtime-environment-load-steps.yml | 21 | ||||
-rw-r--r-- | spec/req/perf-runtime-environment-load.yml | 19 | ||||
-rw-r--r-- | spec/req/perf-runtime-environment.yml | 17 | ||||
-rw-r--r-- | spec/spec/requirement-performance-runtime-env-name.yml | 22 | ||||
-rw-r--r-- | spec/spec/requirement-performance-runtime-env.yml | 27 | ||||
-rw-r--r-- | spec/spec/requirement-performance-runtime-envs.yml | 2 | ||||
-rw-r--r-- | spec/val/perf-environment.yml | 20 |
10 files changed, 177 insertions, 12 deletions
diff --git a/spec/req/perf-runtime-environment-dirty-cache.yml b/spec/req/perf-runtime-environment-dirty-cache.yml new file mode 100644 index 00000000..c34c12ef --- /dev/null +++ b/spec/req/perf-runtime-environment-dirty-cache.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +enabled-by: true +links: +- role: requirement-refinement + uid: perf-runtime-environment +name: DirtyCache +non-functional-type: performance-runtime-environment +rationale: | + This runtime measurement environment is used to measure the runtime of code + sections while data and instructions of the code section have to be loaded + from main memory and the loaded data has to wait for the write out of dirty + data. +references: [] +requirement-type: non-functional +text: | + A ${/glossary/target:/term} state in which the caches are fully loaded with + dirty data and instructions unrelated to the measured code section shall be + a runtime measurement environment. +type: requirement diff --git a/spec/req/perf-runtime-environment-full-cache.yml b/spec/req/perf-runtime-environment-full-cache.yml new file mode 100644 index 00000000..2f940078 --- /dev/null +++ b/spec/req/perf-runtime-environment-full-cache.yml @@ -0,0 +1,20 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +enabled-by: true +links: +- role: requirement-refinement + uid: perf-runtime-environment +name: FullCache +non-functional-type: performance-runtime-environment +rationale: | + This runtime measurement environment is used to measure the runtime of code + sections while data and instructions of the code section have to be loaded + from main memory without having to wait for the write out of dirty data. +references: [] +requirement-type: non-functional +text: | + A ${/glossary/target:/term} state in which the caches are fully loaded with + valid data and instructions unrelated to the measured code section shall be + a runtime measurement environment. +type: requirement diff --git a/spec/req/perf-runtime-environment-hot-cache.yml b/spec/req/perf-runtime-environment-hot-cache.yml new file mode 100644 index 00000000..d8c12ec4 --- /dev/null +++ b/spec/req/perf-runtime-environment-hot-cache.yml @@ -0,0 +1,20 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +enabled-by: true +links: +- role: requirement-refinement + uid: perf-runtime-environment +name: HotCache +non-functional-type: performance-runtime-environment +rationale: | + This runtime measurement environment is used to measure the runtime of code + sections while data and instructions of the code section are already in the + cache. This should give a good estimate of best case conditions. +references: [] +requirement-type: non-functional +text: | + A ${/glossary/target:/term} state in which the caches are fully loaded with + data and instructions related to the measured code section shall be a runtime + measurement environment. +type: requirement diff --git a/spec/req/perf-runtime-environment-load-steps.yml b/spec/req/perf-runtime-environment-load-steps.yml new file mode 100644 index 00000000..868e174f --- /dev/null +++ b/spec/req/perf-runtime-environment-load-steps.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +enabled-by: true +links: +- role: requirement-refinement + uid: perf-runtime-environment-load +non-functional-type: performance +rationale: | + Having a data bus load task subsequently for each processor on the target is + done to get close to worst case conditions in an ${/glossary/smp:/term} + system. Ideally, for this runtime measurement environment data traffic from + other bus masters should be generated also, however, this would require + specific device support. +references: [] +requirement-type: non-functional +text: | + The load runtime measurement environment shall be set up with exactly one up + the maximum number of processors of the ${/glossary/target:/term} data bus + load tasks. +type: requirement diff --git a/spec/req/perf-runtime-environment-load.yml b/spec/req/perf-runtime-environment-load.yml new file mode 100644 index 00000000..9a47c982 --- /dev/null +++ b/spec/req/perf-runtime-environment-load.yml @@ -0,0 +1,19 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +enabled-by: true +links: +- role: requirement-refinement + uid: perf-runtime-environment +name: Load +non-functional-type: performance-runtime-environment +rationale: | + This runtime measurement environment is intended to get close to worst case + execution conditions. +references: [] +requirement-type: non-functional +text: | + A ${/glossary/target:/term} state in which the caches are fully loaded with + dirty data and instructions unrelated to the measured code section and data + bus load from background tasks shall be a runtime measurement environment. +type: requirement diff --git a/spec/req/perf-runtime-environment.yml b/spec/req/perf-runtime-environment.yml new file mode 100644 index 00000000..7e2e1856 --- /dev/null +++ b/spec/req/perf-runtime-environment.yml @@ -0,0 +1,17 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +enabled-by: true +links: +- role: requirement-refinement + uid: perf-runtime +non-functional-type: performance +rationale: | + The state of the memory system on the ${/glossary/target:/term} has usually a + significant influence on timings. +references: [] +requirement-type: non-functional +text: | + The runtime measurement shall be done in different runtime measurement + environments. +type: requirement diff --git a/spec/spec/requirement-performance-runtime-env-name.yml b/spec/spec/requirement-performance-runtime-env-name.yml new file mode 100644 index 00000000..62286732 --- /dev/null +++ b/spec/spec/requirement-performance-runtime-env-name.yml @@ -0,0 +1,22 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH & Co. KG +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + str: + assert: + - in: + - FullCache + - HotCache + - DirtyCache + - re: ^Load/[1-9][0-9]*$ + description: | + It specifies the runtime measurement environment name. +spec-name: Runtime Measurement Environment Name +spec-type: requirement-performance-runtime-env-name +type: spec diff --git a/spec/spec/requirement-performance-runtime-env.yml b/spec/spec/requirement-performance-runtime-env.yml index 35becdee..e83abf33 100644 --- a/spec/spec/requirement-performance-runtime-env.yml +++ b/spec/spec/requirement-performance-runtime-env.yml @@ -1,22 +1,27 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2023 embedded brains GmbH & Co. KG enabled-by: true links: - role: spec-member uid: root +- role: spec-refinement + spec-key: non-functional-type + spec-value: performance-runtime-environment + uid: requirement-non-functional spec-description: null spec-example: null spec-info: - str: - assert: - - in: - - FullCache - - HotCache - - DirtyCache - - re: ^Load/[1-9][0-9]*$ + dict: + attributes: + name: + description: | + It shall be the runtime measurement environment name. See also + ${requirement-performance-runtime-env-name:/spec-name}. + spec-type: str description: | - It specifies the runtime measurement environment. -spec-name: Runtime Measurement Environment -spec-type: requirement-performance-runtime-env + This set of attributes specifies a runtime measurement environment. + mandatory-attributes: all +spec-name: Runtime Measurement Environment Item Type +spec-type: requirement-performance-runtime-environment type: spec diff --git a/spec/spec/requirement-performance-runtime-envs.yml b/spec/spec/requirement-performance-runtime-envs.yml index 9c301a5c..1aa38db8 100644 --- a/spec/spec/requirement-performance-runtime-envs.yml +++ b/spec/spec/requirement-performance-runtime-envs.yml @@ -15,7 +15,7 @@ spec-info: runtime measurement environments. generic-attributes: description: null - key-spec-type: requirement-performance-runtime-env + key-spec-type: requirement-performance-runtime-env-name value-spec-type: requirement-performance-runtime-values mandatory-attributes: all spec-name: Runtime Measurement Environment Table diff --git a/spec/val/perf-environment.yml b/spec/val/perf-environment.yml new file mode 100644 index 00000000..a6f3df68 --- /dev/null +++ b/spec/val/perf-environment.yml @@ -0,0 +1,20 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +enabled-by: true +links: +- role: validation + uid: /req/perf-runtime-environment-dirty-cache +- role: validation + uid: /req/perf-runtime-environment-full-cache +- role: validation + uid: /req/perf-runtime-environment-hot-cache +- role: validation + uid: /req/perf-runtime-environment-load-steps +method: by-review-of-design +references: [] +text: | + The execution environments are set up by the RTEMS Test Framework. For each + runtime performance requirement test code for all execution environments is + generated. +type: validation |