[libvirt] [PATCH] expose SR IOV physical/virtual function relationships

Cole Robinson crobinso at redhat.com
Tue Dec 1 16:47:30 UTC 2009


On 12/01/2009 10:33 AM, Dave Allan wrote:
> Attached is a patch that exposes the relationships between physical and 
> virtual functions on SR IOV capable devices.
> 
> Dave
> 

> 
> diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
> index 6003ab1..4b5d17c 100644
> --- a/src/conf/node_device_conf.c
> +++ b/src/conf/node_device_conf.c
> @@ -246,6 +246,7 @@ char *virNodeDeviceDefFormat(virConnectPtr conn,
>  {
>      virBuffer buf = VIR_BUFFER_INITIALIZER;
>      virNodeDevCapsDefPtr caps;
> +    unsigned int i = 0;
>      char *tmp;
> 
>      virBufferAddLit(&buf, "<device>\n");
> @@ -318,6 +319,16 @@ char *virNodeDeviceDefFormat(virConnectPtr conn,
>                                        data->pci_dev.vendor_name);
>              else
>                  virBufferAddLit(&buf, " />\n");
> +            if (data->pci_dev.physical_function) {
> +                virBufferEscapeString(&buf, "    <physical_function>%s</physical_function>\n",
> +                                      data->pci_dev.physical_function);
> +            }
> +            if (data->pci_dev.num_virtual_functions > 0) {
> +                for (i = 0 ; i < data->pci_dev.num_virtual_functions ; i++) {
> +                    virBufferEscapeString(&buf, "    <virtual_function>%s</virtual_function>\n",
> +                                          data->pci_dev.virtual_functions[i]);
> +                }
> +            }
>              break;
>          case VIR_NODE_DEV_CAP_USB_DEV:
>              virBufferVSprintf(&buf, "    <bus>%d</bus>\n", data->usb_dev.bus);

It would be nice to drop a test file in tests/nodedevschemadata, and
update tests/nodedevxml2xmltest.c to make sure the roundtrip define +
dumpxml is working.

Thanks,
Cole




More information about the libvir-list mailing list