RE: [PATCH] drm/amdgpu: Apply noretry setting for gfx10 and mmhub9.4
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
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
[PATCH] drm/amdgpu: Apply noretry setting for gfx10 and mmhub9.4
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); 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); 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 +}; -- 2.7.4 ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx