[PATCH 5/6] drm/amdgpu: add new gttsize module parameter

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

 



> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Christian König
> Sent: Friday, July 07, 2017 7:53 AM
> To: amd-gfx at lists.freedesktop.org
> Subject: [PATCH 5/6] drm/amdgpu: add new gttsize module parameter
> 
> From: Christian König <christian.koenig at amd.com>
> 
> This allows setting the gtt size independent of the gart size.
> 
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu.h        |  1 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |  7 +++++++
>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c    |  4 ++++
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c    | 12 +++++++++---
>  4 files changed, 21 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 5c5643a..94bbf71 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -77,6 +77,7 @@
>  extern int amdgpu_modeset;
>  extern int amdgpu_vram_limit;
>  extern int amdgpu_gart_size;
> +extern int amdgpu_gtt_size;
>  extern int amdgpu_moverate;
>  extern int amdgpu_benchmarking;
>  extern int amdgpu_testing;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 1addad4..8ef7e5e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -1137,6 +1137,13 @@ static void amdgpu_check_arguments(struct
> amdgpu_device *adev)
>  		}
>  	}
> 
> +	if (amdgpu_gtt_size != -1 && amdgpu_gtt_size < 32) {
> +		/* gtt size must be greater or equal to 32M */
> +		dev_warn(adev->dev, "gtt size (%d) too small\n",
> +				 amdgpu_gtt_size);
> +		amdgpu_gtt_size = -1;
> +	}
> +
>  	amdgpu_check_vm_size(adev);
> 
>  	amdgpu_check_block_size(adev);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> index 271c9d5..b7c6cee 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> @@ -75,6 +75,7 @@
> 
>  int amdgpu_vram_limit = 0;
>  int amdgpu_gart_size = -1; /* auto */
> +int amdgpu_gtt_size = -1; /* auto */
>  int amdgpu_moverate = -1; /* auto */
>  int amdgpu_benchmarking = 0;
>  int amdgpu_testing = 0;
> @@ -124,6 +125,9 @@ module_param_named(vramlimit,
> amdgpu_vram_limit, int, 0600);
>  MODULE_PARM_DESC(gartsize, "Size of PCIE/IGP gart to setup in
> megabytes (32, 64, etc., -1 = auto)");
>  module_param_named(gartsize, amdgpu_gart_size, int, 0600);
> 
> +MODULE_PARM_DESC(gttsize, "Size of the GTT domain in megabytes (-1 =
> auto)");
> +module_param_named(gttsize, amdgpu_gtt_size, int, 0600);
> +
>  MODULE_PARM_DESC(moverate, "Maximum buffer migration rate in MB/s.
> (32, 64, etc., -1=auto, 0=1=disabled)");
>  module_param_named(moverate, amdgpu_moverate, int, 0600);
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index f300af2..ffd72d2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -1097,6 +1097,7 @@ static struct ttm_bo_driver amdgpu_bo_driver = {
> 
>  int amdgpu_ttm_init(struct amdgpu_device *adev)
>  {
> +	uint64_t gtt_size;
>  	int r;
> 
>  	r = amdgpu_ttm_global_init(adev);
> @@ -1143,14 +1144,19 @@ int amdgpu_ttm_init(struct amdgpu_device
> *adev)
>  	}
>  	DRM_INFO("amdgpu: %uM of VRAM memory ready\n",
>  		 (unsigned) (adev->mc.real_vram_size / (1024 * 1024)));
> -	r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_TT,
> -				adev->mc.gart_size >> PAGE_SHIFT);
> +
> +	if (amdgpu_gart_size == -1)

amdgpu_gtt_size here.  With that fixed:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> +		gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
> +			       adev->mc.mc_vram_size);
> +	else
> +		gtt_size = (uint64_t)amdgpu_gart_size << 20;
> +	r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_TT, gtt_size >>
> PAGE_SHIFT);
>  	if (r) {
>  		DRM_ERROR("Failed initializing GTT heap.\n");
>  		return r;
>  	}
>  	DRM_INFO("amdgpu: %uM of GTT memory ready.\n",
> -		 (unsigned)(adev->mc.gart_size / (1024 * 1024)));
> +		 (unsigned)(gtt_size / (1024 * 1024)));
> 
>  	adev->gds.mem.total_size = adev->gds.mem.total_size <<
> AMDGPU_GDS_SHIFT;
>  	adev->gds.mem.gfx_partition_size = adev-
> >gds.mem.gfx_partition_size << AMDGPU_GDS_SHIFT;
> --
> 2.7.4
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


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

  Powered by Linux