Re: [PATCH -tip] x86,apic: Use PAGE_SIZE instead of numbers

From: Cyrill Gorcunov
Date: Mon Nov 09 2009 - 23:40:47 EST


On 11/10/09, Maciej W. Rozycki <macro@xxxxxxxxxxxxxx> wrote:
> On Mon, 9 Nov 2009, H. Peter Anvin wrote:
>
>> In theory we could have more than one ioapic packed into a single page,
>> and it is also entirely plausible we'll support other page sizes in x86
>> at some point. However, it's probably easier to flag something as
>> PAGE_SIZE and have to fix it up later than have magic constants, so I
>> think it's probably the right thing to do.
>
> Hmm, the MPS said in Chapter 3.6.5 "APIC Memory Mapping":
>
> "Non-default APIC base addresses can be used if the MP configuration
> table is provided. (Refer to Chapter 4.) However, the local APIC base
> address must be aligned on a 4K boundary, and the I/O APIC base address
> must be aligned on a 1K boundary."
>
> This probably still stands; I suppose it would be safer to define
> IOAPIC_SLOT_SIZE to 1024 and use it by default, expanding all reservations
> as needed where less than PAGE_SIZE / IOAPIC_SLOT_SIZE I/O APICs would be

yes, it would be even more clear, i'll take care

> mapped in a page. This is relatively recent a piece of code -- how much
> has it been tested?
>
> Well, actually not much as a quick search has revealed this message:
>
> http://marc.info/?l=linux-kernel&m=118114792006520
>
> which shows page alignment of I/O APICs clearly does not stand, and
> moreover there are two pairs of I/O APIC in the system reported which
> share a page each. In this case the ranges requested do not make sense
> and some resource insertions will silently fail. And also while page
> aliases created in fixmaps here should not harm, they make me feel a
> little bit chilly...
>
> Overall this piece of code needs an overhaul, fixing resource allocation
> and reusing fixmaps where possible.

Ok

>
> Maciej
>

thanks, Peter, Maciej for comments!
I must admit (to be fair) i was concerning about fixmap itself so that
forgot about 1k alignment requirement :/ Will fix.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/