All of lore.kernel.org
 help / color / mirror / Atom feed
* using PageForeign for pte allocation vs. shortcutting __pte_free_tlb()
@ 2007-01-09 10:21 Jan Beulich
  2007-01-09 10:51 ` Gerd Hoffmann
  0 siblings, 1 reply; 5+ messages in thread
From: Jan Beulich @ 2007-01-09 10:21 UTC (permalink / raw)
  To: xen-devel

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: using PageForeign for pte allocation vs. shortcutting __pte_free_tlb()
  2007-01-09 10:21 using PageForeign for pte allocation vs. shortcutting __pte_free_tlb() Jan Beulich
@ 2007-01-09 10:51 ` Gerd Hoffmann
  2007-01-09 10:58   ` Jan Beulich
  0 siblings, 1 reply; 5+ messages in thread
From: Gerd Hoffmann @ 2007-01-09 10:51 UTC (permalink / raw)
  To: Jan Beulich; +Cc: xen-devel

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>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: using PageForeign for pte allocation vs. shortcutting __pte_free_tlb()
  2007-01-09 10:51 ` Gerd Hoffmann
@ 2007-01-09 10:58   ` Jan Beulich
  2007-01-09 11:11     ` Gerd Hoffmann
  0 siblings, 1 reply; 5+ messages in thread
From: Jan Beulich @ 2007-01-09 10:58 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: xen-devel

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: using PageForeign for pte allocation vs. shortcutting __pte_free_tlb()
  2007-01-09 10:58   ` Jan Beulich
@ 2007-01-09 11:11     ` Gerd Hoffmann
  2007-01-09 11:27       ` Jan Beulich
  0 siblings, 1 reply; 5+ messages in thread
From: Gerd Hoffmann @ 2007-01-09 11:11 UTC (permalink / raw)
  To: Jan Beulich; +Cc: xen-devel

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>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: using PageForeign for pte allocation vs. shortcutting __pte_free_tlb()
  2007-01-09 11:11     ` Gerd Hoffmann
@ 2007-01-09 11:27       ` Jan Beulich
  0 siblings, 0 replies; 5+ messages in thread
From: Jan Beulich @ 2007-01-09 11:27 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: xen-devel

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-01-09 11:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-09 10:21 using PageForeign for pte allocation vs. shortcutting __pte_free_tlb() Jan Beulich
2007-01-09 10:51 ` Gerd Hoffmann
2007-01-09 10:58   ` Jan Beulich
2007-01-09 11:11     ` Gerd Hoffmann
2007-01-09 11:27       ` Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.