Hello all,
I find this curious behavior that libvirt will automatically insert a USB controller and a memballoon virtio driver into the domain’s XML, when defineXML is called. IOW, the original XML did not have these 2 devices but they are present
right after defineXML is called. Why should libvirt add a USB controller?
DETAILS:
Here is a little Python snippet to show that behavior:
import libvirt
conn = libvirt.open('qemu:///system')
xml_list = open('/tmp/vm.xml', "r").readlines()
in_xml = ''.join(xml_list)
ß
This XML string does not have a USB or a memballoon
dom = conn.defineXML(in_xml)
out_xml = dom.XMLDesc()
ß
But this XML string does!
print out_xml
The file /tmp/vm.xml does not have a memballoon or a USB device. Neither, of course, does in_xml string. But out_xml has:
<controller type='usb' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</memballoon>
I don’t see anything in libvirt.conf that explains this. This is libvirt version: 1.2.8, package: 16.el7_1.5 (Red Hat, Inc....). The host is RHEL 7.1.
The memballoon part is understandable once I found:
https://www.redhat.com/archives/libvir-list/2010-August/msg00132.html
However, why should libvirt add a USB controller gratuitously? Is this controllable from the conf file?
Cheers,
Sundar