[libvirt] [PATCH v2 9/9] pci: Add debug messages when unbinding from stub driver
John Ferlan
jferlan at redhat.com
Wed Jan 27 00:00:13 UTC 2016
On 01/25/2016 11:21 AM, Andrea Bolognani wrote:
> Unbinding a PCI device from the stub driver can require several steps,
> and it can be useful for debugging to be able to trace which of these
> steps are performed and which are skipped for each device.
> ---
> src/util/virpci.c | 22 ++++++++++++++++++----
> 1 file changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/src/util/virpci.c b/src/util/virpci.c
> index f56dbe6..51a3f88 100644
> --- a/src/util/virpci.c
> +++ b/src/util/virpci.c
> @@ -1106,26 +1106,37 @@ virPCIDeviceUnbindFromStub(virPCIDevicePtr dev)
>
> if (!driver) {
> /* The device is not bound to any driver and we are almost done. */
> + VIR_DEBUG("PCI device %s is not bound to any driver", dev->name);
> goto reprobe;
> }
>
> - if (!dev->unbind_from_stub)
> + if (!dev->unbind_from_stub) {
> + VIR_DEBUG("Unbind from stub skipped for PCI device %s", dev->name);
> goto remove_slot;
> + }
>
> /* If the device isn't bound to a known stub, skip the unbind. */
> if (virPCIStubDriverTypeFromString(driver) < 0 ||
> - virPCIStubDriverTypeFromString(driver) == VIR_PCI_STUB_DRIVER_NONE)
> + virPCIStubDriverTypeFromString(driver) == VIR_PCI_STUB_DRIVER_NONE) {
> + VIR_DEBUG("Unbind from stub skipped for PCI device %s because of "
> + "unknown stub driver", dev->name);
> goto remove_slot;
> + }
>
> - VIR_DEBUG("Found stub driver %s", driver);
> + VIR_DEBUG("Found stub driver %s for PCI device %s", driver, dev->name);
> + VIR_DEBUG("Unbinding PCI device %s", dev->name);
Redundant - How about "Found stub driver %s to unbind PCI device %s" or
"Unbinding PCI device %s for stub driver %s" (don't forget to change
order of args ;-))
IOW: No need to have two messages.
Hope they help some day!
ACK -
John
>
> if (virPCIDeviceUnbind(dev) < 0)
> goto cleanup;
> dev->unbind_from_stub = false;
>
> remove_slot:
> - if (!dev->remove_slot)
> + if (!dev->remove_slot) {
> + VIR_DEBUG("Slot removal skipped for PCI device %s", dev->name);
> goto reprobe;
> + }
> +
> + VIR_DEBUG("Removing slot for PCI device %s", dev->name);
>
> /* Xen's pciback.ko wants you to use remove_slot on the specific device */
> if (!(path = virPCIDriverFile(driver, "remove_slot")))
> @@ -1141,10 +1152,13 @@ virPCIDeviceUnbindFromStub(virPCIDevicePtr dev)
>
> reprobe:
> if (!dev->reprobe) {
> + VIR_DEBUG("Reprobe skipped for PCI device %s", dev->name);
> result = 0;
> goto cleanup;
> }
>
> + VIR_DEBUG("Reprobing for PCI device %s", dev->name);
> +
> /* Trigger a re-probe of the device is not in the stub's dynamic
> * ID table. If the stub is available, but 'remove_id' isn't
> * available, then re-probing would just cause the device to be
>
More information about the libvir-list
mailing list