Hi,

All schedulers except the scalable scheduler seem to respect scheduled
timer queues, except the scalable scheduler.
Is this by design or mistake ?

The below diff seem to "fix" the functional issue, please note that I have
not measured the effects on scalability for this
diff.

--- a/platform/linux-generic/odp_schedule_scalable.c
+++ b/platform/linux-generic/odp_schedule_scalable.c
@@ -23,6 +23,7 @@
 #include <odp_debug_internal.h>
 #include <odp_ishm_internal.h>
 #include <odp_ishmpool_internal.h>
+#include <odp_timer_internal.h>

 #include <odp_align_internal.h>
 #include <odp_buffer_inlines.h>
@@ -889,6 +890,8 @@ static int _schedule(odp_queue_t *from, odp_event_t
ev[], int num_evts)
        ts = sched_ts;
        atomq = ts->atomq;

+       timer_run();
+
        /* Once an atomic queue has been scheduled to a thread, it will stay
         * on that thread until empty or 'rotated' by WRR
         */

Best Regards,
David

Reply via email to