On Thu, Aug 04, 2016 at 12:33:54AM +0530, Kirti Wankhede wrote: > diff --git a/Documentation/vfio-mediated-device.txt b/Documentation/vfio-mediated-device.txt > new file mode 100644 > index 000000000000..029152670141 > --- /dev/null > +++ b/Documentation/vfio-mediated-device.txt > @@ -0,0 +1,235 @@ > +Mediated device management interface via sysfs > +------------------------------------------------------------------------------- > +This is the interface that allows user space software, like libvirt, to query > +and configure mediated device in a HW agnostic fashion. This management > +interface provide flexibility to underlying physical device's driver to support > +mediated device hotplug, multiple mediated devices per virtual machine, multiple > +mediated devices from different physical devices, etc. A key point from the libvirt POV is that we want to be able to use the sysfs interfaces without having to write vendor specific custom code for each vendor's hardware. > +Under per-physical device sysfs: > +-------------------------------- > + > +* mdev_supported_types: (read only) > + List the current supported mediated device types and its details. This really ought to describe the data format that is to be reported, as from libvirt POV we don't want to see every vendor's driver reporting arbitrarily different information here. > +* mdev_create: (write only) > + Create a mediated device on target physical device. > + Input syntax: <UUID:idx:params> > + where, > + UUID: mediated device's UUID > + idx: mediated device index inside a VM > + params: extra parameters required by driver There's no specification about what 'params' is - it just looks like an arbitrary vendor specific blob, which is not something that's particularly pleasant to use. How would a userspace application discover what parameters exist, and whether they are required to be passed, vs optional, and standardization of those parameters across different vendors's vGPU drivers so we don't have each vendor doing something different. > + Example: > + # echo "12345678-1234-1234-1234-123456789abc:0:0" > > + /sys/bus/pci/devices/0000\:05\:00.0/mdev_create > + > +* mdev_destroy: (write only) > + Destroy a mediated device on a target physical device. > + Input syntax: <UUID:idx> > + where, > + UUID: mediated device's UUID > + idx: mediated device index inside a VM > + Example: > + # echo "12345678-1234-1234-1234-123456789abc:0" > > + /sys/bus/pci/devices/0000\:05\:00.0/mdev_destroy Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html