Well, there seems to be a very basic misunderstood here: The IOMMU isolation level is *not* ASIC dependent!

Try to set amd_iommu=force_isolation on the kernel command line.

This is a configuration option customers can use to harden their systems and when this isn't properly tested we can't allow page tables in system memory.

Regards,
Christian.

Am 28.08.23 um 13:23 schrieb Zhang, Yifan:
[Public]

Not yet. It will be only enabled for gfx10.3.3 and later APU initially, IOMMU 
is pass through in these ASIC.

-----Original Message-----
From: Christian König <ckoenig.leichtzumer...@gmail.com>
Sent: Monday, August 28, 2023 5:41 PM
To: Zhang, Yifan <yifan1.zh...@amd.com>; amd-gfx@lists.freedesktop.org
Cc: Deucher, Alexander <alexander.deuc...@amd.com>; Koenig, Christian 
<christian.koe...@amd.com>
Subject: Re: [PATCH v3 2/2] drm/amdgpu: Put page tables to GTT memory for gfx10 
onwards APUs

Is that now validated with IOMMU in non pass through mode?

Christian.

Am 28.08.23 um 10:58 schrieb Zhang, Yifan:
[AMD Official Use Only - General]

Ping

-----Original Message-----
From: Zhang, Yifan <yifan1.zh...@amd.com>
Sent: Friday, August 25, 2023 8:34 AM
To: amd-gfx@lists.freedesktop.org
Cc: Deucher, Alexander <alexander.deuc...@amd.com>; Koenig, Christian 
<christian.koe...@amd.com>; Zhang, Yifan <yifan1.zh...@amd.com>
Subject: [PATCH v3 2/2] drm/amdgpu: Put page tables to GTT memory for gfx10 
onwards APUs

To decrease VRAM pressure for APUs, put page tables to GTT domain for gfx10 and 
newer APUs.

v2: only enable it for gfx10 and newer APUs (Alex, Christian)

Signed-off-by: Yifan Zhang <yifan1.zh...@amd.com>
---
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 9 ++++++---
   1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
index 96d601e209b8..4603d87c61a0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
@@ -515,10 +515,13 @@ int amdgpu_vm_pt_create(struct amdgpu_device *adev, 
struct amdgpu_vm *vm,
          bp.size = amdgpu_vm_pt_size(adev, level);
          bp.byte_align = AMDGPU_GPU_PAGE_SIZE;

-       if (!adev->gmc.is_app_apu)
-               bp.domain = AMDGPU_GEM_DOMAIN_VRAM;
-       else
+       if (adev->gmc.is_app_apu ||
+               ((adev->flags & AMD_IS_APU) &&
+               (adev->ip_versions[GC_HWIP][0] >= IP_VERSION(10, 3, 3))))
                  bp.domain = AMDGPU_GEM_DOMAIN_GTT;
+       else
+               bp.domain = AMDGPU_GEM_DOMAIN_VRAM;
+

          bp.domain = amdgpu_bo_get_preferred_domain(adev, bp.domain);
          bp.flags = AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS |
--
2.37.3


Reply via email to