Skip site navigation (1)Skip section navigation (2)
Date:      12 Nov 2002 17:08:38 -0600
From:      "Michael A. Mackey" <michael-mackey@uiowa.edu>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        freebsd-alpha@freebsd.org
Subject:   Re: Extreme time drift in SMP mode
Message-ID:  <1037142521.27992.41.camel@focaccia.>
In-Reply-To: <3DD180E3.80D3C4F6@mindspring.com>
References:  <XFMail.20021112164459.jhb@FreeBSD.org>  <3DD180E3.80D3C4F6@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I guess I don't understand the problem.

It seemed to me that the problem was that not all the interrupts were
being delivered because the Lynx architecture expects each processor to
generate interrupts.  Before the fix, the system lost time by an amount
which was equivalent to throwing away half of the interrupts. After my
modification, each processor is allowed to generate clock interrupts,
and the system receives the complete set of interrupts, yielding the
result that the system keeps time correctly.

I'm sure that this is a naive picture of what's going on (and I'm not a
kernel developer), but it works.  I realize that it is probably specific
to the Lynx architecture, and I of course would be happy for a 'correct'
way to allow this old box to happily crank along solving PDE's.
 

Anyway, I sure am glad to have such high quality software to run on this
box.  
Keep up the great work FreeBSD-Alpha!
 


On Tue, 2002-11-12 at 16:29, Terry Lambert wrote:
> John Baldwin wrote:
> > On 12-Nov-2002 Michael A. Mackey wrote:
> > > Well, I guess I got really lucky....
> > >
> > > I seem to have fixed the time drift problem, based on a hunch.
> > >
> > > Drew, after what you said about the boot processor alone driving the
> > > timing, I decided to allow both processors to drive the timer.  So, I
> > > changed the code in the function 'alpha_clock_interrupt ()' in
> > > /usr/src/sys/alpha/alpha/interrupt.c (actually I only added an #undef
> > > SMP statement on line 467 and redefined it before the 'critical_exit()'
> > > call).
> > >
> > > And now, the SMP system keeps proper track of the time.
> > >
> > > In a couple of days, I have two more processors arriving.  Then I can
> > > really test if this fix works.
> > >
> > > Thanks for your help - and I hope others can verify my results.
> > 
> > Well, that's not really an ideal fix for the problem. :(  Adjusting
> > the timer frequency in the SMP case instead would be preferred.
> 
> What if that's just a statistical fix, having to do with interrupt
> delivery, rather than a real fix?
> 
> -- Terry
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-alpha" in the body of the message



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1037142521.27992.41.camel>