我正在尝试设置一个hrtimer来以绝对间隔生成句点函数回调。
将计时器初始化为
hrtimer_init(&p->rt_track.rt_period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
功能分配正在
完成p->rt_track.rt_period_timer.function = new_period_actions;
函数原型是
enum hrtimer_restart new_period_actions(struct hrtimer *timer);
将计时器设为
hrtimer_start(&p->rt_track.rt_period_timer, ktime_set(t.tv_sec, t.tv_nsec), HRTIMER_MODE_REL);
即使timepec t = =(10秒,0 nsecs)(我正在测试),计时器在几毫秒内继续运行会导致内核因系统压倒性而崩溃。
我想通过编程timespec t来控制定时器回调持续时间。
有人可以告诉我,我可能做错了吗?
答案 0 :(得分:0)
使用定时器转发解决了它
now = hrtimer_cb_get_time(timer);
hrtimer_forward(timer, now,ktime_set(rtt->T.tv_sec,rtt->T.tv_nsec) );