On Mon, Aug 02, 2010 at 05:55:08PM -0400, Oren Laadan wrote: > 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 <orenl@xxxxxxxxxxxxxxx> > --- > 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); (Cc'ing Thomas -- perhaps he'd like to see something else..) This doesn't look clean. Perhaps you should introduce a new hrtimer function rather than access signal->real_timer._expires directly. I'm thinking something like the following in include/linux/hrtimer.h: /* after will usually be <= now */ static inline ktime_t hrtimer_get_remaining_after(const struct hrtimer *timer, ktime_t after) { return ktime_sub(timer->_expires, after); } then in kernel/signal.c you'd replace the above patch hunk with: ktime_t delta = hrtimer_get_remaining_after(&signal->real_timer, ctx->ktime_begin); which is functionally the same but looks cleaner. Cheers, -Matt Helsley _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers