Re: 2.6.17-mm2 hrtimer code wedges at boot?

From: Valdis . Kletnieks
Date: Fri Jun 30 2006 - 17:03:04 EST


On Fri, 30 Jun 2006 12:26:09 PDT, john stultz said:

> Its a little after the fact (since things have already gone awry), but
> it does show the multiplier is way out of bound.
>
> I suspect the following patch will resolve it. The update callback
> hasn't kept up with the changes from Roman, and is a bit useless anyway.
> If the TSC is changing frequency, its unstable and we don't want to use
> it, so lets just mark it as such and move along.
>
> I'll work on a patch to cleanup the update_callback code, but if this
> resolves the issue, it should be the safe short term fix for 2.6.18.

*AHA* I *found* the bugger, I think.

In kernel/timer.c, we have:

static void clocksource_adjust(struct clocksource *clock, s64 offset)
(s64 used for offset in multiple places).

However, in other places, offset is a 'cycle_t', which is:

include/linux/clocksource.h:typedef u64 cycle_t;

So it looks like a signed/unsigned screwage.

Attachment: pgp00000.pgp
Description: PGP signature