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