summaryrefslogtreecommitdiff
path: root/testsuites/validation/tc-barrier-performance.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/validation/tc-barrier-performance.c')
-rw-r--r--testsuites/validation/tc-barrier-performance.c27
1 files changed, 6 insertions, 21 deletions
diff --git a/testsuites/validation/tc-barrier-performance.c b/testsuites/validation/tc-barrier-performance.c
index 25cc6c9cf6..498d13cb69 100644
--- a/testsuites/validation/tc-barrier-performance.c
+++ b/testsuites/validation/tc-barrier-performance.c
@@ -61,7 +61,7 @@
/**
* @defgroup RTEMSTestCaseRtemsBarrierValPerf spec:/rtems/barrier/val/perf
*
- * @ingroup RTEMSTestSuiteTestsuitesPerformance0
+ * @ingroup RTEMSTestSuiteTestsuitesPerformanceNoClock0
*
* @brief This test case provides a context to run @ref RTEMSAPIClassicBarrier
* performance tests.
@@ -265,26 +265,9 @@ static void RtemsBarrierReqPerfReleaseAutoOtherCpu_Prepare(
ctx->worker_id = CreateTask( "WORK", PRIO_NORMAL );
SetScheduler( ctx->worker_id, SCHEDULER_B_ID, PRIO_NORMAL );
StartTask( ctx->worker_id, BarrierWaitWorker, ctx );
-}
-
-/**
- * @brief Make sure the worker task is fully blocked on the barrier.
- */
-static void RtemsBarrierReqPerfReleaseAutoOtherCpu_Setup(
- RtemsBarrierValPerf_Context *ctx
-)
-{
WaitForNextTask( 1, ctx->worker_id );
}
-static void RtemsBarrierReqPerfReleaseAutoOtherCpu_Setup_Wrap( void *arg )
-{
- RtemsBarrierValPerf_Context *ctx;
-
- ctx = arg;
- RtemsBarrierReqPerfReleaseAutoOtherCpu_Setup( ctx );
-}
-
/**
* @brief Automatically release the barrier.
*/
@@ -305,8 +288,8 @@ static void RtemsBarrierReqPerfReleaseAutoOtherCpu_Body_Wrap( void *arg )
}
/**
- * @brief Set the measured runtime. Discard samples interrupted by a clock
- * tick.
+ * @brief Make sure the worker waits for the next event. Set the measured
+ * runtime. Discard samples interrupted by a clock tick.
*/
static bool RtemsBarrierReqPerfReleaseAutoOtherCpu_Teardown(
RtemsBarrierValPerf_Context *ctx,
@@ -318,6 +301,7 @@ static bool RtemsBarrierReqPerfReleaseAutoOtherCpu_Teardown(
{
T_quiet_rsc_success( ctx->status );
+ WaitForNextTask( 1, ctx->worker_id );
*delta = ctx->end - ctx->begin;
return tic == toc;
@@ -503,6 +487,7 @@ static void RtemsBarrierReqPerfReleaseManualPreempt_Body(
{
uint32_t count;
+ ctx->begin = T_tick();
ctx->status = rtems_barrier_release( ctx->barrier_id, &count );
}
@@ -590,7 +575,7 @@ T_TEST_CASE_FIXTURE( RtemsBarrierValPerf, &RtemsBarrierValPerf_Fixture )
#if defined(RTEMS_SMP)
RtemsBarrierReqPerfReleaseAutoOtherCpu_Prepare( ctx );
ctx->request.name = "RtemsBarrierReqPerfReleaseAutoOtherCpu";
- ctx->request.setup = RtemsBarrierReqPerfReleaseAutoOtherCpu_Setup_Wrap;
+ ctx->request.setup = NULL;
ctx->request.body = RtemsBarrierReqPerfReleaseAutoOtherCpu_Body_Wrap;
ctx->request.teardown = RtemsBarrierReqPerfReleaseAutoOtherCpu_Teardown_Wrap;
T_measure_runtime( ctx->context, &ctx->request );