On Tue, Oct 13, 2026 at 2:01 PM <[email protected]> wrote: > > From: Will Aitken <[email protected]> > > In sriov, fb-sharing can be disabled via the xgmi ta. For this scenario, > hive_id alone is insufficient for determining peer accessibility. > fb-sharing enable flag needs to be checked as well. > > v2: Move fb-sharing gate to amdgpu_xgmi_same_hive from > amdgpu_dmabuf_is_xgmi_accessible. All xgmi connectivity checks need it. > > Signed-off-by: Will Aitken <[email protected]>
Reviewed-by: Alex Deucher <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > index 45e31b3daf06..ccd6429ad7b2 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > @@ -349,6 +349,9 @@ int amdgpu_get_xgmi_link_status(struct amdgpu_device > *adev, int global_link_num) > * The XGMI memory space is built by contiguously adding the power of > * two padded VRAM space from each node to each other. > * > + * Note that even if multiple GPUs have the same hive ID, sharing between > their > + * memory spaces via XGMI links can be disabled in firmware, i.e. hive > + * membership does not guarantee connectivity. > */ > > static struct attribute amdgpu_xgmi_hive_id = { > @@ -1484,7 +1487,8 @@ bool amdgpu_xgmi_same_hive(struct amdgpu_device *adev, > { > return (amdgpu_use_xgmi_p2p && adev != bo_adev && > adev->gmc.xgmi.hive_id && > - adev->gmc.xgmi.hive_id == bo_adev->gmc.xgmi.hive_id); > + adev->gmc.xgmi.hive_id == bo_adev->gmc.xgmi.hive_id && > + amdgpu_xgmi_get_is_sharing_enabled(adev, bo_adev)); > } > > void amdgpu_xgmi_early_init(struct amdgpu_device *adev) > -- > 2.43.0 >
