mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-10 07:20:02 +00:00
9363c1cb69
Xen only supports a single type of PCI hostdev assignment, so it is superfluous to have <driver name='xen'/> peppered throughout the config. It *is* necessary to have the driver type explicitly set in the hostdev object before calling into the hypervisor-agnostic "hostdev manager" though (otherwise the hostdev manager doesn't know whether it should do Xen-specific setup, or VFIO-specific setup). Historically, the Xen driver has checked for "default" driver name (i.e. not set in the XML), and set it to "xen', during the XML postparse, thus guaranteeing that it will be set by the time the object is sent to the hostdev manager at runtime, but also setting it so early that a simple round-trip of parse-format results in the XML always containing an explicit <driver name='xen'/>, even if that wasn't specified in the original XML. The QEMU driver *doesn't* set driver.name during postparse though; instead, it waits until domain startup time (or device attach time for hotplug), and sets the driver.name then. The result is that a parse-format round trip of the XML in the QEMU driver *doesn't* add in the <driver name='vfio'/>. This patch modifies the Xen driver to behave similarly to the QEMU driver - the PostParse just checks for a driver.name that isn't supported by the Xen driver, and any explicit setting to "xen" is deferred until domain runtime rather than during the postparse, thus Xen domain XML also doesn't get extraneous <driver name='xen'/>. This delayed setting of driver.name of course results in slightly different xml2xml parse-format results, so the unit test data is modified accordingly. Signed-off-by: Laine Stump <laine@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
70 lines
2.1 KiB
XML
70 lines
2.1 KiB
XML
<domain type='xen'>
|
|
<name>test</name>
|
|
<uuid>cc2315e7-d26a-307a-438c-6d188ec4c09c</uuid>
|
|
<memory unit='KiB'>391168</memory>
|
|
<currentMemory unit='KiB'>358400</currentMemory>
|
|
<vcpu placement='static'>1</vcpu>
|
|
<os>
|
|
<type arch='x86_64' machine='xenfv'>hvm</type>
|
|
<loader type='rom'>/usr/lib/xen/boot/hvmloader</loader>
|
|
<boot dev='hd'/>
|
|
</os>
|
|
<features>
|
|
<acpi/>
|
|
<apic/>
|
|
<pae/>
|
|
</features>
|
|
<clock offset='variable' adjustment='0' basis='utc'/>
|
|
<on_poweroff>destroy</on_poweroff>
|
|
<on_reboot>destroy</on_reboot>
|
|
<on_crash>destroy</on_crash>
|
|
<devices>
|
|
<emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
|
|
<disk type='block' device='disk'>
|
|
<driver name='phy' type='raw'/>
|
|
<source dev='/dev/sda8'/>
|
|
<target dev='hda' bus='ide'/>
|
|
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
|
</disk>
|
|
<disk type='block' device='cdrom'>
|
|
<driver name='phy' type='raw'/>
|
|
<target dev='hdc' bus='ide'/>
|
|
<readonly/>
|
|
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
|
|
</disk>
|
|
<controller type='xenbus' index='0'/>
|
|
<controller type='ide' index='0'/>
|
|
<interface type='bridge'>
|
|
<mac address='00:16:3e:0a:7b:39'/>
|
|
<source bridge='xenbr0'/>
|
|
<script path='vif-bridge'/>
|
|
<model type='e1000'/>
|
|
</interface>
|
|
<serial type='pty'>
|
|
<target port='0'/>
|
|
</serial>
|
|
<console type='pty'>
|
|
<target type='serial' port='0'/>
|
|
</console>
|
|
<input type='mouse' bus='ps2'/>
|
|
<input type='keyboard' bus='ps2'/>
|
|
<graphics type='vnc' port='-1' autoport='yes'>
|
|
<listen type='address'/>
|
|
</graphics>
|
|
<video>
|
|
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
|
|
</video>
|
|
<hostdev mode='subsystem' type='pci' managed='no'>
|
|
<source>
|
|
<address domain='0x0001' bus='0x0c' slot='0x1b' function='0x2'/>
|
|
</source>
|
|
</hostdev>
|
|
<hostdev mode='subsystem' type='pci' managed='no'>
|
|
<source>
|
|
<address domain='0x0000' bus='0x01' slot='0x13' function='0x0'/>
|
|
</source>
|
|
</hostdev>
|
|
<memballoon model='xen'/>
|
|
</devices>
|
|
</domain>
|