我在表演
hrtimer_init(hr_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
过了一会儿(30,也许 60 秒),我执行:
hrtimer_start(hr_timer, ktime_set(0, timeout), HRTIMER_MODE_REL);
紧接着,不到 1 秒,我就表演了
ktime_to_timeval(hrtimer_expires_remaining(hr_timer));
输出 timeval 结构包含自 hrtimer_init 以来的时间,而不是从开始时开始的时间。 尴尬的是,这种情况并不是每次都会发生,它只发生在我的众多计时器中的一个上(仅发生在我初始化的第一个计时器上)。
有什么想法吗?
最佳答案
只是一个愚蠢的硬编码变量导致了timerID 0的重置。 我什至创建了一个单独的带有计时器的模块,以查看 hrtimer 包装器是否正常工作。
关于linux - hrtimer 即使未启动也会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28542833/