On Wed, 21 Sep 2016 04:10:53 +0000
"Tian, Kevin" <kevin.tian(a)intel.com> wrote:
> From: Kirti Wankhede [mailto:kwankhede@nvidia.com]
> Sent: Wednesday, September 21, 2016 12:23 AM
>
>
> On 9/20/2016 8:13 PM, Alex Williamson wrote:
> > On Tue, 20 Sep 2016 19:51:58 +0530
> > Kirti Wankhede <kwankhede(a)nvidia.com> wrote:
> >
> >> On 9/20/2016 3:06 AM, Alex Williamson wrote:
> >>> On Tue, 20 Sep 2016 02:05:52 +0530
> >>> Kirti Wankhede <kwankhede(a)nvidia.com> wrote:
> >>>
> >>>> Hi libvirt experts,
> >>>>
> >>>>
> >>>> 'create':
> >>>> Write-only file. Mandatory.
> >>>> Accepts string to create mediated device.
> >>>>
> >>>> 'name':
> >>>> Read-Only file. Mandatory.
> >>>> Returns string, the name of that type id.
> >>>>
> >>>> 'fb_length':
> >>>> Read-only file. Mandatory.
> >>>> Returns <number>{K,M,G}, size of framebuffer.
> >>>
> >>> This can't be mandatory, it's only relevant to vGPU devices,
vGPUs are
> >>> just one user of mediated devices.
> >>>
> >>
> >> As per our discussion in BOF, we would define class and its attributes.
> >> As I mentioned above these are attributes of "display" class.
> >
> > Just as I didn't know here, how does libvirt know the class of a given
> > type id?
> >
>
> Yes, we need some way to identify the class as Daniel mentioned in his
> suggestion. Add a file 'class' in mdev_supported_types that would return
> the class.
>
>
'display' class or 'gpu' class? display represents only part of GPU
functionalities. I assume you want to provide an unique class ID
for each type, instead of allowing multiple classes each identifying
a subset of controllable GPU resources (e.g. 'display', 'render',
etc.)...
Not sure where you're going with this, we're not creating a programming
interface for the device, that exists through the vfio API. I believe
the intention here is simply a user level classification for the
purpose of being able to interpret the attributes provided in a logical
way.
for unique class ID, I once considered whether it could be directly
inherited from class of parent device, since typically a vendor driver
creates mdev devices using the same type as physical device. But later
I realized one potential value of keep a class field for mdev types,
e.g. if we want to extend mdev to FPGA which could be programmed
as different classes of functionalities. :-)
And how do we generically determine the class of a parent device? We
cannot assume the parent device is PCI. Thanks,
Alex