AMD64 K8 Family C1E dead apic timer fixup

John Baldwin jhb at freebsd.org
Tue Apr 24 15:59:57 UTC 2007


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?

-- 
John Baldwin


More information about the freebsd-i386 mailing list