[Public] Reviewed-by: Kent Russell <[email protected]>
> -----Original Message----- > From: amd-gfx <[email protected]> On Behalf Of Alex > Deucher > Sent: Tuesday, July 15, 2025 9:45 AM > To: Deucher, Alexander <[email protected]> > Cc: [email protected] > Subject: Re: [PATCH V2] drm/amdgpu: make compute timeouts consistent > > Ping? > > On Tue, Jun 24, 2025 at 10:32 PM Alex Deucher <[email protected]> > wrote: > > > > For kernel compute queues, align the timeout with > > other kernel queues (10 sec). This had previously > > been set higher for OpenCL when it used kernel > > queues, but now OpenCL uses KFD user queues which > > don't have a timeout limitation. This also aligns > > with SR-IOV which already used a shorter timeout. > > > > Additionally the longer timeout negatively impacts > > the user experience with kernel queues for interactive > > applications. > > > > Signed-off-by: Alex Deucher <[email protected]> > > --- > > > > V2: fix documentation as well > > > > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 12 ++---------- > > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 10 +++++----- > > 2 files changed, 7 insertions(+), 15 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > > index c8a6b3689deae..58a0ee99eb2f8 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > > @@ -4171,18 +4171,10 @@ static int > amdgpu_device_get_job_timeout_settings(struct amdgpu_device *adev) > > int ret = 0; > > > > /* > > - * By default timeout for non compute jobs is 10000 > > - * and 60000 for compute jobs. > > - * In SR-IOV or passthrough mode, timeout for compute > > - * jobs are 60000 by default. > > + * By default timeout for jobs is 10 sec > > */ > > - adev->gfx_timeout = msecs_to_jiffies(10000); > > + adev->compute_timeout = adev->gfx_timeout = msecs_to_jiffies(10000); > > adev->sdma_timeout = adev->video_timeout = adev->gfx_timeout; > > - if (amdgpu_sriov_vf(adev)) > > - adev->compute_timeout = amdgpu_sriov_is_pp_one_vf(adev) ? > > - msecs_to_jiffies(60000) : > > msecs_to_jiffies(10000); > > - else > > - adev->compute_timeout = msecs_to_jiffies(60000); > > > > if (strnlen(input, AMDGPU_MAX_TIMEOUT_PARAM_LENGTH)) { > > while ((timeout_setting = strsep(&input, ",")) && > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > > index 7e3fa76227033..7bc326d0b4000 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > > @@ -362,12 +362,12 @@ module_param_named(svm_default_granularity, > amdgpu_svm_default_granularity, uint > > * The second one is for Compute. The third and fourth ones are > > * for SDMA and Video. > > * > > - * By default(with no lockup_timeout settings), the timeout for all non- > compute(GFX, SDMA and Video) > > - * jobs is 10000. The timeout for compute is 60000. > > + * By default(with no lockup_timeout settings), the timeout for all jobs > > is 10000. > > */ > > -MODULE_PARM_DESC(lockup_timeout, "GPU lockup timeout in ms (default: for > bare metal 10000 for non-compute jobs and 60000 for compute jobs; " > > - "for passthrough or sriov, 10000 for all jobs. 0: keep > > default value. > negative: infinity timeout), format: for bare metal [Non-Compute] or > [GFX,Compute,SDMA,Video]; " > > - "for passthrough or sriov [all jobs] or > > [GFX,Compute,SDMA,Video]."); > > +MODULE_PARM_DESC(lockup_timeout, > > + "GPU lockup timeout in ms (default: 10000 for all jobs. " > > + "0: keep default value. negative: infinity timeout), > > format: for bare metal > [Non-Compute] or [GFX,Compute,SDMA,Video]; " > > + "for passthrough or sriov [all jobs] or > > [GFX,Compute,SDMA,Video]."); > > module_param_string(lockup_timeout, amdgpu_lockup_timeout, > sizeof(amdgpu_lockup_timeout), 0444); > > > > /** > > -- > > 2.49.0 > >
