* [x86_64] Implementation differences compared to x86_32
@ 2008-10-13 12:26 Eric Lacombe
2008-10-13 13:03 ` Andi Kleen
0 siblings, 1 reply; 3+ messages in thread
From: Eric Lacombe @ 2008-10-13 12:26 UTC (permalink / raw)
To: Jeremy Fitzhardinge; +Cc: linux-kernel
Hi,
Thanks again for all your answers.
I have some new questions with regard to x86_64 specificities.
- 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 ?
- 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.
- 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 ?
Thanks in advance
Eric
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [x86_64] Implementation differences compared to x86_32
2008-10-13 12:26 [x86_64] Implementation differences compared to x86_32 Eric Lacombe
@ 2008-10-13 13:03 ` Andi Kleen
2008-10-13 13:28 ` Eric Lacombe
0 siblings, 1 reply; 3+ messages in thread
From: Andi Kleen @ 2008-10-13 13:03 UTC (permalink / raw)
To: Eric Lacombe; +Cc: Jeremy Fitzhardinge, linux-kernel
Eric Lacombe <tuxiko@free.fr> 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@linux.intel.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [x86_64] Implementation differences compared to x86_32
2008-10-13 13:03 ` Andi Kleen
@ 2008-10-13 13:28 ` Eric Lacombe
0 siblings, 0 replies; 3+ messages in thread
From: Eric Lacombe @ 2008-10-13 13:28 UTC (permalink / raw)
To: Andi Kleen; +Cc: Jeremy Fitzhardinge, linux-kernel
On Monday 13 October 2008 15:03:02 Andi Kleen wrote:
> Eric Lacombe <tuxiko@free.fr> 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)
What are these particular circumstances ?
Eric
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-10-13 13:28 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-13 12:26 [x86_64] Implementation differences compared to x86_32 Eric Lacombe
2008-10-13 13:03 ` Andi Kleen
2008-10-13 13:28 ` Eric Lacombe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox