On 09/30/2011 12:02 PM, Laine Stump wrote:
(V2: address Daniel Veillard's two review points (don't allow "multifunction='default'", and add "multifunction=off" to the qemu commandline when that's what the XML says), and modify the checks for duplicate PCI address usage attempts to account for multifunction=off on a device's function 0, per IRC discussion with Dan Berrange (see new qemuCollectPCIAddress()). As a side effect, attempts to re-use the same PCI address are now logged rather than silently generating an error.)
Yep, I can see those enhancements over v1.
A side effect of this patch is that attempts to use the same PCI address for two different devices will now log an error (previously this would cause the domain define operation to fail, but there would be no log message generated). Because the function doing this log was almost completely rewritten, I didn't think it worthwhile to make a separate patch for that fix (the entire patch would immediately be obsoleted).
Agree - no easy way to split it.
@@ -1118,10 +1118,14 @@ The<code>type</code> attribute is mandatory, and is typically "pci" or "drive". For a "pci" controller, additional attributes for<code>bus</code>,<code>slot</code>, - and<code>function</code> must be present, as well as an - optional<code>domain</code>. For a "drive" controller, - additional attributes<code>controller</code>,<code>bus</code>, + and<code>function</code> must be present, as well as + optional<code>domain</code> + and<code>multifunction</code><span class="since">since + 0.9.7, requires QEMU 0.13</span> (defaults to 'off'). For a
This wording makes it sound like both domain and multifunction were first introduced in 0.9.7, rather than the intended fact that 'multifunction' is the only newcomer attribute. Maybe reword along the lines of:
...as well as optional 'domain' and 'multifunction'. Multifunction defaults to 'off', any other value requires QEMU 0.13 and <span class="since">libvirt 0.9.7</span>.
+++ b/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.args @@ -1 +1 @@ -LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -device ich9-usb-ehci1,id=usb,bus=pci.0,multifunction=on,addr=0x4.0x7 -device virtio-balloon-pci,id=balloon0,bus=pci.0,multifunction=on,addr=0x3.0x0 +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
These are some rather long lines. While you are touching them, it would be worth splitting them with \-newline pairs to fit in more reasonable limits.
ACK with those nits fixed. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list