Messages in this thread | | | Date | Thu, 12 Jun 2003 21:55:26 +0200 | From | Vojtech Pavlik <> | Subject | Re: [PATCH] New x86_64 time code for 2.5.70 |
| |
On Thu, Jun 12, 2003 at 12:39:55PM -0700, john stultz wrote: > On Thu, 2003-06-12 at 10:47, Bryan O'Sullivan wrote: > > On Wed, 2003-06-11 at 17:33, john stultz wrote: > > > > > Let me know if you have any issues with this patch. > > > > Thanks, John. Your updated patch has survived some beating on my test > > systems. I've also applied Vojtech's fix to hpet_tick. > > One little tweak, you're still subtracting tick_usec when calculating > offset. Doesn't cause any major problems since you're catching error > with the offset<0 switch. However we won't catch lost interrupts > properly if we're always negative. > > thanks > -john > > > Patch for that should be: > > --- 1.22/arch/x86_64/kernel/time.c Thu Jun 12 11:40:33 2003 > +++ edited/arch/x86_64/kernel/time.c Thu Jun 12 11:42:43 2003 > @@ -254,7 +254,7 @@ > vxtime.last = offset; > } else { > offset = (((tsc - vxtime.last_tsc) * > - vxtime.tsc_quot) >> 32) - tick_usec; > + vxtime.tsc_quot) >> 32) - (USEC_PER_SEC / HZ); > > if (offset < 0) > offset = 0;
In my opinion the "if (offset < 0)" check above is not needed once the problem you describe is fixed, since the code below actually expects that offset can be negative and doesn't do anything in that case.
Thinking more about it, the
if ((((tsc - vxtime.last_tsc) * vxtime.tsc_quot) >> 32) < offset)
statement is comparing unsigned and signed values, and should probably be fixed to do a signed comparison.
-- Vojtech Pavlik SuSE Labs, SuSE CR - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |