All of lore.kernel.org
 help / color / mirror / Atom feed
* sysenter/syscall support for 32-on-64 guests?
@ 2008-02-28 16:49 Jeremy Fitzhardinge
  2008-02-28 17:14 ` Jan Beulich
  0 siblings, 1 reply; 4+ messages in thread
From: Jeremy Fitzhardinge @ 2008-02-28 16:49 UTC (permalink / raw)
  To: Jan Beulich; +Cc: Keir Fraser, Xen-devel, Ian Campbell

I just spent quite a while working out why pvops-Xen kernels weren't 
booting for me in a 64-bit hypervisor.  It turned out to be because 
32-on-64 supports SEP even though 32-on-32 doesn't, so the guest kernel 
was trying to use it without having set up the Xen side, resulting in 
syscalls jumping to 0:0, generating a mysterious GP.  Once I worked that 
out, the fix was simple, of course.

Anyway, I wonder if you had a specific reason for allowing this, other 
than "because we can"?  It seems to me that we should try to minimize 
the number of differences between 32-on-32 and 32-on-64 as much as possible.

    J

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

* Re: sysenter/syscall support for 32-on-64 guests?
  2008-02-28 16:49 sysenter/syscall support for 32-on-64 guests? Jeremy Fitzhardinge
@ 2008-02-28 17:14 ` Jan Beulich
  2008-02-28 20:19   ` Jeremy Fitzhardinge
  2008-02-28 21:22   ` Keir Fraser
  0 siblings, 2 replies; 4+ messages in thread
From: Jan Beulich @ 2008-02-28 17:14 UTC (permalink / raw)
  To: Jeremy Fitzhardinge; +Cc: Keir Fraser, Xen-devel, Ian Campbell

>>> Jeremy Fitzhardinge <jeremy@goop.org> 28.02.08 17:49 >>>
>I just spent quite a while working out why pvops-Xen kernels weren't 
>booting for me in a 64-bit hypervisor.  It turned out to be because 
>32-on-64 supports SEP even though 32-on-32 doesn't, so the guest kernel 
>was trying to use it without having set up the Xen side, resulting in 
>syscalls jumping to 0:0, generating a mysterious GP.  Once I worked that 
>out, the fix was simple, of course.
>
>Anyway, I wonder if you had a specific reason for allowing this, other 
>than "because we can"?  It seems to me that we should try to minimize 
>the number of differences between 32-on-32 and 32-on-64 as much as possible.

Since int80 cannot be directly passed to the guest (as in 32-on-32), it
seemed reasonable to cut on the overhead of syscalls by at least
allowing this (and syscall could also be made work now that the vdso
stuff is unified in 2.6.25) - for obvious reasons it still goes through the
hypervisor, but gets there faster

Jan

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

* Re: sysenter/syscall support for 32-on-64 guests?
  2008-02-28 17:14 ` Jan Beulich
@ 2008-02-28 20:19   ` Jeremy Fitzhardinge
  2008-02-28 21:22   ` Keir Fraser
  1 sibling, 0 replies; 4+ messages in thread
From: Jeremy Fitzhardinge @ 2008-02-28 20:19 UTC (permalink / raw)
  To: Jan Beulich; +Cc: Keir Fraser, Xen-devel, Ian Campbell

Jan Beulich wrote:
> Since int80 cannot be directly passed to the guest (as in 32-on-32), it
> seemed reasonable to cut on the overhead of syscalls by at least
> allowing this (and syscall could also be made work now that the vdso
> stuff is unified in 2.6.25) - for obvious reasons it still goes through the
> hypervisor, but gets there faster
>   

I guess that's a reasonable point.  But it does mean that you'd need to 
separately validate a 32-bit guest on both a 32 and 64-bit hypervisor, 
which is a bit painful.  Maybe you'd need to do that anyway... (Or 
ignore 32-bit hosts.)

    J

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

* Re: Re: sysenter/syscall support for 32-on-64 guests?
  2008-02-28 17:14 ` Jan Beulich
  2008-02-28 20:19   ` Jeremy Fitzhardinge
@ 2008-02-28 21:22   ` Keir Fraser
  1 sibling, 0 replies; 4+ messages in thread
From: Keir Fraser @ 2008-02-28 21:22 UTC (permalink / raw)
  To: Jan Beulich, Jeremy Fitzhardinge; +Cc: Xen-devel, Ian Campbell

On 28/2/08 17:14, "Jan Beulich" <jbeulich@novell.com> wrote:

>> Anyway, I wonder if you had a specific reason for allowing this, other
>> than "because we can"?  It seems to me that we should try to minimize
>> the number of differences between 32-on-32 and 32-on-64 as much as possible.
> 
> Since int80 cannot be directly passed to the guest (as in 32-on-32), it
> seemed reasonable to cut on the overhead of syscalls by at least
> allowing this (and syscall could also be made work now that the vdso
> stuff is unified in 2.6.25) - for obvious reasons it still goes through the
> hypervisor, but gets there faster

Ah yes, I must admit I temporarily forgot you can only target 64-bit code
segments in a long-mode IDT.

 -- Keir

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

end of thread, other threads:[~2008-02-28 21:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-28 16:49 sysenter/syscall support for 32-on-64 guests? Jeremy Fitzhardinge
2008-02-28 17:14 ` Jan Beulich
2008-02-28 20:19   ` Jeremy Fitzhardinge
2008-02-28 21:22   ` Keir Fraser

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.