
On Wed, Mar 04, 2015 at 08:34:26PM +0000, Daniel P. Berrange wrote:
On Thu, Feb 19, 2015 at 10:19:22PM +0100, Marek Marczykowski-Górecki wrote:
On Thu, Feb 19, 2015 at 01:45:52PM -0700, Jim Fehlig wrote:
Marek Marczykowski-Górecki wrote:
Xen have feature of having device model in separate domain (called stub domain). Add a 'type' attribute to 'emulator' element to allow selecting such a configuration.
Or maybe 'mode', describing the mode in which the emulator runs: as a process or as a VM.
Emulator path is still used for qemu running in dom0 (if any). Libxl currently do not allow to select stubdomain path.
That seems to overload a single <emulator>. Would it be better to have multiple <emulators>? E.g.
<emulator>/usr/lib/xen/bin/qemu-system-i386</emulator> <emulator mode='stubdomain'>/usr/lib/xen/bin/stubdom-dm</emulator>
So the existence of <emulator mode='stubdomain'/> would enable this feature? What if someday the default will be to run stubdomain emulator - how the user can disable it in such case?
This suggests to me we need to have two separate controls. First an attribute / element somewhere saying what device mode is used, and the second (optionally) saying what the path to the stubdom emulator is.
eg no stubdomain:
<devices> <emulator>/usr/lib/xen/bin/qemu-system-i386</emulator> ... </devices>
Stubdomain with default path
<devices> <emulator>/usr/lib/xen/bin/qemu-system-i386</emulator> <stubdomain enabled="yes|no"/> </devices>
Stubdomain with custom path
<devices> <emulator>/usr/lib/xen/bin/qemu-system-i386</emulator> <stubdomain enabled="yes|no"> <emulator>/usr/lib/xen/bin/stubdom-dm</emulator> </stubdomain> </devices>
I like this approach :)
We can of course not worry about this 3rd option until libxl actually supports this. So, just implement <stubdomain enabled="yes|no"/> for now. If <stubdomain> is not listed in the XML from the application, the XML post-parse callback can be used by the hypervisor to fill in the default either <stubdomain enabled="yes"/> or <stubdomain enabled="no"/> as appropriate. So that copes with xen changing its default in the future
I see libvirt has cool virTristateBool type, which I will use here. So the lack of <stubdomain> element will mean "use hypervisor default". As in many other places I think. -- Best Regards, Marek Marczykowski-Górecki Invisible Things Lab A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing?