Re: [PATCH 2/2] x86: Bail out on unemulated instructions

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

 



 On 08/15/2010 03:43 PM, Mohammed Gamal wrote:
2010/8/15 Gleb Natapov<gleb@xxxxxxxxxx>:
On Sun, Aug 15, 2010 at 03:40:00PM +0300, Mohammed Gamal wrote:
On Sun, Aug 15, 2010 at 10:32 AM, Gleb Natapov<gleb@xxxxxxxxxx>  wrote:
On Sat, Aug 14, 2010 at 06:51:34PM +0300, Mohammed Gamal wrote:
If emulation fails due to the instruction being unemulated. Return immediately
instead of restarting the instruction and infinitely trying to execute it.

This is already handled correctly as far as I can see. Sometimes
instruction should be retried and reexecute_instruction() checks
for that case. If instruction emulation fails in big real mode
re-executing instruction will be useless though, so what should be done
is to make reexecute_instruction() return false if vcpu is in big real
mode and cpu relies on emulation to handle it.
We don't have a separate mode for big real mode. The emulation modes
we have are real and vm86

That doesn't makes the patch right. So we will have to figure something
out.
True. Can we do it for real mode in general (i.e. X86EMUL_MODE_REAL)?

We can do it conditionally for CPL=0. That includes real mode (and excludes vm86).

However, there's a race involved (see a895e576cfd96). I don't see how we can call handle_emulation_failure() without opening the race again.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux