Hi,
I have tw implementation and its working fine for sometime and later the 
timer_expired_callback function is not  invoked even though the tw node is 
getting scheduled.

Detals:

tw_node of type VLIB_NODE_TYPE_INPUT.

Node function calls run_timer_wheels :
run_timer_wheels(vm)
{
tw_timer_wheel_1t_1w_2048sl_t* tw;
f64 now;
u32 thread_id = vlib_get_current_worker_index();
tw = &p_main->timer_wheels[thread_id];
now = vlib_time_now (vm);
tw_timer_expire_timers_1t_1w_2048sl(tw, now);
}

Init:

initialize_timer_wheels ()
{
.....
.....
tw_timer_wheel_1t_1w_2048sl_t* tw;
int i=0;
u32 n_workers = vlib_num_workers();

vec_validate (p_main->timer_wheels, n_workers-1);

for(i=0; i<n_workers; i++)
{
tw = &p_main->timer_wheels[i];
tw_timer_wheel_init_1t_1w_2048sl (tw, timer_expired_callback, 0.1, 1024);
tw->last_run_time = vlib_time_now (vlib_get_main());
}
}

Start Function:

start_timer_wheels()
{
....
u32 n_workers = vlib_num_workers();
for(int i=0; i<n_workers; i++)
{
p_main->stop_timer_handle[i] = 
tw_timer_start_1t_1w_2048sl(&p_main->timer_wheels[i],
i /*elt-index*/,
0 /*timer-id*/,
1 /*interval*/);
}
return 0;
}

timer_expired_callback (u32 * expired_timers)
{
........

int                                 i               = 0;
u32                                 thread_id       = 
vlib_get_current_worker_index();
vlib_main_t                         *vm             = vlib_get_main();
f64                                 time_now        = vlib_time_now(vm);

for (i = 0; i < vec_len (expired_timers); i++)
{
/* application logic */
}

p_main->stop_timer_handle[thread_id] = 
tw_timer_start_1t_1w_2048sl(&p_main->timer_wheels[thread_id],
thread_id,
0,
1);
}

Any thing I am missing here.

thanks.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#18948): https://lists.fd.io/g/vpp-dev/message/18948
Mute This Topic: https://lists.fd.io/mt/81398894/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to