[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <434e6332-2520-4ed7-9dea-8f5118dbb02e@amd.com>
Date: Mon, 19 Jan 2026 11:45:38 +0100
From: Christian König <christian.koenig@....com>
To: Tiezhu Yang <yangtiezhu@...ngson.cn>,
Alex Deucher <alexander.deucher@....com>
Cc: Alan Liu <haoping.liu@....com>, amd-gfx@...ts.freedesktop.org,
linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH] drm/amdgpu: Avoid unnecessary Call Traces in
amdgpu_irq_put()
On 1/19/26 09:53, Tiezhu Yang wrote:
> On 2026/1/16 下午6:03, Christian König wrote:
>> On 1/16/26 02:20, Tiezhu Yang wrote:
>>> On 2026/1/15 下午9:47, Christian König wrote:
>>>> On 1/15/26 02:28, Tiezhu Yang wrote:
>>>>> Currently, there are many Call Traces when booting kernel on LoongArch,
>>>>> here are the trimmed kernel log messages:
>>>>>
>>>>> amdgpu 0000:07:00.0: amdgpu: hw_init of IP block <gfx_v6_0> failed -110
>>>>> amdgpu 0000:07:00.0: amdgpu: amdgpu_device_ip_init failed
>>>>> amdgpu 0000:07:00.0: amdgpu: Fatal error during GPU init
>>>>> amdgpu 0000:07:00.0: amdgpu: amdgpu: finishing device.
>>>>> ------------[ cut here ]------------
>>>>> WARNING: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:639 at amdgpu_irq_put+0xb0/0x140 [amdgpu], CPU#0: kworker/0:0/9
>>>>> ...
>>>>> Call Trace:
>
> ...
>
>> The warning can basically only be triggered by two conditions:
>> 1. A fatal problem while loading the driver and the error handling is not 100% clean.
>> 2. A driver coding error.
>>
>> And we really need to catch all of those, so there is no real rational to limit the warning.
>>
>> I mean when you run into any of those they should potentially be fixed at some point.
>
> I did the following change and it can fix the problem, given that I am
> not familiar with amdgpu driver, could you please check it? If it is OK,
> I will send a formal patch later.
>
> ----->8-----
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
> index 8112ffc85995..ac19565e7c45 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
> @@ -138,6 +138,9 @@ void amdgpu_irq_disable_all(struct amdgpu_device *adev)
> if (!src || !src->funcs->set || !src->num_types)
> continue;
>
> + kfree(src->enabled_types);
> + src->enabled_types = NULL;
> +
Mhm, I need to double check that but that looks like not such a bad idea of hand.
Christian.
> for (k = 0; k < src->num_types; ++k) {
> r = src->funcs->set(adev, src, k,
>
> AMDGPU_IRQ_STATE_DISABLE);
>
> Thanks,
> Tiezhu
>
Powered by blists - more mailing lists