Re: [RFC] drm/amd: Drop gttsize module parameter

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

 



On Thu, Jan 16, 2025 at 4:42 PM Mario Limonciello <superm1@xxxxxxxxxx> wrote:
>
> On 1/16/2025 15:32, Alex Deucher wrote:
> > On Thu, Jan 16, 2025 at 1:29 PM Mario Limonciello <superm1@xxxxxxxxxx> wrote:
> >>
> >> From: Mario Limonciello <mario.limonciello@xxxxxxx>
> >>
> >> When not set `gttsize` module parameter by default will get the
> >> value to use for the GTT pool from the TTM page limit, which is
> >> set by a separate module parameter.
> >>
> >> This inevitably leads to people not sure which one to set when they
> >> want more addressable memory for the GPU, and you'll end up seeing
> >> instructions online saying to set both.
> >>
> >> Drop the amdgpu module parameter and related code for it.  This way
> >> if users want to change the amount of addressable memory they can
> >> change it solely in TTM.
> >>
> >
> > I suspect we probably want to keep it for compatibility with users
> > that still use this option to change their GTT size.
>
> Could we mark it as deprecated?  Perhaps something like this:
>
> 0) Change kdoc
> 1) Some messaging to show it being deprecated
>
>         if (amdgpu_gttsize != -1)
>                 drm_warn(dev, "Configuring gttsize via module parameter is deprecated,
> please use ttm.ttm_page_limit");
>
> 2) Some messaging to show information if inconsistent values have been
> set against TTM
>
>         if (amdgpu_gttsize != ttm_page_limit()
>                 drm_warn(dev, "GTT size has been set as %lu but TTM size has been set
> as %lu, this is unusual");
>
> Then after the "next" LTS release is declared we can pull it out entirely.
>

Seems reasonable to me.

Alex

> >
> > Alex
> >
> >
> >> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
> >> ---
> >>   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    | 9 ---------
> >>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c    | 9 ++-------
> >>   4 files changed, 2 insertions(+), 24 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> >> index 5e55a44f9eef..e728974114bb 100644
> >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> >> @@ -164,7 +164,6 @@ extern int amdgpu_modeset;
> >>   extern unsigned int amdgpu_vram_limit;
> >>   extern int amdgpu_vis_vram_limit;
> >>   extern int amdgpu_gart_size;
> >> -extern int amdgpu_gtt_size;
> >>   extern int amdgpu_moverate;
> >>   extern int amdgpu_audio;
> >>   extern int amdgpu_disp_priority;
> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> >> index 3774d12ebc4a..1b62b843e5fb 100644
> >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> >> @@ -2031,13 +2031,6 @@ static int amdgpu_device_check_arguments(struct amdgpu_device *adev)
> >>                  amdgpu_gart_size = -1;
> >>          }
> >>
> >> -       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;
> >> -       }
> >> -
> >>          /* valid range is between 4 and 9 inclusive */
> >>          if (amdgpu_vm_fragment_size != -1 &&
> >>              (amdgpu_vm_fragment_size > 9 || amdgpu_vm_fragment_size < 4)) {
> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> >> index b911653dd8b6..62b09c518665 100644
> >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> >> @@ -141,7 +141,6 @@ enum AMDGPU_DEBUG_MASK {
> >>   unsigned int amdgpu_vram_limit = UINT_MAX;
> >>   int amdgpu_vis_vram_limit;
> >>   int amdgpu_gart_size = -1; /* auto */
> >> -int amdgpu_gtt_size = -1; /* auto */
> >>   int amdgpu_moverate = -1; /* auto */
> >>   int amdgpu_audio = -1;
> >>   int amdgpu_disp_priority;
> >> @@ -279,14 +278,6 @@ module_param_named(vis_vramlimit, amdgpu_vis_vram_limit, int, 0444);
> >>   MODULE_PARM_DESC(gartsize, "Size of kernel GART to setup in megabytes (32, 64, etc., -1=auto)");
> >>   module_param_named(gartsize, amdgpu_gart_size, uint, 0600);
> >>
> >> -/**
> >> - * DOC: gttsize (int)
> >> - * Restrict the size of GTT domain (for userspace use) in MiB for testing.
> >> - * The default is -1 (Use 1/2 RAM, minimum value is 3GB).
> >> - */
> >> -MODULE_PARM_DESC(gttsize, "Size of the GTT userspace domain in megabytes (-1 = auto)");
> >> -module_param_named(gttsize, amdgpu_gtt_size, int, 0600);
> >> -
> >>   /**
> >>    * DOC: moverate (int)
> >>    * Set maximum buffer migration rate in MB/s. The default is -1 (8 MB/s).
> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> >> index e6fc89440210..e3fee81d8646 100644
> >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> >> @@ -1957,13 +1957,8 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
> >>          DRM_INFO("amdgpu: %uM of VRAM memory ready\n",
> >>                   (unsigned int)(adev->gmc.real_vram_size / (1024 * 1024)));
> >>
> >> -       /* Compute GTT size, either based on TTM limit
> >> -        * or whatever the user passed on module init.
> >> -        */
> >> -       if (amdgpu_gtt_size == -1)
> >> -               gtt_size = ttm_tt_pages_limit() << PAGE_SHIFT;
> >> -       else
> >> -               gtt_size = (uint64_t)amdgpu_gtt_size << 20;
> >> +       /* Compute GTT size, based on TTM limit */
> >> +       gtt_size = ttm_tt_pages_limit() << PAGE_SHIFT;
> >>
> >>          /* Initialize GTT memory pool */
> >>          r = amdgpu_gtt_mgr_init(adev, gtt_size);
> >> --
> >> 2.48.0
> >>
>




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

  Powered by Linux