[libvirt] [PATCH v4 3/6] nodedev: Introduce new mdev_types and mdev nodedev capabilities

John Ferlan jferlan at redhat.com
Wed May 17 20:21:37 UTC 2017



On 05/15/2017 08:10 AM, Erik Skultety wrote:
> The reason for introducing two capabilities, one for the device itself
> (cap 'mdev') and one for the parent device listing the available types
> ('mdev_types'), is that we should be able to do
> 'virsh nodedev-list --cap' not only for existing mdev devices but also
> for devices that support creation of mdev devices, since one day libvirt
> might be actually able to create the mdev devices in an automated way
> (just like we do for NPIV/vHBA).
> 
> Signed-off-by: Erik Skultety <eskultet at redhat.com>
> ---
>  include/libvirt/libvirt-nodedev.h    |  2 ++
>  src/conf/node_device_conf.c          | 10 +++++++++-
>  src/conf/node_device_conf.h          |  6 +++++-
>  src/conf/virnodedeviceobj.c          |  4 +++-
>  src/libvirt-nodedev.c                |  2 ++
>  src/node_device/node_device_driver.c |  2 ++
>  src/node_device/node_device_udev.c   |  3 +++
>  tools/virsh-nodedev.c                |  6 ++++++
>  8 files changed, 32 insertions(+), 3 deletions(-)
> 
> diff --git a/include/libvirt/libvirt-nodedev.h b/include/libvirt/libvirt-nodedev.h
> index 85003903d..1e3043787 100644
> --- a/include/libvirt/libvirt-nodedev.h
> +++ b/include/libvirt/libvirt-nodedev.h
> @@ -79,6 +79,8 @@ typedef enum {
>      VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS        = 1 << 10, /* Capable of vport */
>      VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC  = 1 << 11, /* Capable of scsi_generic */
>      VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM           = 1 << 12, /* DRM device */
> +    VIR_CONNECT_LIST_NODE_DEVICES_CAP_MDEV_TYPES    = 1 << 13, /* Capable of mediated devices */
> +    VIR_CONNECT_LIST_NODE_DEVICES_CAP_MDEV          = 1 << 14, /* Mediated device */
>  } virConnectListAllNodeDeviceFlags;
>  
>  int                     virConnectListAllNodeDevices (virConnectPtr conn,
> diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
> index 7aab2e03c..40d71f277 100644
> --- a/src/conf/node_device_conf.c
> +++ b/src/conf/node_device_conf.c
> @@ -60,7 +60,9 @@ VIR_ENUM_IMPL(virNodeDevCap, VIR_NODE_DEV_CAP_LAST,
>                "fc_host",
>                "vports",
>                "scsi_generic",
> -              "drm")
> +              "drm",
> +              "mdev_types",
> +              "mdev")
>  

Should I mention this is doing two things at one time ;-), nah,
nevermind ;-)

>  VIR_ENUM_IMPL(virNodeDevNetCap, VIR_NODE_DEV_CAP_NET_LAST,
>                "80203",
> @@ -540,6 +542,8 @@ virNodeDeviceDefFormat(const virNodeDeviceDef *def)
>          case VIR_NODE_DEV_CAP_DRM:
>              virBufferEscapeString(&buf, "<type>%s</type>\n", virNodeDevDRMTypeToString(data->drm.type));
>              break;
> +        case VIR_NODE_DEV_CAP_MDEV:
> +        case VIR_NODE_DEV_CAP_MDEV_TYPES:
>          case VIR_NODE_DEV_CAP_FC_HOST:
>          case VIR_NODE_DEV_CAP_VPORTS:
>          case VIR_NODE_DEV_CAP_LAST:
> @@ -1612,6 +1616,8 @@ virNodeDevCapsDefParseXML(xmlXPathContextPtr ctxt,
>      case VIR_NODE_DEV_CAP_DRM:
>          ret = virNodeDevCapDRMParseXML(ctxt, def, node, &caps->data.drm);
>          break;
> +    case VIR_NODE_DEV_CAP_MDEV:
> +    case VIR_NODE_DEV_CAP_MDEV_TYPES:
>      case VIR_NODE_DEV_CAP_FC_HOST:
>      case VIR_NODE_DEV_CAP_VPORTS:
>      case VIR_NODE_DEV_CAP_SCSI_GENERIC:
> @@ -1930,6 +1936,8 @@ virNodeDevCapsDefFree(virNodeDevCapsDefPtr caps)
>      case VIR_NODE_DEV_CAP_SCSI_GENERIC:
>          VIR_FREE(data->sg.path);
>          break;
> +    case VIR_NODE_DEV_CAP_MDEV:
> +    case VIR_NODE_DEV_CAP_MDEV_TYPES:
>      case VIR_NODE_DEV_CAP_DRM:
>      case VIR_NODE_DEV_CAP_FC_HOST:
>      case VIR_NODE_DEV_CAP_VPORTS:
> diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h
> index a5d5cdd2a..273d49f76 100644
> --- a/src/conf/node_device_conf.h
> +++ b/src/conf/node_device_conf.h
> @@ -64,6 +64,8 @@ typedef enum {
>      VIR_NODE_DEV_CAP_VPORTS,		/* HBA which is capable of vports */
>      VIR_NODE_DEV_CAP_SCSI_GENERIC,      /* SCSI generic device */
>      VIR_NODE_DEV_CAP_DRM,               /* DRM device */
> +    VIR_NODE_DEV_CAP_MDEV_TYPES,      /* Device capable of mediated devices */
> +    VIR_NODE_DEV_CAP_MDEV,            /* Mediated device */

Since the comments are aligned vertically, you should follow that too.

When I look at these w/ vim or via gitk, it's obvious that the comments
above are a mix of spaces and tabs to align them (sigh).

Reviewed-by: John Ferlan <jferlan at redhat.com>

John

>  
>      VIR_NODE_DEV_CAP_LAST
>  } virNodeDevCapType;

[...]




More information about the libvir-list mailing list