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/3Y1G8SMm2FRTpZB5_0NhbpDnatbEYmbDLLW58d-wXuY=: DirtyCache: max-upper-bound: 1.128e-06 median-lower-bound: 7.36e-07 median-upper-bound: 1.104e-06 min-lower-bound: 7.36e-07 FullCache: max-upper-bound: 1.0799999999999998e-06 median-lower-bound: 7.040000000000001e-07 median-upper-bound: 1.056e-06 min-lower-bound: 7.040000000000001e-07 HotCache: max-upper-bound: 1.0799999999999998e-06 median-lower-bound: 7.2e-07 median-upper-bound: 1.0799999999999998e-06 min-lower-bound: 7.2e-07 Load/1: max-upper-bound: 1.2239999999999998e-06 median-lower-bound: 8.16e-07 median-upper-bound: 1.2239999999999998e-06 min-lower-bound: 8.0e-07 Load/2: max-upper-bound: 1.2239999999999998e-06 median-lower-bound: 8.0e-07 median-upper-bound: 1.2e-06 min-lower-bound: 7.84e-07 sparc/gr712rc/smp/qual-only/LDe0OENspSb4U2hhl9QK2R3q4ntkBdYP_JLnD_-aZ34=: DirtyCache: max-upper-bound: 1.8e-06 median-lower-bound: 1.1896e-06 median-upper-bound: 1.7843999999999998e-06 min-lower-bound: 1.1896e-06 FullCache: max-upper-bound: 8.544e-07 median-lower-bound: 4.2e-07 median-upper-bound: 6.299999999999999e-07 min-lower-bound: 4.2e-07 HotCache: max-upper-bound: 6.144e-07 median-lower-bound: 4.0960000000000007e-07 median-upper-bound: 6.144e-07 min-lower-bound: 4.0e-07 Load/1: max-upper-bound: 1.77e-06 median-lower-bound: 1.1696e-06 median-upper-bound: 1.7543999999999999e-06 min-lower-bound: 1.1696e-06 Load/2: max-upper-bound: 2.01e-06 median-lower-bound: 1.34e-06 median-upper-bound: 2.01e-06 min-lower-bound: 1.3296e-06 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