Re: [PATCH 8/8] x86_64: Support for new UV apic

Jack Steiner
2008-03-31T02:26:36Z

On Sun, Mar 30, 2008 at 07:23:07PM -0700, Yinghai Lu wrote:
> On Sun, Mar 30, 2008 at 7:12 PM, Jack Steiner <steiner@sgi.com> wrote:
> > > > Did you test it on non UV_X2APIC box?
> > >
> > > anyway the read_apic_id is totally wrong, even for your UV_X2APIC box.
> > > because id=apic_read(APIC_ID) will have apic_id at bits [31,24], and
> > > id |= __get_cpu_var(x2apic_extra_bits) is assuming that is on bits [5,0]
> > >
> > > so you even didn't test in your UV_X2APIC box!
> > >
> >
> > It works fine on UV_X2APIX boxes because the double shift does
> > not occur. However, support for UV_X2APIC is dependent on
> > x2apic code that is not yet in the tree. Once the APIC
> > is switched into x2apic mode, the apicid is located in the LOW
> > bits of the apicid register, not the HIGH bits.
>
> oh, so that will need have new version GET_APIC_ID too.

Yes, although I think all the changes will be unified into
one non-inline function that is a combination of
GET_APIC_ID() & read_apic_id().

--- jack