Re: [PATCH] Revert "drm/amdgpu: fix AGP init order"

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

 



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
>




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

  Powered by Linux