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().
Unified · Split
| @@ -26,7 +26,7 @@ · 25 unmodified lines | ||
| 26 | 26 | */ |
| 27 | 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 | 32 | * Racy but safe: if the itimer expires after the above |