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

Jack Steiner
2008-03-31T02:40:54Z

On Sun, Mar 30, 2008 at 07:29:40PM -0700, Yinghai Lu wrote:
> On Sun, Mar 30, 2008 at 7:26 PM, Jack Steiner <steiner@sgi.com> wrote:
> >
> > 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().
>
> it seems x2apic patch should be applied before uv patch...
>
> YH

That was the original plan but the x2apic code, although functional,
is not yet ready to be integrated. (This was mentioned as an
outstanding issue in the patch on Friday).

Once the x2apic patch is applied, there will be one additional
trivial UV patch (currently 1-line) that will be required to
make UV_X2APIX fully functional. Since the other 2 UV apic modes
are working right now, I decided not to wait for the x2apic patch
before submitting the patches for the basic UV infrastructure.

We have a lot of code that is queued up waiting for the
basic UV infrastructure to be integrated.

--- jack