The rule for time values in c/r is: all time measurements in
the checkpoint image are saved as relative values, using the
start-of-checkpoint as the reference point in time.

This patch fixes how hrtimer delta is calculated to make it
really follow this rule.

Signed-off-by: Oren Laadan <[email protected]>
---
 kernel/signal.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/kernel/signal.c b/kernel/signal.c
index de76729..0ec4a46 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -3151,7 +3151,8 @@ static int checkpoint_signal(struct ckpt_ctx *ctx, struct 
task_struct *t)
        /* real/virt/prof itimers */
        if (hrtimer_active(&signal->real_timer)) {
                /* For an active timer compute the time delta */
-               ktime_t delta = hrtimer_get_remaining(&signal->real_timer);
+               ktime_t delta = ktime_sub(ctx->ktime_begin,
+                                         signal->real_timer._expires);
                /*
                 * If the timer expired after the the test above, then
                 * set the expire to the minimum possible (because by
-- 
1.7.0.4

_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to