This will break other things. The proper fix is either: https://patchwork.freedesktop.org/patch/567101/ and/or: https://patchwork.freedesktop.org/series/126220/ Alex On Thu, Nov 16, 2023 at 7:27 AM <ivlipski@xxxxxxx> wrote: > > From: Ivan Lipski <ivlipski@xxxxxxx> > > This commit caused a page fault issue on RX7000 series GPU. > It would occur when running different IGT tests, including > kms_properties* > kms_cursor_legacy* > kms_prop_blob@blob* > > It would also occur on desttop after some time of idling. > > The easiest fix for it seems to revert it. > > This reverts commit b93ed51c32caad2b96cbc8e4754802078ede87ab. > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 3 +++ > drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 1 - > drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 1 - > drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 1 - > drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 1 - > drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 1 - > drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 2 -- > 7 files changed, 3 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > index cef920a93924..0dcb6c36b02c 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > @@ -1062,6 +1062,9 @@ static const char * const amdgpu_vram_names[] = { > */ > int amdgpu_bo_init(struct amdgpu_device *adev) > { > + /* set the default AGP aperture state */ > + amdgpu_gmc_set_agp_default(adev, &adev->gmc); > + > /* On A+A platform, VRAM can be mapped as WB */ > if (!adev->gmc.xgmi.connected_to_cpu && !adev->gmc.is_app_apu) { > /* reserve PAT memory space to WC for VRAM */ > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c > index 0ec7b061d7c2..a43d1aa42e11 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c > @@ -672,7 +672,6 @@ static void gmc_v10_0_vram_gtt_location(struct amdgpu_device *adev, > /* add the xgmi offset of the physical node */ > base += adev->gmc.xgmi.physical_node_id * adev->gmc.xgmi.node_segment_size; > > - amdgpu_gmc_set_agp_default(adev, mc); > amdgpu_gmc_vram_location(adev, &adev->gmc, base); > amdgpu_gmc_gart_location(adev, mc, AMDGPU_GART_PLACEMENT_BEST_FIT); > if (!amdgpu_sriov_vf(adev)) > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c > index ba4c82f5e617..ee7f3f8c1b4a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c > @@ -637,7 +637,6 @@ static void gmc_v11_0_vram_gtt_location(struct amdgpu_device *adev, > > base = adev->mmhub.funcs->get_fb_location(adev); > > - amdgpu_gmc_set_agp_default(adev, mc); > amdgpu_gmc_vram_location(adev, &adev->gmc, base); > amdgpu_gmc_gart_location(adev, mc, AMDGPU_GART_PLACEMENT_HIGH); > if (!amdgpu_sriov_vf(adev) && > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c > index 42e103d7077d..7f66954fd302 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c > @@ -211,7 +211,6 @@ static void gmc_v6_0_vram_gtt_location(struct amdgpu_device *adev, > > base <<= 24; > > - amdgpu_gmc_set_agp_default(adev, mc); > amdgpu_gmc_vram_location(adev, mc, base); > amdgpu_gmc_gart_location(adev, mc, AMDGPU_GART_PLACEMENT_BEST_FIT); > } > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c > index efc16e580f1e..61ca1a82b651 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c > @@ -239,7 +239,6 @@ static void gmc_v7_0_vram_gtt_location(struct amdgpu_device *adev, > > base <<= 24; > > - amdgpu_gmc_set_agp_default(adev, mc); > amdgpu_gmc_vram_location(adev, mc, base); > amdgpu_gmc_gart_location(adev, mc, AMDGPU_GART_PLACEMENT_BEST_FIT); > } > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c > index ff4ae73d27ec..fa59749c2aef 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c > @@ -413,7 +413,6 @@ static void gmc_v8_0_vram_gtt_location(struct amdgpu_device *adev, > base = RREG32(mmMC_VM_FB_LOCATION) & 0xFFFF; > base <<= 24; > > - amdgpu_gmc_set_agp_default(adev, mc); > amdgpu_gmc_vram_location(adev, mc, base); > amdgpu_gmc_gart_location(adev, mc, AMDGPU_GART_PLACEMENT_BEST_FIT); > } > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > index c1f2f166f064..83733156ee53 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > @@ -1621,8 +1621,6 @@ static void gmc_v9_0_vram_gtt_location(struct amdgpu_device *adev, > { > u64 base = adev->mmhub.funcs->get_fb_location(adev); > > - amdgpu_gmc_set_agp_default(adev, mc); > - > /* add the xgmi offset of the physical node */ > base += adev->gmc.xgmi.physical_node_id * adev->gmc.xgmi.node_segment_size; > if (adev->gmc.xgmi.connected_to_cpu) { > -- > 2.34.1 >