2004-10-13 03:42:53

by Albert Cahalan

[permalink] [raw]
Subject: Re: 4level page tables for Linux II

Hmmm...

pml4, pgd, pmd, pte (kernel names)
PML4E, PDPE, PDE, PTE (AMD hardware names)

It's kind of a mess, isn't it? It was bad enough
with the "pmd" (page middle directory, ugh) being
some random invention and everything being generally
in conflict with real hardware naming. Now you've
come up with a fourth name.

Notice that you've resorted to using a number.
Why not do that for the others too? It would
bring some order to this ever-growing collection
of arbitrary names. Like this:

pd4, pd3, pd2, pd1



2004-10-13 07:23:21

by Andi Kleen

[permalink] [raw]
Subject: Re: 4level page tables for Linux II

On 12 Oct 2004 23:36:40 -0400
Albert Cahalan <[email protected]> wrote:

> Hmmm...
>
> pml4, pgd, pmd, pte (kernel names)
> PML4E, PDPE, PDE, PTE (AMD hardware names)

No actually a PML4E is a PML4 _E_ntry in the AMD/Intel docs.
PML4 is the official name for the fourth level page.

> It's kind of a mess, isn't it? It was bad enough
> with the "pmd" (page middle directory, ugh) being
> some random invention and everything being generally
> in conflict with real hardware naming. Now you've
> come up with a fourth name.
>
> Notice that you've resorted to using a number.

I just followed AMD.

> Why not do that for the others too? It would
> bring some order to this ever-growing collection
> of arbitrary names. Like this:

I don't think it makes sense to break code unnecessarily.

And when you cannot remember the few names for the level you
better shouldn't touch VM at all.

-Andi

2004-10-13 21:49:18

by Albert Cahalan

[permalink] [raw]
Subject: Re: 4level page tables for Linux II

On Wed, 2004-10-13 at 03:22, Andi Kleen wrote:
> On 12 Oct 2004 23:36:40 -0400
> Albert Cahalan <[email protected]> wrote:
>
> > Hmmm...
> >
> > pml4, pgd, pmd, pte (kernel names)
> > PML4E, PDPE, PDE, PTE (AMD hardware names)
>
> No actually a PML4E is a PML4 _E_ntry in the AMD/Intel docs.
> PML4 is the official name for the fourth level page.
>
> > It's kind of a mess, isn't it? It was bad enough
> > with the "pmd" (page middle directory, ugh) being
> > some random invention and everything being generally
> > in conflict with real hardware naming. Now you've
> > come up with a fourth name.
> >
> > Notice that you've resorted to using a number.
>
> I just followed AMD.
>
> > Why not do that for the others too? It would
> > bring some order to this ever-growing collection
> > of arbitrary names. Like this:
>
> I don't think it makes sense to break code unnecessarily.
>
> And when you cannot remember the few names for the level you
> better shouldn't touch VM at all.

One of the reasons that Linux is so hackable is that
crummy names get changed. Here too, the old names are bad.

An old example: we use copy_from_user now, not copy_fromfs.
Don't you agree that this is an improvement? It broke code
unnecessarily, but Linus did it anyway. Linux would be a
lot less readable if it had screwy names everywhere.

Perhaps you shouldn't touch kernel code if you can't
remember that copy_fromfs is unrelated to fs code.
Still, why make things difficult? The less effort you
waste remembering stupid names, the more you can spare
for writing great code.