From: Jack Steiner <steiner@sgi.com>
To: Mike Travis <travis@sgi.com>
Cc: Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] x86: put trigger in to detect mismatched apic versions.
Date: Fri, 16 Jan 2009 21:07:53 -0600 [thread overview]
Message-ID: <20090117030752.GB127262@sgi.com> (raw)
In-Reply-To: <497116A8.5080900@sgi.com>
On Fri, Jan 16, 2009 at 03:22:16PM -0800, Mike Travis wrote:
> Ingo Molnar wrote:
> > * Mike Travis <travis@sgi.com> wrote:
> >
> >> Hi Ingo,
> >>
> >> I did notice that the versions all came up the same, and that the checks
> >> were very specific. I was trying to be as transparent and unintrusive
> >> as possible. Since there's so few calls, I though this was a good
> >> approach but apparently I was wrong.
> >>
> >> I like the idea of collapsing the array down to one and checking to see
> >> if all apic's have the same version, but is this really the case? Must
> >> all apics be the same?
> >
> > Could you please send a patch that doesnt change the code, only adds a
> > 'boot APIC version' kind of variable as an apic_version __read_mostly
> > variable and does a WARN_ONCE() if that mismatches? We can then stick that
> > into -tip and see whether it triggers.
> >
> > The max array size is ~128K, right? So if the WARN_ONCE() does not
> > trigger, we can just drop the array and use the central apic_version
> > variable ...
> >
> > And even if it _does_ trigger, the version incompatibilities between APIC
> > protocols are very rare. They only happen across wildly different CPU
> > architectures like when going from very old external apics to integrated
> > apics, or going from apics to x-apics. We wont see any mixing across those
> > boundaries.
> >
> > Ingo
>
> Btw, I checked with our UV architect and the problem is that we need a
> 16 bit apic id which is what caused the MAX_APICS to be bumped to 32k.
> The lower 8 bits are the normal apic id, and the upper bit relate to
> the node. This means cpu 0 on node 0 has the same apic id as cpu 0 on
> node 1, etc. I also asked about whether we could rely on always having
Not strictly true. The apicids in the ACPI tables are always globally unique
across the entire system. Because of the size of UV systems, UV needs 16 bit
apicids. This fits in the ACPI apicid id/eid fields.
The actual processor apicid register is unfortunately only 11 bits and there are
some restrictions on the actual values loaded into the apicid register.
If we can put unique ids into the apicid register, we do. If we
can't, the function that reads the apicid will automatically supply the rest
of the bits. Most of the kernel is unaware that the processor apicid
register may have only a subset of the bits that are in the ACPI tables.
--- jack
next prev parent reply other threads:[~2009-01-17 3:08 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-16 9:05 [PULL}: latest tip/cpus4096 changes Mike Travis
2009-01-16 9:25 ` Ingo Molnar
2009-01-16 17:53 ` Mike Travis
2009-01-16 22:30 ` Ingo Molnar
2009-01-16 23:22 ` [PATCH] x86: put trigger in to detect mismatched apic versions Mike Travis
2009-01-17 0:06 ` Mike Travis
2009-01-17 3:07 ` Jack Steiner [this message]
2009-01-18 19:08 ` Ingo Molnar
2009-01-18 21:25 ` Jack Steiner
2009-01-19 17:08 ` Mike Travis
2009-01-18 19:04 ` Ingo Molnar
2009-01-16 9:28 ` [PULL}: latest tip/cpus4096 changes Ingo Molnar
2009-01-16 17:54 ` Mike Travis
2009-01-16 9:34 ` Ingo Molnar
2009-01-16 17:08 ` Jeremy Fitzhardinge
2009-01-16 19:55 ` Mike Travis
2009-01-16 21:15 ` Jeremy Fitzhardinge
2009-01-16 17:55 ` Mike Travis
2009-01-16 14:25 ` Ingo Molnar
2009-01-16 18:03 ` Mike Travis
2009-01-16 22:32 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090117030752.GB127262@sgi.com \
--to=steiner@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=travis@sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox