[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH] Save 64-bit of the IA-32e capable sysenter MSRs
From: |
Alexander Graf |
Subject: |
[Qemu-devel] Re: [PATCH] Save 64-bit of the IA-32e capable sysenter MSRs |
Date: |
Fri, 1 Aug 2008 15:57:45 +0200 |
On Jul 31, 2008, at 12:07 PM, Avi Kivity wrote:
Alexander Graf wrote:
Hi,
When transitioning from KVM to the qemu userspace, we try to get
and push a whole bunch of MSR values, including the SYSENTER ones.
While this is basically a good idea, qemu doesn't know anything
about SYSENTER on x86_64, which is an additional feature only
available on Intel CPUs and thus defines SYSENTER_EIP and
SYSENTER_ESP as 32-bit values.
Because we're saving/restoring the SYSENTER values on transitions
to userspace and the values in env->cpu only hold 32 bits, they get
truncated to 32-bit. The easiest way around this is to widen the
fields to 64 bits. This should not disturb the current
functionality, but allows us to run 32-bit code on x86_64 using VMX.
As this is KVM specific for now, I'll only CC the qemu mailinglist,
but wouldn't encourage qemu to take the patch for now, as it's not
necessary when emulating an AMD CPU.
Applied, thanks. I imagine save/restore support needs updating as
well?
Yes, it does. Thanks for the reminder.
That should go into qemuy btw since maintaining the save/restore
format across forks isn't possible.
I'll just write up a patch that implements IA-32e sysenter in qemu
after vacation. That should fix the KVM issues too. For now it's good
we have a workaround that works in "most cases" at least.
Alex
- [Qemu-devel] Re: [PATCH] Save 64-bit of the IA-32e capable sysenter MSRs,
Alexander Graf <=