[adding Matthias on cc]
On 05/17/2010 03:07 PM, Chris Lalancette wrote:
On 05/12/2010 11:26 PM, Eric Blake wrote:
> From: Matthias Dahl <mdvirt(a)designassembly.de>
>
> qemu allows the user to choose what io storage api should be used, either the
> default (threads) or native (linux aio) which in the latter case can result in
> better performance.
>
The implementation looks perfectly reasonable. I'm just concerned that the
concept of what we are doing is too qemu specific, though. Basically, I think
what we are trying to model here is the concept of an I/O backend implementation,
correct? Should we maybe change this to be "<iobackend
type='%s'/>", and then
have available enums like:
aiothreads
aionative
...
That way, for other hypervisors that do something different (like VirtualBox,
which just has AIO on/off), we can have additional enums to describe their
behavior. Even further, if a given hypervisor wanted to do something like
"Direct I/O" for the I/O backend (as an example), we could also use this
element
to specify that. What do you think?
Indeed, having a more-generic attribute "type", where only a subset of
known enum values are appropriate per a given hypervisor, makes sense to
me. After all, that's how we treated the <clock> addition in 0.8.0; not
all HV's support all the <timer name="foo"> timers. That is a bigger
rewrite, though, and while we could still complete it in time for 0.8.2,
it becomes much tougher to get it complete this week. If we really want
it now, then I can shepherd those changes through, but I need feedback
from other list members first on whether the proposed <iobackend> makes
more sense.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org