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

Re: [Xen-devel] [PATCH] Calculate correct instruction length for data-fault VM exits on VT-x systems




On 28 Apr 2006, at 02:52, Khoa Huynh wrote:

It should be noted that VMX only uses this instrlen
function when the hypervisor needs the instruction-length
info and that info is undefined in VMCS, e.g., for MMIO
instructions.  In other cases where the instruction-length
field is valid in VMCS, the hypervisor continues to get
that info from VMCS (via vmread operation).

I don't believe we need the instruction-length at all, and I suspect that the decoder could be removed from hvm/svm entirely. There are two broad categories of instruction I'm thinking of: 1. Instructions with their own VMEXIT reason code tend to be really simple so we know their length anyway and, if not, the instr-length field should be valid 2. For mmio instructions, the emulator can work out the length for itself and increment eip appropriately. There's no need to know the instruction length in advance of invoking the emulator.

I guess there may be one or two instructions, particularly on AMD, where we aren't feeding the instruction to the mmio emulator and the instruction isn't fixed length, so perhaps we'll need a small decoder in hvm/svm for those. But even if so, it could be much simpler than what is there right now.

 -- Keir


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.