From: Martin Wilck <martin.wilck@fujitsu-siemens.com>
To: Andi Kleen <ak@suse.de>
Cc: linux-kernel@vger.kernel.org, "Wichert,
Gerhard" <Gerhard.Wichert@fujitsu-siemens.com>
Subject: Re: APIC version and 8-bit APIC IDs
Date: Wed, 31 Aug 2005 15:13:43 +0200 [thread overview]
Message-ID: <4315AD07.2020500@fujitsu-siemens.com> (raw)
In-Reply-To: <p73pssj2xdz.fsf@verdi.suse.de>
Hi Andi, hi everyone,
>>The MP_valid_apicid() function [arch/i386/kernel/mpparse.c] checks
>>whether the APIC version field is >=20 in order to determine whether
>>the CPU supports 8-bit physical APIC ids.
>
> Yes, it's broken. ... . Also it's only
> a sanity check for broken BIOS, and in this case it causes more problems
> than it solves.
We have another issue with the APIC IDs: the GET_APIC_ID and
APIC_ID_MASK macros from the subarch code. In all subarchs except summit
and es7000, these macros use a hard-coded mask 0x0F for the APIC ID.
Thus, any APIC ID >15 will be truncated, leading to obscure errors.
We are wondering why these masks are there in the subarch code at all.
After all, whether or not 8-bit APIC IDs are supported depends mainly on
the CPU type used. Why wouldn't it possible to have a "default"
architecture with APIC IDs > 15, if the CPUs allow it?
In other words: What would be broken if we just used an APIC ID mask of
0xFF everywhere?
The current situation with MP_valid_apicid() on the one hand (masking
the APIC ID as a function of local APIC version) and APIC_ID_MASK
(masking the APIC as a function of subarch) on the other hand is
inconsistent. A correct approach must take both CPU and architecture
constraints into account, and use a CPU-type-dependent variable mask in
the subarch code.
Regards
Martin
--
Martin Wilck Phone: +49 5251 8 15113
Fujitsu Siemens Computers Fax: +49 5251 8 20409
Heinz-Nixdorf-Ring 1 mailto:Martin.Wilck@Fujitsu-Siemens.com
D-33106 Paderborn http://www.fujitsu-siemens.com/primergy
next prev parent reply other threads:[~2005-08-31 13:13 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <42FC8461.2040102@fujitsu-siemens.com.suse.lists.linux.kernel>
2005-08-12 11:43 ` APIC version and 8-bit APIC IDs Andi Kleen
2005-08-12 13:21 ` Martin Wilck
2005-08-12 13:32 ` Andi Kleen
2005-08-12 13:51 ` Martin Wilck
2005-08-12 14:55 ` Martin Wilck
2005-08-12 14:57 ` Andi Kleen
2005-08-12 16:37 ` yhlu
2005-08-12 16:42 ` Andi Kleen
2005-08-12 17:44 ` yhlu
2005-08-22 9:50 ` Martin Wilck
2005-08-23 11:10 ` Maciej W. Rozycki
2005-08-26 14:01 ` Martin Wilck
2005-08-26 14:50 ` Maciej W. Rozycki
2005-08-29 7:25 ` Martin Wilck
2005-08-12 18:19 ` Siddha, Suresh B
2005-08-12 18:22 ` Andi Kleen
2005-08-12 18:40 ` Siddha, Suresh B
2005-08-12 18:50 ` Andi Kleen
2005-08-31 13:13 ` Martin Wilck [this message]
2005-08-31 13:25 ` Maciej W. Rozycki
2005-08-31 14:27 ` Martin Wilck
[not found] ` <4315B2D9.6080700@fujitsu-siemens.com>
[not found] ` <Pine.LNX.4.61L.0508311450020.10940@blysk.ds.pg.gda.pl>
2005-08-31 14:50 ` Martin Wilck
2005-08-31 14:40 ` Andi Kleen
2005-08-12 11:13 Martin Wilck
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=4315AD07.2020500@fujitsu-siemens.com \
--to=martin.wilck@fujitsu-siemens.com \
--cc=Gerhard.Wichert@fujitsu-siemens.com \
--cc=ak@suse.de \
--cc=linux-kernel@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.