> -----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