Re: [Bug Fix]: Do 32-bit table calculations in pre-processor

From: Michael S. Zick
Date: Fri Jul 03 2009 - 16:03:30 EST


On Fri July 3 2009, Jeremy Fitzhardinge wrote:
> On 07/03/09 12:13, Michael S. Zick wrote:
> > On Fri July 3 2009, Jeremy Fitzhardinge wrote:
> >
> >> On 07/03/09 11:38, Michael S. Zick wrote:
> >>
> >>> I make no claims for it at the moment - too early in the test process.
> >>> Just the general observation that it takes 0.5M to describe 0.5G of ram.
> >>>
> >>>
> >> Only if you're using 4k pages. With large pages, 1 pte can map 2M, so
> >> 256 entries can map 512M, so you only need 1/2 a page of pagetable
> >> (assuming PAE; if not a single entry can map 4M).
> >>
> >>
> >
> > Ah, but you can't assume that - look at your VIA-C7M tech sheet - NO PAE.
> >
>
> According to
> http://www.via.com.tw/en/products/processors/c7-m/secure_by_design.jsp,
> it supports NX, which means it must support PAE.
>

Interesting - this *&^&^% technical datasheet contradicts itself (again).
It can't see to decide if it does or it doesn't - -

I guess I will have to ask the silicon - with my own code - I have a
hardware diagnostic here that claims it doesn't (but it is closed source...)
so I don't know if it is testing or guessing.


> But even without PAE, it can still support PSE (large pages).
>
> > Try ending the filename in ".S" and passing it to gcc,
> > like the build system does.
> >
>
> It doesn't make any difference. After going through cpp the expression is:
>
> # 62 "/home/jeremy/git/linux/arch/x86/kernel/head_32.S"
> MAPPING_BEYOND_END = (((((1<<32) - 0xC0000000) >> 12) / 512) + 4) << 12
>
>
> which will be evaluated by the assembler. The C preprocessor doesn't
> evaluate expressions in the source; it only ever does substitutions and
> leaves the results for the compiler/assembler to evaluate. (It evals
> expressions on cpp # lines, of course, but that's not relevant here.)
>

That is probably what I had in my mind - the "# line" case, sorry, my bad.

Mike
> J
> --
> 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/
>
>


--
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/