blob: 278a71ce808c3eebeb288eebd45dec74100ffee5 (
plain) (
tree)
|
|
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: RTEMS_SMP
limits:
sparc/gr712rc/smp/qual-only/aQM5D84izENqUHf5JXZtqffaL5bD4qBjf9HOSNfAMBY=:
DirtyCache:
max-upper-bound: 0.000144
median-lower-bound: 9.5168e-05
median-upper-bound: 0.00014275199999999998
min-lower-bound: 9.5168e-05
FullCache:
max-upper-bound: 6.8352e-05
median-lower-bound: 3.3600000000000004e-05
median-upper-bound: 5.039999999999999e-05
min-lower-bound: 3.3600000000000004e-05
HotCache:
max-upper-bound: 4.9152e-05
median-lower-bound: 3.276800000000001e-05
median-upper-bound: 4.9152e-05
min-lower-bound: 3.2e-05
Load/1:
max-upper-bound: 0.0001416
median-lower-bound: 9.3568e-05
median-upper-bound: 0.000140352
min-lower-bound: 9.3568e-05
Load/2:
max-upper-bound: 0.00016079999999999998
median-lower-bound: 0.0001072
median-upper-bound: 0.00016079999999999998
min-lower-bound: 0.000106368
sparc/gr740/smp/qual-only/3Y1G8SMm2FRTpZB5_0NhbpDnatbEYmbDLLW58d-wXuY=:
DirtyCache:
max-upper-bound: 5.2487999999999996e-05
median-lower-bound: 3.4848e-05
median-upper-bound: 5.2272000000000004e-05
min-lower-bound: 3.4752e-05
FullCache:
max-upper-bound: 5.1432e-05
median-lower-bound: 3.4224e-05
median-upper-bound: 5.1336e-05
min-lower-bound: 3.4112e-05
HotCache:
max-upper-bound: 5.1936e-05
median-lower-bound: 3.392e-05
median-upper-bound: 5.088e-05
min-lower-bound: 3.3776e-05
Load/1:
max-upper-bound: 5.7552e-05
median-lower-bound: 3.8128000000000005e-05
median-upper-bound: 5.7192e-05
min-lower-bound: 3.7312000000000005e-05
Load/2:
max-upper-bound: 5.7504e-05
median-lower-bound: 3.8e-05
median-upper-bound: 5.7e-05
min-lower-bound: 3.7136000000000005e-05
Load/3:
max-upper-bound: 5.7504e-05
median-lower-bound: 3.8e-05
median-upper-bound: 5.7e-05
min-lower-bound: 3.7136000000000005e-05
Load/4:
max-upper-bound: 5.7696e-05
median-lower-bound: 3.8224000000000005e-05
median-upper-bound: 5.7335999999999995e-05
min-lower-bound: 3.7552e-05
sparc/gr740/smp/qual-only/qpmWME3Tk2kfoQL1kmgyerzkvLKkrfPY7xWIWGfY0Fg=:
DirtyCache:
max-upper-bound: 5.56416e-05
median-lower-bound: 3.18464e-05
median-upper-bound: 4.7769600000000004e-05
min-lower-bound: 3.06304e-05
FullCache:
max-upper-bound: 3.25248e-05
median-lower-bound: 1.46688e-05
median-upper-bound: 2.2003199999999996e-05
min-lower-bound: 1.44352e-05
HotCache:
max-upper-bound: 1.16352e-05
median-lower-bound: 7.638400000000001e-06
median-upper-bound: 1.14576e-05
min-lower-bound: 7.638400000000001e-06
Load/1:
max-upper-bound: 6.6e-05
median-lower-bound: 3.0457599999999998e-05
median-upper-bound: 4.56864e-05
min-lower-bound: 3.0156800000000002e-05
Load/2:
max-upper-bound: 0.0002622576
median-lower-bound: 0.0001733088
median-upper-bound: 0.0002599632
min-lower-bound: 0.0001720704
Load/3:
max-upper-bound: 0.00046149599999999993
median-lower-bound: 0.00029721280000000004
median-upper-bound: 0.0004458192
min-lower-bound: 0.00029710720000000003
Load/4:
max-upper-bound: 0.0005809872
median-lower-bound: 0.0003810144
median-upper-bound: 0.0005715216
min-lower-bound: 0.000376416
links:
- role: requirement-refinement
uid: perf-runtime
- role: runtime-measurement-request
uid: ../val/perf
non-functional-type: performance-runtime
params: {}
rationale: null
references: []
requirement-type: non-functional
test-body:
brief: |
Send a message.
code: |
uint64_t message;
ctx->begin = T_tick();
ctx->status = rtems_message_queue_send(
ctx->queue_id,
&message,
sizeof( message )
);
description: null
test-cleanup:
brief: |
Move worker to scheduler A.
code: |
SetScheduler( ctx->worker_id, SCHEDULER_A_ID, PRIO_HIGH );
description: null
test-prepare:
brief: |
Move worker to scheduler B.
code: |
SetScheduler( ctx->worker_id, SCHEDULER_B_ID, PRIO_NORMAL );
description: null
test-setup:
brief: |
Let the worker wait on the message queue.
code: |
Send( ctx, EVENT_RECEIVE | EVENT_RECEIVE_END );
WaitForNextTask( 1, ctx->worker_id );
description: null
test-teardown:
brief: |
Make sure the worker waits for the next event. Set the measured runtime.
Discard samples interrupted by a clock tick.
code: |
T_quiet_rsc_success( ctx->status );
WaitForNextTask( 1, ctx->worker_id );
*delta = ctx->end - ctx->begin;
return tic == toc;
description: null
text: |
Let U and V be two tasks with distinct home schedulers. Let :math:`B`
be a time point measured by U right before a call to ${../if/send:/name}
which unblocks the waiting task V which is scheduled on another
processor. Let :math:`E` be a time point measured by V right after the
first context switch after :math:`B`.
While the execution environment is ${.:/environment}, while a message queue
is empty, while only task V waits on the message queue, while the
measurement sample is :math:`E - B`, when exactly
${../val/perf:/params/sample-count} samples are collected, the
${.:/limit-kind} shall be ${.:/limit-condition}.
type: requirement
|