Re: [PATCH v8 8/9] hisi_acc_vfio_pci: Add support for VFIO live migration

From: Alex Williamson
Date: Fri Mar 04 2022 - 15:40:30 EST


On Fri, 4 Mar 2022 20:36:24 +0000
Shameerali Kolothum Thodi <shameerali.kolothum.thodi@xxxxxxxxxx> wrote:

> > -----Original Message-----
> > From: Alex Williamson [mailto:alex.williamson@xxxxxxxxxx]
> > Sent: 04 March 2022 19:44
> > To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@xxxxxxxxxx>
> > Cc: kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > linux-crypto@xxxxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx; jgg@xxxxxxxxxx;
> > cohuck@xxxxxxxxxx; mgurtovoy@xxxxxxxxxx; yishaih@xxxxxxxxxx;
> > liulongfang <liulongfang@xxxxxxxxxx>; Zengtao (B)
> > <prime.zeng@xxxxxxxxxxxxx>; Jonathan Cameron
> > <jonathan.cameron@xxxxxxxxxx>; Wangzhou (B) <wangzhou1@xxxxxxxxxxxxx>
> > Subject: Re: [PATCH v8 8/9] hisi_acc_vfio_pci: Add support for VFIO live
> > migration
> >
> > On Fri, 4 Mar 2022 08:48:27 +0000
> > Shameerali Kolothum Thodi <shameerali.kolothum.thodi@xxxxxxxxxx>
> > wrote:
> >
> > > Hi Alex,
> > >
> > > > -----Original Message-----
> > > > From: Shameerali Kolothum Thodi
> > > > Sent: 03 March 2022 23:02
> > > > To: kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > > > linux-crypto@xxxxxxxxxxxxxxx
> > > > Cc: linux-pci@xxxxxxxxxxxxxxx; alex.williamson@xxxxxxxxxx;
> > jgg@xxxxxxxxxx;
> > > > cohuck@xxxxxxxxxx; mgurtovoy@xxxxxxxxxx; yishaih@xxxxxxxxxx;
> > Linuxarm
> > > > <linuxarm@xxxxxxxxxx>; liulongfang <liulongfang@xxxxxxxxxx>;
> > Zengtao (B)
> > > > <prime.zeng@xxxxxxxxxxxxx>; Jonathan Cameron
> > > > <jonathan.cameron@xxxxxxxxxx>; Wangzhou (B)
> > <wangzhou1@xxxxxxxxxxxxx>
> > > > Subject: [PATCH v8 8/9] hisi_acc_vfio_pci: Add support for VFIO live
> > migration
> > > >
> > > > From: Longfang Liu <liulongfang@xxxxxxxxxx>
> > > >
> > > > VMs assigned with HiSilicon ACC VF devices can now perform live
> > migration if
> > > > the VF devices are bind to the hisi_acc_vfio_pci driver.
> > > >
> > > > Signed-off-by: Longfang Liu <liulongfang@xxxxxxxxxx>
> > > > Signed-off-by: Shameer Kolothum
> > <shameerali.kolothum.thodi@xxxxxxxxxx>
> > >
> > > [...]
> > > > +
> > > > +static int vf_qm_check_match(struct hisi_acc_vf_core_device
> > *hisi_acc_vdev,
> > > > + struct hisi_acc_vf_migration_file *migf) {
> > > > + struct acc_vf_data *vf_data = &migf->vf_data;
> > > > + struct hisi_qm *vf_qm = &hisi_acc_vdev->vf_qm;
> > > > + struct hisi_qm *pf_qm = &hisi_acc_vdev->vf_qm;
> > >
> > > Oops, the above has to be,
> > > struct hisi_qm *pf_qm = hisi_acc_vdev->pf_qm;
> > >
> > > This was actually fixed in v6, but now that I rebased mainly to v5, missed it.
> > > Please let me know if you want a re-spin with the above fix(in case there are
> > no further
> > > comments) or this is something you can take care.
> >
> > To confirm, you're looking for this change:
> >
> > diff --git a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
> > b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
> > index aa2e4b6bf598..f2a0c046413f 100644
> > --- a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
> > +++ b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
> > @@ -413,7 +413,7 @@ static int vf_qm_check_match(struct
> > hisi_acc_vf_core_device *hisi_acc_vdev,
> > {
> > struct acc_vf_data *vf_data = &migf->vf_data;
> > struct hisi_qm *vf_qm = &hisi_acc_vdev->vf_qm;
> > - struct hisi_qm *pf_qm = &hisi_acc_vdev->vf_qm;
> > + struct hisi_qm *pf_qm = &hisi_acc_vdev->pf_qm;
> > struct device *dev = &vf_qm->pdev->dev;
> > u32 que_iso_state;
> > int ret;
> >
> > Right?
>
> Not really. pf_qm is a pointer. This is the change,
>
> diff --git a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
> index 53e4c5cb3a71..54813772a071 100644
> --- a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
> +++ b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
> @@ -413,7 +413,7 @@ static int vf_qm_check_match(struct hisi_acc_vf_core_device *hisi_acc_vdev,
> {
> struct acc_vf_data *vf_data = &migf->vf_data;
> struct hisi_qm *vf_qm = &hisi_acc_vdev->vf_qm;
> - struct hisi_qm *pf_qm = &hisi_acc_vdev->vf_qm;
> + struct hisi_qm *pf_qm = hisi_acc_vdev->pf_qm;
> struct device *dev = &vf_qm->pdev->dev;
> u32 que_iso_state;
> int ret;
>

Got it. Thanks,

Alex