On Thu, 11 Oct 2018 09:14:22 +0800 Zhenyu Wang <zhenyuw@xxxxxxxxxxxxxxx> wrote: > On 2018.10.10 23:22:20 +0000, Tian, Kevin wrote: > > > From: Alex Williamson > > > Sent: Thursday, October 11, 2018 4:39 AM > > > > > > On Tue, 9 Oct 2018 01:40:17 +0530 > > > Kirti Wankhede <kwankhede@xxxxxxxxxx> wrote: > > > > > > > Generally a single instance of mdev device, a share of physical device, is > > > > assigned to user space application or a VM. There are cases when > > > multiple > > > > instances of mdev devices of same or different types are required by user > > > > space application or VM. For example in case of vGPU, multiple mdev > > > devices > > > > of type which represents whole GPU can be assigned to one instance of > > > > application or VM. > > > > > > > > All types of mdev devices may not support assigning multiple mdev > > > devices > > > > to a user space application. In that case vendor driver can fail open() > > > > call of mdev device. But there is no way to know User space application to > > > > about the configuration supported by vendor driver. > > > > > > > > To expose supported configuration, vendor driver should add > > > > 'single_usage_restriction' attribute to type-id directory. Returning Y for > > > > this attribute indicates vendor driver has restriction of single mdev > > > > device of particular <type-id> assigned to one user space application. > > > > Returning N indicates that multiple mdev devices of particular <type-id> > > > > can be assigned to one user space application. > > > > > > > > User space application should read if 'single_usage_restriction' attibute > > > > is present in <type-id> directory of all mdev devices which are going to be > > > > used. If all read N then user space application can proceed with multiple > > > > mdev devices. > > > > > > > > This is optional and readonly attribute. > > > > > > > > Signed-off-by: Kirti Wankhede <kwankhede@xxxxxxxxxx> > > > > Reviewed-by: Neo Jia <cjia@xxxxxxxxxx> > > > > --- > > > > Documentation/ABI/testing/sysfs-bus-vfio-mdev | 16 ++++++++++++++++ > > > > 1 file changed, 16 insertions(+) > > > > > > > > diff --git a/Documentation/ABI/testing/sysfs-bus-vfio-mdev > > > b/Documentation/ABI/testing/sysfs-bus-vfio-mdev > > > > index 452dbe39270e..3aca352a70e5 100644 > > > > --- a/Documentation/ABI/testing/sysfs-bus-vfio-mdev > > > > +++ b/Documentation/ABI/testing/sysfs-bus-vfio-mdev > > > > @@ -85,6 +85,22 @@ Users: > > > > a particular <type-id> that can help in understanding the > > > > features provided by that type of mediated device. > > > > > > > > +What: /sys/.../mdev_supported_types/<type- > > > id>/single_usage_restriction > > > > +Date: October 2018 > > > > +Contact: Kirti Wankhede <kwankhede@xxxxxxxxxx> > > > > +Description: > > > > + Reading this attribute will return Y or N. Returning Y > > > indicates > > > > + vendor driver has restriction of single mdev device of this > > > > + particular <type-id> assigned to one user space application. > > > > + Returning N indicates that multiple mdev devices of > > > particular > > > > + <type-id> can be assigned to one user space application. > > > > + This is optional and readonly attribute. > > > > +Users: > > > > + User space application should read if > > > 'single_usage_restriction' > > > > + attibute is present in <type-id> directory of all mdev devices > > > > + which are going to be used. If all read N then user space > > > > + application can proceed with multiple mdev devices. > > > > > > But we don't say what userspace should do when this optional attribute > > > is not present. Do we know of any cases other than the NVIDIA GRID > > > vGPU drivers that have this restriction? Intel folks, are multiple > > > GVT-g mdevs currently allowed in a VM? I don't think the libvirt > > > algorithm is going to be as simple as suggested here and we should > > > probably understand what it really needs to be. > > > > technically I don't see a restriction in GVT-g side, i.e. multiple GVT-g > > mdevs can be assigned to same VM. But the fact is that Intel GPU is > > integrated thus just one per platform. Then guest i915 driver may have > > problem to operate multiple vGPUs if with some assumption on integrated > > part. I don't think we verified such configuration. Zhenyu? > > > > yeah, as current intel gpu is single device, even guest i915 driver could > operate but user space gfx driver is not ready for multiple devices, so won't > be useful now. The restriction sounds different here though, in the case of NVIDIA it's the mdev vendor driver with the restriction, with Intel I think I'm hearing that it's the guest graphics driver that's the restriction. I don't think we'd want to place an artificial restriction at the mdev layer for a guest driver deficiency that could theoretically be fixed independently from the host mdev vendor driver. Thanks, Alex