|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] asm/page.h inconsistencies?
On 6 Jan 2006, at 13:29, Jan Beulich wrote:
Could anyone explain the non-symmetric implementation of
__pte/__pmd/__pud/__pgd compared to pte_val/pmd_val/pud_val/pgd_val on
x86-64? On i386, the "... & 1" is consistently used across all of
these,
but on x86-64 only the __pte/pte_val pair does so.
We only ever test '& 1' in pte_val(). In higher-level *_val functions
we need not limit the test to bit 0 (because an unused page directory
entry is always 0 in Linux) and also we *cannot* limit the test to bit
0 (at least for pmd_val()) because Xen will silently temporarily remove
_PAGE_PRESENT from page directory entries as part of the
writable-pagetable implementation.
It is certainly arguable that the __pgd/__pud/__pmd macros should do
the same test as the corresponding *_val function, for symmetry, but
neither xen/i386 nor xen/x86_64 is symmetric right now (at least in
xen-unstable.hg).
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|