2014-10-11 2 views
0

Я пытаюсь установить hrtimer для генерации обратных вызовов функции периода с абсолютными интервалами.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 is = (10 секунд, 0 нсек) (пока я тестирую) таймер продолжает двигаться в течение нескольких миллисекунд, что приводит к сбою ядра, подавляя систему, я думаю.

Я хочу управлять длительностью обратного вызова таймера, программируя время t.

Может кто-нибудь, пожалуйста, скажите мне, что я могу делать неправильно?

ответ

0

решаемые его с помощью таймера переадресации

now = hrtimer_cb_get_time(timer); 

hrtimer_forward(timer, now,ktime_set(rtt->T.tv_sec,rtt->T.tv_nsec)); 
Смежные вопросы