On 2019.11.07 20:37:49 +0000, Parav Pandit wrote: > Hi, > > > -----Original Message----- > > From: kvm-owner@xxxxxxxxxxxxxxx <kvm-owner@xxxxxxxxxxxxxxx> On Behalf > > Of Zhenyu Wang > > Sent: Thursday, October 24, 2019 12:08 AM > > To: kvm@xxxxxxxxxxxxxxx > > Cc: alex.williamson@xxxxxxxxxx; kwankhede@xxxxxxxxxx; > > kevin.tian@xxxxxxxxx; cohuck@xxxxxxxxxx > > Subject: [PATCH 0/6] VFIO mdev aggregated resources handling > > > > Hi, > > > > This is a refresh for previous send of this series. I got impression that some > > SIOV drivers would still deploy their own create and config method so stopped > > effort on this. But seems this would still be useful for some other SIOV driver > > which may simply want capability to aggregate resources. So here's refreshed > > series. > > > > Current mdev device create interface depends on fixed mdev type, which get > > uuid from user to create instance of mdev device. If user wants to use > > customized number of resource for mdev device, then only can create new > Can you please give an example of 'resource'? > When I grep [1], [2] and [3], I couldn't find anything related to ' aggregate'. The resource is vendor device specific, in SIOV spec there's ADI (Assignable Device Interface) definition which could be e.g queue for net device, context for gpu, etc. I just named this interface as 'aggregate' for aggregation purpose, it's not used in spec doc. Thanks > > > mdev type for that which may not be flexible. This requirement comes not only > > from to be able to allocate flexible resources for KVMGT, but also from Intel > > scalable IO virtualization which would use vfio/mdev to be able to allocate > > arbitrary resources on mdev instance. More info on [1] [2] [3]. > > > > To allow to create user defined resources for mdev, it trys to extend mdev > > create interface by adding new "aggregate=xxx" parameter following UUID, for > > target mdev type if aggregation is supported, it can create new mdev device > > which contains resources combined by number of instances, e.g > > > > echo "<uuid>,aggregate=10" > create > > > > VM manager e.g libvirt can check mdev type with "aggregation" attribute > > which can support this setting. If no "aggregation" attribute found for mdev > > type, previous behavior is still kept for one instance allocation. And new sysfs > > attribute "aggregated_instances" is created for each mdev device to show > > allocated number. > > > > References: > > [1] https://software.intel.com/en-us/download/intel-virtualization-technology- > > for-directed-io-architecture-specification > > [2] https://software.intel.com/en-us/download/intel-scalable-io-virtualization- > > technical-specification > > [3] https://schd.ws/hosted_files/lc32018/00/LC3-SIOV-final.pdf > > > > Zhenyu Wang (6): > > vfio/mdev: Add new "aggregate" parameter for mdev create > > vfio/mdev: Add "aggregation" attribute for supported mdev type > > vfio/mdev: Add "aggregated_instances" attribute for supported mdev > > device > > Documentation/driver-api/vfio-mediated-device.rst: Update for > > vfio/mdev aggregation support > > Documentation/ABI/testing/sysfs-bus-vfio-mdev: Update for vfio/mdev > > aggregation support > > drm/i915/gvt: Add new type with aggregation support > > > > Documentation/ABI/testing/sysfs-bus-vfio-mdev | 24 ++++++ > > .../driver-api/vfio-mediated-device.rst | 23 ++++++ > > drivers/gpu/drm/i915/gvt/gvt.c | 4 +- > > drivers/gpu/drm/i915/gvt/gvt.h | 11 ++- > > drivers/gpu/drm/i915/gvt/kvmgt.c | 53 ++++++++++++- > > drivers/gpu/drm/i915/gvt/vgpu.c | 56 ++++++++++++- > > drivers/vfio/mdev/mdev_core.c | 36 ++++++++- > > drivers/vfio/mdev/mdev_private.h | 6 +- > > drivers/vfio/mdev/mdev_sysfs.c | 79 ++++++++++++++++++- > > include/linux/mdev.h | 19 +++++ > > 10 files changed, 294 insertions(+), 17 deletions(-) > > > > -- > > 2.24.0.rc0 > -- Open Source Technology Center, Intel ltd. $gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
Attachment:
signature.asc
Description: PGP signature