为什么我们必须使用 hrtimers 指定两次 hrtimer_mode

Why do we have to specify hrtimer_mode twice using hrtimers

为什么我们在使用hrtimers时需要指定两次hrtimer_mode:

1.Timer初始化:

void hrtimer_init(struct hrtimer *timer, clockid_t which_clock,
                  enum hrtimer_mode mode);

2.Starting一个定时器:

void hrtimer_start(struct hrtimer *timer, ktime_t tim,
                   const enum hrtimer_mode mode);

如果我在两个函数中指定不同的模式会怎样?

HRTIMER_MODE_REL 影响 hrtimer_init() 中的时钟选择和 hrtimer_start() 中的超时解释。

如果您将 CLOCK_REALTIME 计时器初始化为绝对计时器,然后使用相对超时,则超时可能会受到时钟修改的影响(从用户空间的角度来看,这违反了 POSIX) .