From f48574bd287205f888cc0c0f05ad9ee605c7d56c Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Tue, 28 May 2024 18:21:36 +0300 Subject: [PATCH] schedule: zephyr_domain: include domain block in ll time tracking Include the possible domain block time when measuring the time it takes to complete one iteration of the low-latency scheduler thread loop. The ll timer metrics are typically used for initial system debug and it can be misleading when domain block events are not counted in reported average/max numbers. Change the timing code to start measurement immediately after domain thread semaphore is taken. Signed-off-by: Kai Vehmanen --- src/schedule/zephyr_domain.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/schedule/zephyr_domain.c b/src/schedule/zephyr_domain.c index 7fb9b4ae0465..ff5dbc018921 100644 --- a/src/schedule/zephyr_domain.c +++ b/src/schedule/zephyr_domain.c @@ -72,6 +72,8 @@ static void zephyr_domain_thread_fn(void *p1, void *p2, void *p3) /* immediately go to sleep, waiting to be woken up by the timer */ k_sem_take(&dt->sem, K_FOREVER); + cycles0 = k_cycle_get_32(); + #if CONFIG_CROSS_CORE_STREAM /* * If zephyr_domain->block is set -- block LL scheduler from starting its @@ -92,7 +94,6 @@ static void zephyr_domain_thread_fn(void *p1, void *p2, void *p3) } #endif - cycles0 = k_cycle_get_32(); dt->handler(dt->arg); cycles1 = k_cycle_get_32();