Re: SMP Timekeeping regression in 2.6.16-rc5 (and 2.6.16-rc4)

From: Paul Mackerras
Date: Fri Mar 03 2006 - 05:32:57 EST


Kyle Moffett writes:

> Hi! Just built and installed a 2.6.16-rc5 kernel on my Powermac G4 Dual
> 1GHz (windtunnel model) and discovered a rather problematic timekeeping
> bug (not present in debian 2.6.15). Essentially the two CPUs have
> completely different ideas about what day/time it is. I booted into

Ouch!

It turns out that smp_core99_give/take_timebase are using a 32-bit
variable to transfer the timebase value from one cpu to the other. So
the bottom 32 bits end up synchronized but the top 32 bits are quite
different, hence the different time of day on the two cpus.

The fix is to change `timebase' to be a u64. I have that change
queued up in my powerpc-merge tree, which I'll ask Linus to pull
shortly.

Paul.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/