RE: [PATCH] vfio/qat: add PCI_IOV dependency

From: Zeng, Xin
Date: Thu May 30 2024 - 22:56:30 EST


On Wednesday, May 29, 2024 1:36 PM, Tian, Kevin <kevin.tian@xxxxxxxxx> wrote:
> To: Zeng, Xin <xin.zeng@xxxxxxxxx>; Arnd Bergmann <arnd@xxxxxxxxxx>;
> Cabiddu, Giovanni <giovanni.cabiddu@xxxxxxxxx>; Alex Williamson
> <alex.williamson@xxxxxxxxxx>; Cao, Yahui <yahui.cao@xxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>; Jason Gunthorpe <jgg@xxxxxxxx>;
> Yishai Hadas <yishaih@xxxxxxxxxx>; Shameer Kolothum
> <shameerali.kolothum.thodi@xxxxxxxxxx>; kvm@xxxxxxxxxxxxxxx; qat-
> linux <qat-linux@xxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx
> Subject: RE: [PATCH] vfio/qat: add PCI_IOV dependency
>
> > From: Zeng, Xin <xin.zeng@xxxxxxxxx>
> > Sent: Wednesday, May 29, 2024 11:11 AM
> >
> > On Wednesday, May 29, 2024 10:25 AM, Tian, Kevin <kevin.tian@xxxxxxxxx>
> > > To: Arnd Bergmann <arnd@xxxxxxxxxx>; Zeng, Xin <xin.zeng@xxxxxxxxx>;
> > > Cabiddu, Giovanni <giovanni.cabiddu@xxxxxxxxx>; Alex Williamson
> > > <alex.williamson@xxxxxxxxxx>; Cao, Yahui <yahui.cao@xxxxxxxxx>
> > > Cc: Arnd Bergmann <arnd@xxxxxxxx>; Jason Gunthorpe <jgg@xxxxxxxx>;
> > > Yishai Hadas <yishaih@xxxxxxxxxx>; Shameer Kolothum
> > > <shameerali.kolothum.thodi@xxxxxxxxxx>; kvm@xxxxxxxxxxxxxxx; qat-
> > > linux <qat-linux@xxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx
> > > Subject: RE: [PATCH] vfio/qat: add PCI_IOV dependency
> > >
> > > > From: Arnd Bergmann <arnd@xxxxxxxxxx>
> > > > Sent: Tuesday, May 28, 2024 8:05 PM
> > > >
> > > > From: Arnd Bergmann <arnd@xxxxxxxx>
> > > >
> > > > The newly added driver depends on the crypto driver, but it uses
> > exported
> > > > symbols that are only available when IOV is also turned on:
> > >
> > > at a glance those undefined symbols don't use any symbol under
> > > IOV. They are just wrappers to certain callbacks registered by
> > > by respective qat drivers which support migration.
> > >
> > > Probably they'd better be moved out of CONFIG_PCI_IOV in
> > > "drivers/crypto/intel/qat/qat_common/Makefile" to remove
> > > this dependency in vfio variant driver.
> > >
> >
> > Thanks, Kevin :-). This dependency is like the relationship between the QAT
> > vfio
> > variant driver and macro CRYPTO_DEV_QAT_4XXX. The variant driver
> doesn't
> > directly reference the symbols exported by module qat_4xxx which is
> > protected
> > by CRYPTO_DEV_QAT_4XXX, but requires the module qat_4xxx at runtime
> so
> > far.
> > Alex suggested to put CRYPTO_DEV_QAT_4XXX as the dependency of this
> > variant
> > driver.
> > For CONFIG_PCI_IOV, if it is disabled, this variant driver doesn't serve the
> > user as
> > well since no VFs will be created by QAT PF driver. To keep the consistency,
> it
> > might
> > be right to make it as the dependency of this variant driver as Arnd pointed
> > out.
> > What do you think?
> >
>
> Following this rationale then we need also make PCI_IOV a dependency
> for mlx5 and hisilicon given they are for VF migration too?

After more thoughts about this, I would agree with your first point that
PCI_IOV should not be the dependency of the variant driver if we consider
passthrough VFs in a nested virtualized environment.
So decoupling PCI_IOV from migration helpers in QAT PF driver sounds a
better option.

Thanks,
Xin