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

[Xen-devel] Re: Re-using the x86_emulate_memop() to perform MMIO for HVM.




On 3 May 2006, at 15:50, Petersson, Mats wrote:

A third, easier, but less pleasing way to solve it would be retain the
current two decode/emulate code-paths, and just add everythign twice
when new scenarios are needed to be decoded - I don't quite like this
idea, but it certainly is the least amount of effort to implement!

Thoughts and comments (aside from the obvious "You should have thought
about this earlier!" ;-) would be welcome...

We need an emulator both in Xen and in the device model. The current split decode-emulate is pretty barking. My plan for now would be to copy x86_emulate.c and plumb it into qemu-dm: so we do duplicate the code but it's actually only one source file to maintain.

So, Xen would take the page fault and look up the corresponding mmio area. If it's an area corresponding to a device emulated by qemu-dm then Xen hands off the entire problem. It does not bother to decode the instruction at all. Instead it stuffs register state into the shared memory area and hands off to qemu-dm in dom0.

There are plans afoot to try using the full qemu cpu emulator. Done well, that would provide fuller and faster emulation, but there is a bigger up-front cost to getting that plumbed in correctly and even if someone runs with this plan I don't see it being completed to a high degree of robustness in the very near future.

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