[x86_64] Implementation differences compared to x86_32 - Kernel

This is a discussion on [x86_64] Implementation differences compared to x86_32 - 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 ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: [x86_64] Implementation differences compared to x86_32

  1. [x86_64] Implementation differences compared to x86_32

    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
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. Re: [x86_64] Implementation differences compared to x86_32

    Eric Lacombe 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
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  3. Re: [x86_64] Implementation differences compared to x86_32

    On Monday 13 October 2008 15:03:02 Andi Kleen wrote:
    > Eric Lacombe 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

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread