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/