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

From: Dave Jiang
Date: Wed Jun 02 2021 - 11:41:00 EST



On 5/23/2021 4:22 PM, Jason Gunthorpe wrote:
On Fri, May 21, 2021 at 05:19:05PM -0700, Dave Jiang wrote:
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? I think this would work with our dedicated wq where a single mdev can be assigned to a wq. 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.