diff options
Diffstat (limited to 'testsuites/validation/tc-barrier-performance.c')
-rw-r--r-- | testsuites/validation/tc-barrier-performance.c | 27 |
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 ); |