Re: [PATCH 2/2] drm/amdgpu: Bypass resizing bars for PVH dom0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 06.11.24 um 04:20 schrieb Chen, Jiqian:
On 2024/11/5 21:42, Christian König wrote:
Am 05.11.24 um 07:05 schrieb Jiqian Chen:
VPCI of Xen doesn't support resizable bar. When discrete GPU is used on
PVH dom0 which using the VPCI, amdgpu fails to probe, so we need to
disable this capability for PVH dom0.
What do you mean VPCI doesn't support resizeable BAR?
VPCI is a virtual pci of Xen hypervisor used for PVH dom0, it is worked to emulate and process pci devices configuration space access, all that access will trap into Xen and handled by VPCI.
But the Resizable Bars capability is not emulated now.

That must be changed or otherwise you will run into more problems on hotplug for example.

This is mandatory to be supported or otherwise general PCI resource assignment won't work either.

In other words you can't hotplug something if that here doesn't work either.
Yes, once I added dGPU to Xen PVH dom0, it didn't work unless I added this patch to return success for Rebar.

That's only the tip of the iceberg. You are trying to mitigate symptoms instead of fixing the underlying problem.

So clear NAK from my side for this approach.

Regards,
Christian.


Regards,
Christian.

Signed-off-by: Jiqian Chen <Jiqian.Chen@xxxxxxx>
Reviewed-by: Huang Rui <Ray.Huang@xxxxxxx>
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 ++++
  1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index b3fb92bbd9e2..012feb3790dd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -1619,6 +1619,10 @@ int amdgpu_device_resize_fb_bar(struct amdgpu_device *adev)
      if (!IS_ENABLED(CONFIG_PHYS_ADDR_T_64BIT))
          return 0;
  +    /* Bypass for PVH dom0 which doesn't support resizable bar */
+    if (xen_initial_domain() && xen_pvh_domain())
+        return 0;
+
      /* Bypass for VF */
      if (amdgpu_sriov_vf(adev))
          return 0;

      

    


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux