[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] x86-64 machine_to_phys vs NX bit



On 13/11/06 8:07 am, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:

>> There was a bug in my previous patch. (There's nothing like trying to
>> get to sleep and realizing you've screwed up.) The x86 pae
>> PHYSICAL_PAGE_MASK I defined was incorrect because PAGE_MASK was only a
>> long. I hope I haven't done anything else wrong.
> 
> I don't think this is correct - machine_to_phys() translates a machine address
> to a physical one, and in that translation the upper bits matter only as much
> as mfn_to_pfn() should return an invalid indicator if any of them is set. In
> turn,
> it should be the caller's responsibility to make sure the NX bit (and any
> potential
> other one being set beyond bit 52) gets masked off *before* calling this
> function. (Specifically, the preserving of the lower bits is to properly
> translate
> a non-page aligned address, not to preserve attribute bits read from a page
> table entry).

Yes, we should keep the old machine_to_phys() definition and rename John's
new version as pte_machine_to_phys(). The latter should be used in all
contexts where machine_to_phys() currently operates on a pte (that's most of
its uses, actually). This is a worthwhile cleanup and clarification. Could
you respin the patch, John?

 Thanks,
 Keir



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.