AMD64 K8 Family C1E dead apic timer fixup

John Baldwin jhb at freebsd.org
Wed Apr 25 19:06:37 UTC 2007


On Tuesday 24 April 2007 01:17:20 pm Ariff Abdullah wrote:
> On Tue, 24 Apr 2007 11:47:56 -0400
> John Baldwin <jhb at freebsd.org> wrote:
> > On Monday 23 April 2007 09:39:59 pm Ariff Abdullah wrote:
> > > On Mon, 23 Apr 2007 14:46:53 -0400
> > > John Baldwin <jhb at freebsd.org> wrote:
> > > > On Friday 20 April 2007 07:54:44 am Ariff Abdullah wrote:
> > > > > Will anybody object if I (or somebody else) commit this patch?
> > > > > 
> > > > >    http://people.freebsd.org/~ariff/test/k8_c1e.diff
> > > > > 
> > > > > This should "fix" dead apic timer issues on latest AMD64
> > > > > (Turion64 X2 mostly, or later revision) where C1 Enhanced
> > > > > (C1E) mode enabled.
> > > > > 
> > > > > Without this, the only way to make the timer work is to
> > > > > disable APIC or even worst, to avoid executing HLT instruction
> > > > > (machdep.cpu_idle_hlt=0), smp or non-smp. It affect both i386
> > > > > and amd64.
> > > > > 
> > > > > See PR: i386/104678 for details.
> > > > 
> > > > Does this fix all of the Turion lapic timer hangs?
> > > 
> > > Yes, and hopefully to the later revisions (if any) as well.
> > 
> > Ok, cool.
> > 
> > > > Some small tweaks to the  comment would be:
> > > > 
> > > > - s/present/presence/
> > > > - s/render/renders/
> > > > - s/apic timer/local APIC timer/
> > > > - s/dead, and/dead, so/
> > > > - s/reading Interrupt/reading the Interrupt/
> > > > - s/unset/clearing/
> > > > 
> > > 
> > > Thanks.
> > > 
> > > > Also, is it ok to always mask off the upper 31 bits of the MSR
> > > > instead of  preserving their current state?
> > > > 
> > > It should work either way, since the upper bits are read only.
> > 
> > Why bother masking it off then?
> > 
> 
> Except of my personal tendency to kill it, I don't think we need to
> mask it off. See latest patch (same link).

Go for it.

-- 
John Baldwin


More information about the freebsd-i386 mailing list