RE: [PATCH] drm/amdgpu: Apply noretry setting for gfx10 and mmhub9.4

2019-11-22 Thread Zeng, Oak
I didn't have new information about the retry_mode setting for gfx10. I just 
saw the noretry kernel parameter wasn't applied to gfx10 but I didn't know 
gfx10 is excluded purposely. Let me drop the gfx10 part for now.

Oak

-Original Message-
From: Kuehling, Felix  
Sent: Friday, November 22, 2019 3:51 PM
To: Zeng, Oak ; amd-gfx@lists.freedesktop.org
Cc: Cornwall, Jay 
Subject: Re: [PATCH] drm/amdgpu: Apply noretry setting for gfx10 and mmhub9.4


On 2019-11-22 3:23 p.m., Oak Zeng wrote:
> Config the translation retry behavior according to noretry kernel 
> parameter
>
> Change-Id: I5b91ea77715137cf8cb84e258ccdfbb19c7a4ed1
> Signed-off-by: Oak Zeng 
> Suggested-by: Jay Cornwall 
> ---
>   drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c  | 4 +++-
>   drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c | 5 +++--
>   2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c 
> b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
> index 4d6df35..7435487 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
> @@ -1751,7 +1751,9 @@ static void gfx_v10_0_constants_init(struct 
> amdgpu_device *adev)
>   for (i = 0; i < adev->vm_manager.id_mgr[AMDGPU_GFXHUB_0].num_ids; i++) {
>   nv_grbm_select(adev, 0, 0, 0, i);
>   /* CP and shaders */
> - WREG32_SOC15(GC, 0, mmSH_MEM_CONFIG, DEFAULT_SH_MEM_CONFIG);
> + tmp = REG_SET_FIELD(DEFAULT_SH_MEM_CONFIG, SH_MEM_CONFIG,
> + RETRY_MODE, amdgpu_noretry ? 2 : 0);
> + WREG32_SOC15(GC, 0, mmSH_MEM_CONFIG, tmp);
I didn't fix gfx_v10_0 on purpose last time I worked on this
("75ee64875e75 drm/amdkfd: Consistently apply noretry setting"), because the 
retry works differently on GFXv10. Do you have new information about how the 
RETRY_MODE setting works on GFXv10? Does it affect performance?


>   if (i != 0) {
>   tmp = REG_SET_FIELD(0, SH_MEM_BASES, PRIVATE_BASE,
>   (adev->gmc.private_aperture_start >> 48)); diff 
> --git 
> a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c 
> b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
> index 753eea2..8599bfd 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
> @@ -314,7 +314,8 @@ static void mmhub_v9_4_setup_vmid_config(struct 
> amdgpu_device *adev, int hubid)
>   adev->vm_manager.block_size - 9);
>   /* Send no-retry XNACK on fault to suppress VM fault storm. */
>   tmp = REG_SET_FIELD(tmp, VML2VC0_VM_CONTEXT1_CNTL,
> - RETRY_PERMISSION_OR_INVALID_PAGE_FAULT, 0);
> + RETRY_PERMISSION_OR_INVALID_PAGE_FAULT,
> + !amdgpu_noretry);

Right, this was missed in my previous commit because mmhub_v9_4 was added later.

Regards,
   Felix


>   WREG32_SOC15_OFFSET(MMHUB, 0, mmVML2VC0_VM_CONTEXT1_CNTL,
>   hubid * MMHUB_INSTANCE_REGISTER_OFFSET + i,
>   tmp);
> @@ -905,4 +906,4 @@ static void mmhub_v9_4_query_ras_error_count(struct 
> amdgpu_device *adev,
>   const struct amdgpu_mmhub_funcs mmhub_v9_4_funcs = {
>   .ras_late_init = amdgpu_mmhub_ras_late_init,
>   .query_ras_error_count = mmhub_v9_4_query_ras_error_count, -}; \ No 
> newline at end of file
> +};
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Re: [PATCH] drm/amdgpu: Apply noretry setting for gfx10 and mmhub9.4

2019-11-22 Thread Felix Kuehling


On 2019-11-22 3:23 p.m., Oak Zeng wrote:

Config the translation retry behavior according to noretry
kernel parameter

Change-Id: I5b91ea77715137cf8cb84e258ccdfbb19c7a4ed1
Signed-off-by: Oak Zeng 
Suggested-by: Jay Cornwall 
---
  drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c  | 4 +++-
  drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c | 5 +++--
  2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
index 4d6df35..7435487 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
@@ -1751,7 +1751,9 @@ static void gfx_v10_0_constants_init(struct amdgpu_device 
*adev)
for (i = 0; i < adev->vm_manager.id_mgr[AMDGPU_GFXHUB_0].num_ids; i++) {
nv_grbm_select(adev, 0, 0, 0, i);
/* CP and shaders */
-   WREG32_SOC15(GC, 0, mmSH_MEM_CONFIG, DEFAULT_SH_MEM_CONFIG);
+   tmp = REG_SET_FIELD(DEFAULT_SH_MEM_CONFIG, SH_MEM_CONFIG,
+   RETRY_MODE, amdgpu_noretry ? 2 : 0);
+   WREG32_SOC15(GC, 0, mmSH_MEM_CONFIG, tmp);
I didn't fix gfx_v10_0 on purpose last time I worked on this 
("75ee64875e75 drm/amdkfd: Consistently apply noretry setting"), because 
the retry works differently on GFXv10. Do you have new information about 
how the RETRY_MODE setting works on GFXv10? Does it affect performance?




if (i != 0) {
tmp = REG_SET_FIELD(0, SH_MEM_BASES, PRIVATE_BASE,
(adev->gmc.private_aperture_start >> 48));
diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c 
b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
index 753eea2..8599bfd 100644
--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
@@ -314,7 +314,8 @@ static void mmhub_v9_4_setup_vmid_config(struct 
amdgpu_device *adev, int hubid)
adev->vm_manager.block_size - 9);
/* Send no-retry XNACK on fault to suppress VM fault storm. */
tmp = REG_SET_FIELD(tmp, VML2VC0_VM_CONTEXT1_CNTL,
-   RETRY_PERMISSION_OR_INVALID_PAGE_FAULT, 0);
+   RETRY_PERMISSION_OR_INVALID_PAGE_FAULT,
+   !amdgpu_noretry);


Right, this was missed in my previous commit because mmhub_v9_4 was 
added later.


Regards,
  Felix



WREG32_SOC15_OFFSET(MMHUB, 0, mmVML2VC0_VM_CONTEXT1_CNTL,
hubid * MMHUB_INSTANCE_REGISTER_OFFSET + i,
tmp);
@@ -905,4 +906,4 @@ static void mmhub_v9_4_query_ras_error_count(struct 
amdgpu_device *adev,
  const struct amdgpu_mmhub_funcs mmhub_v9_4_funcs = {
.ras_late_init = amdgpu_mmhub_ras_late_init,
.query_ras_error_count = mmhub_v9_4_query_ras_error_count,
-};
\ No newline at end of file
+};

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx