summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-05-05 14:41:18 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-05-08 14:34:56 +0200
commit4f6e4139427bf8cbcbece12caff09665e1171dbf (patch)
tree2736c128d1e075163617bbef11c66f871c308847
parentspec: Reorganize performance runtime limits (diff)
downloadrtems-central-4f6e4139427bf8cbcbece12caff09665e1171dbf.tar.bz2
spec: Specify runtime measurement execution envs
-rw-r--r--spec/req/perf-runtime-environment-dirty-cache.yml21
-rw-r--r--spec/req/perf-runtime-environment-full-cache.yml20
-rw-r--r--spec/req/perf-runtime-environment-hot-cache.yml20
-rw-r--r--spec/req/perf-runtime-environment-load-steps.yml21
-rw-r--r--spec/req/perf-runtime-environment-load.yml19
-rw-r--r--spec/req/perf-runtime-environment.yml17
-rw-r--r--spec/spec/requirement-performance-runtime-env-name.yml22
-rw-r--r--spec/spec/requirement-performance-runtime-env.yml27
-rw-r--r--spec/spec/requirement-performance-runtime-envs.yml2
-rw-r--r--spec/val/perf-environment.yml20
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