
From: Kirti Wankhede [mailto:kwankhede@nvidia.com] Sent: Tuesday, September 20, 2016 4:36 AM
Hi libvirt experts,
Thanks for valuable input on v1 version of RFC.
Quick brief, VFIO based mediated device framework provides a way to virtualize their devices without SR-IOV, like NVIDIA vGPU, Intel KVMGT and IBM's channel IO. This framework reuses VFIO APIs for all the functionalities for mediated devices which are currently being used for pass through devices. This framework introduces a set of new sysfs files for device creation and its life cycle management.
Here is the summary of discussion on v1: 1. Discover mediated device: As part of physical device initialization process, vendor driver will register their physical devices, which will be used to create virtual device (mediated device, aka mdev) to the mediated framework.
Vendor driver should specify mdev_supported_types in directory format. This format is class based, for example, display class directory format should be as below. We need to define such set for each class of devices which would be supported by mediated device framework.
--- mdev_destroy --- mdev_supported_types |-- 11 | |-- create | |-- name | |-- fb_length | |-- resolution | |-- heads | |-- max_instances | |-- params | |-- requires_group |-- 12 | |-- create | |-- name | |-- fb_length | |-- resolution | |-- heads | |-- max_instances | |-- params | |-- requires_group |-- 13 |-- create |-- name |-- fb_length |-- resolution |-- heads |-- max_instances |-- params |-- requires_group
Per previous discussion, I'd think below layout is more general and clearer: --- mdev_supported_types |-- ID (or name) | |-- create | |-- available_instances | |-- requires_group |-- ID (or name) | |-- create | |-- available_instances | |-- requires_group ... Then under each mdev directory: |-- type (link to type directory) |-- destroy |-- online |-- reset |-- Destroy Group association may be done under mdev directory too, per Alex's earlier suggestion. Optional vendor-agnostic attributes can be extended in the future, e.g.: |-- priority |-- weight Vendor-specific or class-specific parameters (black string or explicit attributes) could be also extended per-mdev directory, if necessary to support. Thanks Kevin