> -----Original Message----- > From: Zhangfei Gao <zhangfei.gao@xxxxxxxxxx> > Sent: Thursday, October 17, 2024 1:35 PM > To: Jason Gunthorpe <jgg@xxxxxxxx> > Cc: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>; Kevin Tian > <kevin.tian@xxxxxxxxx>; Joerg Roedel <joro@xxxxxxxxxx>; Will Deacon > <will@xxxxxxxxxx>; Robin Murphy <robin.murphy@xxxxxxx>; Jean- > Philippe Brucker <jean-philippe@xxxxxxxxxx>; Nicolin Chen > <nicolinc@xxxxxxxxxx>; Yi Liu <yi.l.liu@xxxxxxxxx>; Jacob Pan > <jacob.jun.pan@xxxxxxxxxxxxxxx>; Joel Granados > <j.granados@xxxxxxxxxxx>; iommu@xxxxxxxxxxxxxxx; > virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > Shameerali Kolothum Thodi <shameerali.kolothum.thodi@xxxxxxxxxx> > Subject: Re: [PATCH v8 07/10] iommufd: Fault-capable hwpt > attach/detach/replace > > On Thu, 17 Oct 2024 at 20:05, Jason Gunthorpe <jgg@xxxxxxxx> wrote: > > > > On Thu, Oct 17, 2024 at 09:44:18AM +0800, Zhangfei Gao wrote: > > > On Wed, 16 Oct 2024 at 23:25, Jason Gunthorpe <jgg@xxxxxxxx> wrote: > > > > > > > > On Wed, Oct 16, 2024 at 09:58:36AM +0800, Zhangfei Gao wrote: > > > > > On Tue, 15 Oct 2024 at 20:54, Jason Gunthorpe <jgg@xxxxxxxx> > wrote: > > > > > > > > > > > > On Tue, Oct 15, 2024 at 11:19:33AM +0800, Zhangfei Gao wrote: > > > > > > > > +static int iommufd_fault_iopf_enable(struct > > > > > > > > +iommufd_device *idev) { > > > > > > > > + struct device *dev = idev->dev; > > > > > > > > + int ret; > > > > > > > > + > > > > > > > > + /* > > > > > > > > + * Once we turn on PCI/PRI support for VF, the response > failure code > > > > > > > > + * should not be forwarded to the hardware due to PRI > being a shared > > > > > > > > + * resource between PF and VFs. There is no coordination > for this > > > > > > > > + * shared capability. This waits for a vPRI reset to recover. > > > > > > > > + */ > > > > > > > > + if (dev_is_pci(dev) && to_pci_dev(dev)->is_virtfn) > > > > > > > > + return -EINVAL; > > > > > > > > > > > > > > I am using the SMMUv3 stall feature, and need to forward > > > > > > > this to hardware, And now I am hacking to comment this check. > > > > > > > Any suggestions? > > > > > > > > > > > > Are you using PCI SRIOV and stall together? > > > > > > > > > > Only use smmuv3 stall feature. > Sorry, this is not correct > > > > > > > > > Then isn't to_pci_dev(dev)->is_virtfn == false? > > > > > > > > That should only be true with SRIOV > > > > > > Do you mean > > > if (dev_is_pci(dev) && to_pci_dev(dev)->is_virtfn == false) > > > return -EINVAL; > > > > > > This is fine > > > > No, I mean on your test system you are not using SRIOV so all your PCI > > devices will have is_virtfn == false and the above if shouldn't be a > > problem. is_virtfn indicates the PCI device is a SRIOV VF. > > > > Your explanation for your problem doesn't really make sense, or there > > is something wrong someplace else to get a bogus is_virtfn.. > > > > If you are doing SRIOV with stall, then that is understandable. > > Yes, you are right > I am using SRIOV vf and stall feature, so is_virtfn == true > > Our ACC devices are fake pci endpoint devices which supports stall, And > they also supports sriov May be this will help to get the background: https://lore.kernel.org/all/1626144876-11352-1-git-send-email-zhangfei.gao@xxxxxxxxxx/ Shameer