Re: [PATCH v4 0/6] VFIO mdev aggregated resources handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 27/11/2018 13:30, Zhenyu Wang wrote:
> On 2018.11.27 12:20:57 +1100, Alexey Kardashevskiy wrote:
>>
>>
>> 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.
>>
> 
> It's device specific defined by mdev type for each instance, e.g for
> current virtual GPU, it's like GPU mem.


What does aggregate=10 mean for a vGPU? 10 frame buffers? 10 of what? :)
Thanks.



> For SIOV, it's ADI defined for
> each device, e.g queue, context, etc.
> 
>>
>>> 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
> 

-- 
Alexey



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux