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.00014639999999999998 median-lower-bound: 9.676800000000002e-05 median-upper-bound: 0.000145152 min-lower-bound: 9.676800000000002e-05 FullCache: max-upper-bound: 0.0001056 median-lower-bound: 3.276800000000001e-05 median-upper-bound: 4.9152e-05 min-lower-bound: 3.2e-05 HotCache: max-upper-bound: 4.8e-05 median-lower-bound: 3.2e-05 median-upper-bound: 4.8e-05 min-lower-bound: 3.1168e-05 Load/1: max-upper-bound: 0.000144 median-lower-bound: 9.440000000000002e-05 median-upper-bound: 0.0001416 min-lower-bound: 9.440000000000002e-05 Load/2: max-upper-bound: 0.0001632 median-lower-bound: 0.000107968 median-upper-bound: 0.00016195199999999998 min-lower-bound: 0.0001072 sparc/gr740/smp/qual-only/3Y1G8SMm2FRTpZB5_0NhbpDnatbEYmbDLLW58d-wXuY=: DirtyCache: max-upper-bound: 5.2391999999999996e-05 median-lower-bound: 3.4432000000000005e-05 median-upper-bound: 5.1648e-05 min-lower-bound: 3.3984e-05 FullCache: max-upper-bound: 5.0808e-05 median-lower-bound: 3.3728000000000006e-05 median-upper-bound: 5.0592e-05 min-lower-bound: 3.3552e-05 HotCache: max-upper-bound: 5.1384e-05 median-lower-bound: 3.36e-05 median-upper-bound: 5.04e-05 min-lower-bound: 3.344e-05 Load/1: max-upper-bound: 5.7648e-05 median-lower-bound: 3.7680000000000005e-05 median-upper-bound: 5.6519999999999994e-05 min-lower-bound: 3.7104e-05 Load/2: max-upper-bound: 5.7408e-05 median-lower-bound: 3.752000000000001e-05 median-upper-bound: 5.6279999999999996e-05 min-lower-bound: 3.7168e-05 Load/3: max-upper-bound: 5.7408e-05 median-lower-bound: 3.7488000000000004e-05 median-upper-bound: 5.6232e-05 min-lower-bound: 3.7168e-05 Load/4: max-upper-bound: 5.726399999999999e-05 median-lower-bound: 3.752000000000001e-05 median-upper-bound: 5.6279999999999996e-05 min-lower-bound: 3.7104e-05 sparc/gr740/smp/qual-only/qpmWME3Tk2kfoQL1kmgyerzkvLKkrfPY7xWIWGfY0Fg=: DirtyCache: max-upper-bound: 5.8439999999999996e-05 median-lower-bound: 3.3510400000000004e-05 median-upper-bound: 5.02656e-05 min-lower-bound: 3.24704e-05 FullCache: max-upper-bound: 3.552e-05 median-lower-bound: 1.3769600000000001e-05 median-upper-bound: 2.06544e-05 min-lower-bound: 1.35776e-05 HotCache: max-upper-bound: 1.13664e-05 median-lower-bound: 7.385600000000001e-06 median-upper-bound: 1.10784e-05 min-lower-bound: 7.385600000000001e-06 Load/1: max-upper-bound: 7.504799999999999e-05 median-lower-bound: 3.1715200000000004e-05 median-upper-bound: 4.75728e-05 min-lower-bound: 3.13216e-05 Load/2: max-upper-bound: 0.0002649024 median-lower-bound: 0.0001764512 median-upper-bound: 0.0002646768 min-lower-bound: 0.0001732448 Load/3: max-upper-bound: 0.00045756 median-lower-bound: 0.0002989088 median-upper-bound: 0.0004483632 min-lower-bound: 0.0002978912 Load/4: max-upper-bound: 0.0005768112 median-lower-bound: 0.0003817792 median-upper-bound: 0.0005726688 min-lower-bound: 0.0003806912 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: | Automatically release the barrier. code: | ctx->begin = T_tick(); ctx->status = rtems_barrier_wait( ctx->barrier_id, RTEMS_NO_TIMEOUT ); description: null test-cleanup: brief: | Delete the barrier and the worker. code: | rtems_status_code sc; DeleteTask( ctx->worker_id ); sc = rtems_barrier_delete( ctx->barrier_id ); T_rsc_success( sc ); description: null test-prepare: brief: | Create an automatic release barrier. Create and start a worker task. code: | rtems_status_code sc; sc = rtems_barrier_create( OBJECT_NAME, RTEMS_BARRIER_AUTOMATIC_RELEASE, 2, &ctx->barrier_id ); T_rsc_success( sc ); ctx->worker_id = CreateTask( "WORK", PRIO_NORMAL ); SetScheduler( ctx->worker_id, SCHEDULER_B_ID, PRIO_NORMAL ); StartTask( ctx->worker_id, BarrierWaitWorker, ctx ); WaitForNextTask( 1, ctx->worker_id ); description: null test-setup: 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/wait:/name} which automaticall releases the barrier. Let :math:`E` be a time point measured by V right after a call to ${../if/wait:/name} returns successfully due to the ${../if/wait:/name} call associated with :math:`B`. While the execution environment is ${.:/environment}, while the barrier is an automatic release barrier, 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