【问题标题】:hrtimer runs even thogh it is not startedhrtimer 即使没有启动也会运行
【发布时间】:2015-04-17 01:07:36
【问题描述】:

我在表演

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 以来的时间,而不是从开始的时间。 遗憾的是,这种情况并非每次都发生,它只发生在我的众多计时器中的一个上(只发生在我初始化的第一个计时器上)。

有什么想法吗?

【问题讨论】:

  • 看来,即使我在开始前的计时器上调用或不调用 hrtimer_cancel,hrtimer_start 的第一次返回 1 这意味着:已经激活,所以我的超时和整个 hrtimer_start 是只是忽略了。
  • 你的内核版本是多少?你能发布一个最小的例子吗?

标签: linux time kernel linux-device-driver embedded-linux


【解决方案1】:

只是一个愚蠢的硬编码变量导致 timerID 0 重置。 我什至用定时器单独创建了一个单独的模块,以查看 hrtimer 包装器是否正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-18
    • 2018-06-27
    • 1970-01-01
    • 2021-03-18
    • 2014-01-20
    • 1970-01-01
    • 2018-11-29
    • 2019-10-28
    相关资源
    最近更新 更多