On 26/11/2018 19:48, Zhenyu Wang wrote: > Hi, > > This is respin of previous sending from https://www.spinics.net/lists/kvm/msg176447.html > > 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 mdev type for that I have a dumb question - what is the resource in this context? Usually it would be something like a PCI BAR but here it yet another virtual GPU instance? Thanks. > 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 > > v2: > - Add new create_with_instances driver hook > - Update doc for new attributes > > v3: > - Rename parameter and attribute names from review > - Make "aggregation" attribute to show maxium resource number > for aggregation > - Check driver hooks for attribute create validation > - Update doc and ABI spec > > v4: > - Rebase > > 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/vfio-mediated-device.txt: 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 | 25 +++++++ > Documentation/vfio-mediated-device.txt | 44 +++++++++-- > 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 | 40 +++++++++- > drivers/vfio/mdev/mdev_private.h | 6 +- > drivers/vfio/mdev/mdev_sysfs.c | 74 ++++++++++++++++++- > include/linux/mdev.h | 19 +++++ > 9 files changed, 305 insertions(+), 23 deletions(-) > -- Alexey