On Mon, Sep 22, 2025 at 03:00:32PM -0600, Alex Williamson wrote: > But then later in patch 8/ and again in 10/ why exactly do we cache > the provider on the vfio_pci_core_device rather than ask for it on > demand from the p2pdma? It makes the most sense if the P2P is activated once during probe(), it is just a cheap memory allocation, so no reason not to. If you try to do it on-demand then it will require more locking. > It also seems like the coordination of a valid provider is ad-hoc > between p2pdma and vfio-pci. For example, this only fills providers > for MMIO BARs and vfio-pci validates that dmabuf operations are for > MMIO BARs, but it would be more consistent if vfio-pci relied on p2pdma > to give it a valid provider for a given BAR. Thanks, Yeah, validate_dmabuf_input() should check priv->vdev->provider[priv->bar] for NULL and I think we should directly store the non-NUL: provider in the dmabuf priv struct instead of the bar index and replace these: + provider = priv->vdev->provider[priv->bar]; + provider = priv->vdev->provider[priv->bar]; Jason