aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time/hrtimer.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/time/hrtimer.c')
-rw-r--r--kernel/time/hrtimer.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
index b4824e1dbc6d..c367854ce1d6 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1491,12 +1491,17 @@ static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer)
1491 t->task = NULL; 1491 t->task = NULL;
1492 if (task) 1492 if (task)
1493 { 1493 {
1494#ifdef CONFIG_SCHED_OVERHEAD_TRACE
1494 if (is_realtime(task)) 1495 if (is_realtime(task))
1495 { 1496 {
1496 ktime_t expires = hrtimer_get_expires(timer); 1497 ktime_t expires = hrtimer_get_expires(timer);
1497 lt_t intended_release = ktime_to_ns(expires); 1498 /* Fix up timers that were added past their due date;
1499 * that's not really release latency. */
1500 lt_t intended_release = max(expires.tv64,
1501 timer->when_added.tv64);
1498 TS_RELEASE_LATENCY(intended_release); 1502 TS_RELEASE_LATENCY(intended_release);
1499 } 1503 }
1504#endif
1500 TS_RELEASE_START; 1505 TS_RELEASE_START;
1501 wake_up_process(task); 1506 wake_up_process(task);
1502 TS_RELEASE_END; 1507 TS_RELEASE_END;