RE: [PATCH v1 1/5] PCI/P2PDMA: Don't enforce ACS check for functions of same device

Kasireddy, Vivek
2024-10-16T05:29:37Z

Hi Logan,

>
> On 2024-10-11 20:40, Vivek Kasireddy wrote:
> > Functions of the same PCI device (such as a PF and a VF) share the
> > same bus and have a common root port and typically, the PF provisions
> > resources for the VF. Therefore, they can be considered compatible
> > as far as P2P access is considered.
> >
> > Currently, although the distance (2) is correctly calculated for
> > functions of the same device, an ACS check failure prevents P2P DMA
> > access between them. Therefore, introduce a small function named
> > same_pci_device_functions() to determine if the provider and
> > client belong to the same device and facilitate P2P DMA between
> > them by not enforcing the ACS check.
>
> I'm not totally opposed to this. But the current code was done this way
> for a reason: we can't be sure that functions on any given device can
> talk to each other. So this change may break if used with other devices
> with multiple functions that can't talk to each other.
>
> That being said, the only alternative I can think of is another list of
> allowed devices. However, given the pain it's been maintaining allowed
> root ports, I'm not very enthusiastic about creating another list of
> allowed devices in the kernel.
I think it would make sense to limit the passing criteria for device functions'
compatibility to Intel GPUs for now. These are the devices I am currently
testing that we know are P2P compatible. Would this be OK?

Thanks,
Vivek

>
> Logan