Merged, Maxim. On 11/18/2015 18:51, Bill Fischofer wrote:
On Wed, Nov 18, 2015 at 9:47 AM, Stuart Haslam <[email protected] <mailto:[email protected]>> wrote:The scheduler validation test occasionally deadlocks due to a missing ticketlock unlock. Signed-off-by: Stuart Haslam <[email protected] <mailto:[email protected]>>Reviewed-by: Bill Fischofer <[email protected] <mailto:[email protected]>>--- test/validation/scheduler/scheduler.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/test/validation/scheduler/scheduler.c b/test/validation/scheduler/scheduler.c index f8effb3..2bd180c 100644 --- a/test/validation/scheduler/scheduler.c +++ b/test/validation/scheduler/scheduler.c @@ -593,6 +593,7 @@ static void *schedule_common_(void *arg) queue_context *qctx; buf_contents *bctx, *bctx_cpy; odp_pool_t pool; + int locked; globals = args->globals; sync = args->sync; @@ -608,7 +609,6 @@ static void *schedule_common_(void *arg) odp_buffer_t buf, buf_cpy; odp_queue_t from = ODP_QUEUE_INVALID; int num = 0; - int locked; odp_ticketlock_lock(&globals->lock); if (globals->buf_count == 0) { @@ -747,9 +747,12 @@ static void *schedule_common_(void *arg) if (args->num_workers > 1) odp_barrier_wait(&globals->barrier); - if (sync == ODP_SCHED_SYNC_ORDERED && - odp_ticketlock_trylock(&globals->lock) && - globals->buf_count_cpy > 0) { + if (sync == ODP_SCHED_SYNC_ORDERED) + locked = odp_ticketlock_trylock(&globals->lock); + else + locked = 0; + + if (locked && globals->buf_count_cpy > 0) { odp_event_t ev; odp_queue_t pq; uint64_t seq; @@ -787,9 +790,11 @@ static void *schedule_common_(void *arg) } CU_ASSERT(bcount == buf_count); globals->buf_count_cpy = 0; - odp_ticketlock_unlock(&globals->lock); } + if (locked) + odp_ticketlock_unlock(&globals->lock); + return NULL; } -- 2.1.1 _______________________________________________ lng-odp mailing list [email protected] <mailto:[email protected]> https://lists.linaro.org/mailman/listinfo/lng-odp _______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
_______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
