On 06/17/2009 12:18 PM, Mark McLoughlin wrote: > On Wed, 2009-06-17 at 12:03 +0300, Avi Kivity wrote: > >> On 06/17/2009 11:33 AM, Mark McLoughlin wrote: >> >>>> I particularly don't like the idea of arcane machine-dependent slot >>>> allocation knowledge living in libvirt, because it needs to be in Qemu >>>> anyway for non-libvirt users. No point in having two implementations >>>> of something tricky and likely to have machine quirks, if one will do. >>>> >>> Indeed. >>> >> I don't understand this. >> > > Take note of the "arcane machine-dependent slot allocation knowledge" > bit. > > If the algorithm in for management apps is as simple as "query qemu for > available slots and sequentially allocate slots", then that's perfectly > fine. > That's the thinking. > If management apps need to hard-code which slots are available on > different targets and different qemu versions, or restrictions on which > devices can use which slots, or knowledge that some devices can be > multi-function, or ... anything like that is just lame. > You can't abstract these things away. If you can't put a NIC in slot 4, and you have 7 slots, then you cannot have 7 NICs. Having qemu allocate the slot numbers does not absolve management from knowing this limitation and preventing the user from creating a machine with 7 slots. Likewise, management will have to know which devices are multi-function, since that affects their hotpluggability. Ditto if some slot if faster than others, if you want to make use of this information you have to let the upper layers know. It could be done using an elaborate machine description that qemu exposes to management coupled with a constraint solver that optimizes the machine layout according to user specifications and hardware limitations. Or we could take the view that real life is not perfect (especially where computers are involved), add some machine specific knowledge, and spend the rest of the summer at the beach. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization