Jan Beulich
2007-Jan-09 10:21 UTC
[Xen-devel] using PageForeign for pte allocation vs. shortcutting __pte_free_tlb()
In the course of trying to get CONFIG_HIGHPTE to work I stumbled across this inconsistency between i386 and x86-64 Linux: i386 uses SetPageForeign() in (one the non-highpte) case of pte_alloc_one(), and leaves intact native''s definition of __pte_free_tlb(), whereas x86-64 doesn''t use the former but shortcuts the latter to just invoke pte_free(). Obviously it would be nice for these two to be consistent, the question just is which of the two behaviors is more desirable: Obviously, performance wise using the PageForeign mechanism would be preferable, but delta-to-native-wise I would think this is the less desirable solution. Thanks for any thoughts or suggestions, Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Gerd Hoffmann
2007-Jan-09 10:51 UTC
Re: [Xen-devel] using PageForeign for pte allocation vs. shortcutting __pte_free_tlb()
Jan Beulich wrote:> In the course of trying to get CONFIG_HIGHPTE to work I stumbled across this > inconsistency between i386 and x86-64 Linux: i386 uses SetPageForeign() in > (one the non-highpte) case of pte_alloc_one(), and leaves intact native''s > definition of __pte_free_tlb(), whereas x86-64 doesn''t use the former but > shortcuts the latter to just invoke pte_free(). Obviously it would be nice for > these two to be consistent,x86-64 has no HIGHMEM zone, thus CONFIG_HIGHPTE has no effect (I''m surprised it exists in the first place ...). cheers, Gerd -- Gerd Hoffmann <kraxel@suse.de> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jan Beulich
2007-Jan-09 10:58 UTC
Re: [Xen-devel] using PageForeign for pte allocation vs. shortcutting __pte_free_tlb()
>>> Gerd Hoffmann <kraxel@suse.de> 09.01.07 11:51 >>> >Jan Beulich wrote: >> In the course of trying to get CONFIG_HIGHPTE to work I stumbled across this >> inconsistency between i386 and x86-64 Linux: i386 uses SetPageForeign() in >> (one the non-highpte) case of pte_alloc_one(), and leaves intact native''s >> definition of __pte_free_tlb(), whereas x86-64 doesn''t use the former but >> shortcuts the latter to just invoke pte_free(). Obviously it would be nice for >> these two to be consistent, > >x86-64 has no HIGHMEM zone, thus CONFIG_HIGHPTE has no effect (I''m >surprised it exists in the first place ...).Of course (and no, such a config option doesn''t exist for x86-64), but what relation does this have to the question asked? Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Gerd Hoffmann
2007-Jan-09 11:11 UTC
Re: [Xen-devel] using PageForeign for pte allocation vs. shortcutting __pte_free_tlb()
Jan Beulich wrote:>>>> Gerd Hoffmann <kraxel@suse.de> 09.01.07 11:51 >>> >> Jan Beulich wrote: >>> In the course of trying to get CONFIG_HIGHPTE to work I stumbled across this >>> inconsistency between i386 and x86-64 Linux: i386 uses SetPageForeign() in >>> (one the non-highpte) case of pte_alloc_one(), and leaves intact native''s >>> definition of __pte_free_tlb(), whereas x86-64 doesn''t use the former but >>> shortcuts the latter to just invoke pte_free(). Obviously it would be nice for >>> these two to be consistent, >> x86-64 has no HIGHMEM zone, thus CONFIG_HIGHPTE has no effect (I''m >> surprised it exists in the first place ...). > > Of course (and no, such a config option doesn''t exist for x86-64), but what > relation does this have to the question asked?guess (not having looked at the code at all) i386 does that because it needs disturgish high and non-high ptes, whereas x86-64 simply has no need for that, so I don''t see the point in trying to make them consistent ... cheers, Gerd -- Gerd Hoffmann <kraxel@suse.de> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jan Beulich
2007-Jan-09 11:27 UTC
Re: [Xen-devel] using PageForeign for pte allocation vs. shortcutting __pte_free_tlb()
>>> Gerd Hoffmann <kraxel@suse.de> 09.01.07 12:11 >>> >Jan Beulich wrote: >>>>> Gerd Hoffmann <kraxel@suse.de> 09.01.07 11:51 >>> >>> Jan Beulich wrote: >>>> In the course of trying to get CONFIG_HIGHPTE to work I stumbled across this >>>> inconsistency between i386 and x86-64 Linux: i386 uses SetPageForeign() in >>>> (one the non-highpte) case of pte_alloc_one(), and leaves intact native''s >>>> definition of __pte_free_tlb(), whereas x86-64 doesn''t use the former but >>>> shortcuts the latter to just invoke pte_free(). Obviously it would be nice for >>>> these two to be consistent, >>> x86-64 has no HIGHMEM zone, thus CONFIG_HIGHPTE has no effect (I''m >>> surprised it exists in the first place ...). >> >> Of course (and no, such a config option doesn''t exist for x86-64), but what >> relation does this have to the question asked? > >guess (not having looked at the code at all) i386 does that because it >needs disturgish high and non-high ptes, whereas x86-64 simply has no >need for that, so I don''t see the point in trying to make them >consistent ...I''m pretty sure that''s not the reason, partly because CONFIG_HIGHPTE (as indicated here and earlier) isn''t being an option for Xen kernels so far at all, but mostly because as I understand it both mechanisms are ways to remove the write protection before handing a former page table page back to the page allocator (and this requirement is clearly the same on both i386 and x86-64). Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel