Re: Note describing poor dcache utilization under high memory pressure

Linus Torvalds (torvalds@transmeta.com)
Tue, 29 Jan 2002 12:08:20 -0800 (PST)


On Tue, 29 Jan 2002, William Lee Irwin III wrote:
>
> On Tue, Jan 29, 2002 at 12:18:42PM +0200, Momchil Velikov wrote:
> > COW at pgd/pmd level is ia32-ism, unlike COW at pte level.
>
> Pain! Well, at least the pte markings dodge the page_add_rmap() bullet.

You can portably mark then non-present, at some higher cost. That choice
would have to be left to the architecture configuration (the same way the
dirty and accessed bits are left to the architecture - some hardware
supports them directly, others have to trap and emulate them)

So if would not be out of the question to have a

pmd_mkrdonly()

function that would (on architectures that do not support it) just remove
the present bit instead of removing the WR bit.

> On Tue, Jan 29, 2002 at 12:18:42PM +0200, Momchil Velikov wrote:
> > PS. Well, the whole pgd/pmd/ptb stuff is ia32-ism, but that's another
> > story.
>
> Perhaps something can be done about that.

The pgd/pmd/pte thing is _not_ a ia32-ism.

A tree-based data structure is very much a generic portable construct, and
is, in fact, the only sane way to maintain VM mappings.

The fact that Linux tries very hard to allow the portable data structure
to be _represented_ using the same data structures that the hardware uses
for the TLB lookup is a separate issue, and mainly helps performance and
TLB coherency. And even then it's not a ia32-ism: every single sane
architecture out there is either soft-fill TLB (in which case a tree is
fine), or already is a tree (ia32, x86-64, alpha, m68k etc).

The others are just stupid aberrations (ie the ppc hash-tables), and can
portably be considered nothing but in-memory TLB's.

However, in order to allow other architectures to share their hardware
page tables with the Linux software VM mappings, we _should_ take their
page walkers into account. It would be a pity if the Linux page table
abstraction was too removed from some machines reality.

Linus

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