Re: PTP vclock: BUG: scheduling while atomic
From: Íñigo Huguet <hidden>
Date: 2023-02-03 16:05:58
On Fri, Feb 3, 2023 at 1:10 AM Richard Cochran [off-list ref] wrote:
On Thu, Feb 02, 2023 at 05:33:15PM +0100, Miroslav Lichvar wrote:quoted
On Thu, Feb 02, 2023 at 05:02:07PM +0100, Íñigo Huguet wrote:quoted
Our QA team was testing PTP vclocks, and they've found this error with sfc NIC/driver: BUG: scheduling while atomic: ptp5/25223/0x00000002 The reason seems to be that vclocks disable interrupts with `spin_lock_irqsave` in `ptp_vclock_gettime`, and then read the timecounter, which in turns ends calling to the driver's `gettime64` callback.The same issue was observed with the ice driver: https://lists.osuosl.org/pipermail/intel-wired-lan/Week-of-Mon-20221107/030633.html I tried to fix it generally in the vclock support, but was not successful. There was a hint it would be fixed in the driver. I'm not sure what is the best approach here.Can ptp_vclock_gettime use a mutex instead?
I don't see any place where these vclock functions are called in atomic context, so it might be possible, but there are many callback indirections and I'm not sure if I might have missed any.
Thanks, Richard
-- Íñigo Huguet