[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3c9a5194fb2bdf7377552c6fa6c3cd3505c4496c.camel@sipsolutions.net>
Date: Sat, 02 Apr 2022 16:17:25 +0200
From: Johannes Berg <johannes@...solutions.net>
To: Vincent Whitchurch <vincent.whitchurch@...s.com>
Cc: linux-um@...ts.infradead.org, linux-kernel@...r.kernel.org,
Anna-Maria Gleixner <anna-maria@...utronix.de>,
Thomas Gleixner <tglx@...utronix.de>,
Frederic Weisbecker <frederic@...nel.org>
Subject: Re: UML time-travel warning from __run_timers
On Sat, 2022-04-02 at 16:09 +0200, Johannes Berg wrote:
>
> (I put a WARN_ON into get_timer_cpu_base() and get_timer_this_cpu_base()
> in the if, and it never triggered; I guess my config has something that
> creates a deferrable timer, so it didn't trigger, but I didn't check
> that now.)
>
OK, so FWIW, I checked that now, and I have e.g. CONFIG_WQ_WATCHDOG
enabled, which makes a deferrable timer:
static void wq_watchdog_init(void)
{
timer_setup(&wq_watchdog_timer, wq_watchdog_timer_fn, TIMER_DEFERRABLE);
but I think a bunch of other (networking) things too that end up using a
TIMER_DEFERRABLE timer, via workqueues.
But maybe this would also happen if it was used just a single time,
since the timer would run & go away, leaving base->next_expiry never to
change again? But the WQ watchdog and also neigh_managed_work() are
periodic.
johannes
Powered by blists - more mailing lists