Re: [PATCH 5/9] [VMX] Do not re-execute INTn instruction.

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

 



Gleb Natapov wrote:
+	u8 event_exit_inst_len;
+
Can we simply read the field when we need, instead of a new field?

Usually relying on vm exit information to be valid before vm entry
is wrong because migration can happen in a meantime. In this particular
case it is not so obvious since we don't want to migrate pending soft
interrupt, but re-execute instruction instead (we could migrate it
theoretically and may be we should, but when migrating from AMD to
Intel we don't have this info anyway). Another case where instruction
length as read from vmx may be outdated at interrupt injection time is
if exception happened during interrupt delivery and exception should be
re-injected first.

Note that in some cases we do keep things in vmcs/vmcb fields -- the registers, segments, etc. This is because we have per-vendor accessors for them, so we maintain a "virtual data structure" that common code can access.

We could do something similar with the interrupt queue - keep part of it in the vmcs/vmcb and use accessors to modify it. But I don't think it's worthwhile; for vmx we have to read and write it anyway (since, unlike the registers, the exit and entry fields are different) and for svm it's in memory anyway so reading and writing it back is very cheap.

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.

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