As Helge reported for timerfd we have the same issue in itimers. We return remaining time larger than the programmed relative time to user space in case of CONFIG_TIME_LOW_RES=y. Use the proper function to adjust the extra time added in hrtimer_start_range_ns().
Showing the changes to kernel/time (1 of 1 file). Show all
Unified · Split
| @@ -26,7 +26,7 @@ · 25 unmodified lines | |||
| 26 | */ | 26 | */ |
| 27 | static struct timeval itimer_get_remtime(struct hrtimer *timer) | 27 | static struct timeval itimer_get_remtime(struct hrtimer *timer) |
| 28 | { | 28 | { |
| 29 | ktime_t rem = hrtimer_get_remaining(timer); | 29 | ktime_t rem = __hrtimer_get_remaining(timer, true); |
| 30 | 30 | ||
| 31 | /* | 31 | /* |
| 32 | * Racy but safe: if the itimer expires after the above | 32 | * Racy but safe: if the itimer expires after the above |