Thread (64 messages) 64 messages, 6 authors, 2021-06-11

Re: [PATCH v6 00/20] Add VFIO mediated device support and DEV-MSI support for the idxd driver

From: Jason Gunthorpe <jgg@nvidia.com>
Date: 2021-06-02 23:17:55
Also in: dmaengine, lkml

On Wed, Jun 02, 2021 at 08:40:51AM -0700, Dave Jiang wrote:
On 5/23/2021 4:22 PM, Jason Gunthorpe wrote:
quoted
On Fri, May 21, 2021 at 05:19:05PM -0700, Dave Jiang wrote:
quoted
Introducing mdev types “1dwq-v1” type. This mdev type allows
allocation of a single dedicated wq from available dedicated wqs. After
a workqueue (wq) is enabled, the user will generate an uuid. On mdev
creation, the mdev driver code will find a dwq depending on the mdev
type. When the create operation is successful, the user generated uuid
can be passed to qemu. When the guest boots up, it should discover a
DSA device when doing PCI discovery.

For example of “1dwq-v1” type:
1. Enable wq with “mdev” wq type
2. A user generated uuid.
3. The uuid is written to the mdev class sysfs path:
echo $UUID > /sys/class/mdev_bus/0000\:00\:0a.0/mdev_supported_types/idxd-1dwq-v1/create
4. Pass the following parameter to qemu:
"-device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000:00:0a.0/$UUID"
So the idxd core driver knows to create a "vfio" wq with its own much
machinery but you still want to involve the horrible mdev guid stuff?

Why??
Are you referring to calling mdev_device_create() directly in the mdev
idxd_driver probe? 
No, just call vfio_register_group_dev and forget about mdev.
I think this would work with our dedicated wq where a single mdev
can be assigned to a wq.
Ok, sounds great
However, later on when we need to support shared wq where we can
create multiple mdev per wq, we'll need an entry point to do so. In
the name of making things consistent from user perspective, going
through sysfs seems the way to do it.
Why not use your already very complicated idxd sysfs to do this?

Jason
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help