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