Date: Fri, 17 Jun 2005 14:50:42 -0400 From: John Baldwin <jhb@FreeBSD.org> To: freebsd-current@freebsd.org Cc: Jens Schweikhardt <schweikh@schweikhardt.net> Subject: Re: Timekeeping hosed by factor 3, high lapic[01] interrupt rates Message-ID: <200506171450.44146.jhb@FreeBSD.org> In-Reply-To: <20050608190147.GA917@schweikhardt.net> References: <20050516113420.GA786@schweikhardt.net> <20050526205831.GA958@schweikhardt.net> <20050608190147.GA917@schweikhardt.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 08 June 2005 03:01 pm, Jens Schweikhardt wrote: > On Thu, May 26, 2005 at 10:58:31PM +0200, Jens Schweikhardt wrote: > # On Thu, May 26, 2005 at 10:30:16AM -0700, Doug White wrote: > # # On Mon, 23 May 2005, Jens Schweikhardt wrote: > # # > # # > ... > # # > # # 3. Backout rev 1.218 of src/sys/i386/isa/clock.c so the irq0 > interrupt # # > # # handler is reactivated and the RTC fiddled. > # # > # > # # > # Will do so next. I've nailed the change between March 6 and March > 30. # # > # 1.218 is from 2005/03/24 21:34:16, which would fit. > # # > > # # > We have a winner. Backing out 1.218 from a 2005/03/24 system does the > trick, # # > as well as a CURRENT without 1.218 (but 1.219-220 in there) > bring back irq0 # # > and time dilation is gone. All clocks work correctly. > # # > # # Hm ... not sure what part of that commit is the bad part. You might > try # # changing > # # > # # if (!using_lapic_timer) { > # # > # # to > # # > # # if(1) { > # # > # # in the most recent rev of clock.c to register irq0 again. If that > doesn't # # chang ethe dialation then something else in the system must be > depending # # on the RTC periodic interrupt. > # > # It does make time dilation go away. > > Any chance this gets backed out, or worked around, e.g. with a > sysctl, device hint, or some other knob? Is this the patch you are running with? >Index: clock.c =================================================================== RCS file: /usr/cvs/src/sys/i386/isa/clock.c,v retrieving revision 1.220 diff -u -r1.220 clock.c --- clock.c 14 May 2005 09:10:01 -0000 1.220 +++ clock.c 27 May 2005 19:42:54 -0000 @@ -784,7 +784,7 @@ * clocks, setup the interrupt handler for the 8254 timer 0 so * that it can drive hardclock(). */ - if (!using_lapic_timer) { + if (!using_lapic_timer || 1) { intr_add_handler("clk", 0, (driver_intr_t *)clkintr, NULL, INTR_TYPE_CLK | INTR_FAST, NULL); i8254_intsrc = intr_lookup_source(0); Also, can you get the output of 'sysctl kern.clockrate' for both cases? -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200506171450.44146.jhb>