[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c93ab2cc-d8e9-41ba-9f56-51acb331ae38@leemhuis.info>
Date: Mon, 1 Jul 2024 14:12:55 +0200
From: "Linux regression tracking (Thorsten Leemhuis)"
<regressions@...mhuis.info>
To: Matthias Schiffer <matthias.schiffer@...tq-group.com>,
Markus Schneider-Pargmann <msp@...libre.com>,
Marc Kleine-Budde <mkl@...gutronix.de>
Cc: Chandrasekar Ramakrishnan <rcsekar@...sung.com>,
Vincent Mailhol <mailhol.vincent@...adoo.fr>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Tony Lindgren <tony@...mide.com>, Judith Mendez <jm@...com>,
linux-can@...r.kernel.org, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, linux@...tq-group.com,
Linux kernel regressions list <regressions@...ts.linux.dev>
Subject: Re: Kernel hang caused by commit "can: m_can: Start/Cancel polling
timer together with interrupts"
[CCing the regression list, as it should be in the loop for regressions:
https://docs.kernel.org/admin-guide/reporting-regressions.html]
Hi, Thorsten here, the Linux kernel's regression tracker. Top-posting
for once, to make this easily accessible to everyone.
Hmm, looks like there was not even a single reply to below regression
report. But also seens Markus hasn't posted anything archived on Lore
since about three weeks now, so he might be on vacation.
Marc, do you might have an idea what's wrong with the culprit? Or do we
expected Markus to be back in action soon?
Ciao, Thorsten
On 18.06.24 18:12, Matthias Schiffer wrote:
> Hi Markus,
>
> we've found that recent kernels hang on the TI AM62x SoC (where no m_can interrupt is available and
> thus the polling timer is used), always a few seconds after the CAN interfaces are set up.
>
> I have bisected the issue to commit a163c5761019b ("can: m_can: Start/Cancel polling timer together
> with interrupts"). Both master and 6.6 stable (which received a backport of the commit) are
> affected. On 6.6 the commit is easy to revert, but on master a lot has happened on top of that
> change.
>
> As far as I can tell, the reason is that hrtimer_cancel() tries to cancel the timer synchronously,
> which will deadlock when called from the hrtimer callback itself (hrtimer_callback -> m_can_isr ->
> m_can_disable_all_interrupts -> hrtimer_cancel).
>
> I can try to come up with a fix, but I think you are much more familiar with the driver code. Please
> let me know if you need any more information.
>
> Best regards,
> Matthias
>
>
Powered by blists - more mailing lists