[PATCH 01/10] drm/amdgpu: use only the lower address space on GMC9

Xiao, Jack Jack.Xiao at amd.com
Tue Aug 28 05:31:04 UTC 2018


This series patches seems to make AGP aperture allowed to access any system memory (16GB) bypass GPU VM protection. 
If someone made a wrong logic requesting an illegal address which occasionally was located inside AGP aperture, 
but without any VM protection, the illegal address would be finally translated into a system memory address; 
if GPU read/wrote such system memory address, the system memory address might belong to kernel or any user application, 
the r/w operation would result in any unpredictable issue. 
The most important is that such kind of issue is so hard to be addressed.
Is it worth doing this, but exposing risk?

Regards,
Jack

-----Original Message-----
From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Felix Kuehling
Sent: Tuesday, August 28, 2018 3:03 AM
To: Christian König <ckoenig.leichtzumerken at gmail.com>; amd-gfx at lists.freedesktop.org; Koenig, Christian <Christian.Koenig at amd.com>
Subject: Re: [PATCH 01/10] drm/amdgpu: use only the lower address space on GMC9

The point of this series seems to be to allow access to small system memory BOs (one page) without a GART mapping. I'm guessing that reduces pressure on the GART and removes the need for HDP and TLB flushes. Why does Patch 10 only enable that on GFXv9? Is there less benefit on older chips?

Is this related to your recent changes to allow page tables in system memory?

See my replies to patch 6 and 8. Other than that, the series is
Acked-by: Felix Kuehling <Felix.Kuehling at amd.com>

Regards,
  Felix


On 2018-08-27 12:53 PM, Christian König wrote:
> Only use the lower address space on GMC9 for the system domain.
> Otherwise we would need to sign extend GMC addresses.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c 
> b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> index e44b5191735d..d982956c8329 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> @@ -938,11 +938,10 @@ static int gmc_v9_0_sw_init(void *handle)
>  	if (r)
>  		return r;
>  
> -	/* Set the internal MC address mask
> -	 * This is the max address of the GPU's
> -	 * internal address space.
> +	/* Use only the lower range for the internal MC address mask. This is
> +	 * the max address of the GPU's internal address space.
>  	 */
> -	adev->gmc.mc_mask = 0xffffffffffffULL; /* 48 bit MC */
> +	adev->gmc.mc_mask = 0x7fffffffffffULL;
>  
>  	/* set DMA mask + need_dma32 flags.
>  	 * PCIE - can handle 44-bits.

_______________________________________________
amd-gfx mailing list
amd-gfx at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list