Re: [x86_64] Implementation differences compared to x86_32

From: Andi Kleen
Date: Mon Oct 13 2008 - 09:03:18 EST


Eric Lacombe <tuxiko@xxxxxxx> writes:
>
> - In x86_32, the physical memory is mapped on kernel land by way of 4 MB
> pages.
> But for x86_64, I read that the physical memory was mapped by way of 4 KB
> pages. Is it true ? and in this case, why this choice ?

It's normally not true (except in some special circumstances)

>
> - Is the LDT used in x86_64 ?
> I saw that the GDT_ENTRY_LDT is defined to 10 but when I read in the GDT at
> 0x50 for the segment descriptor, there is nothing, the area is filled with
> zeros.

The LDT is only allocated when the user space program needs it. That's
normally only older 32bit applications. Newer 32bit kernels also
use the same setup. Older 32bit kernels still had an iBCS entry
point in a default LDT, but that has been considered obsolete
for some time and removed.

>
> - Where can I find some documentation about the specifities of x86_64 compared
> to x86_32, particularly about memory management ?
> Perhaps you can (or someone on the list) depict those specificities ?

An somewhat outdated but still reasonable introduction is my old
paper http://halobates.de/x86-64.pdf

-Andi
--
ak@xxxxxxxxxxxxxxx
--
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/