[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.1811281616570.1532@nanos.tec.linutronix.de>
Date: Wed, 28 Nov 2018 16:21:52 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: "Zhivich, Michael" <mzhivich@...mai.com>
cc: John Stultz <john.stultz@...aro.org>,
lkml <linux-kernel@...r.kernel.org>,
"tiny.windzz@...il.com" <tiny.windzz@...il.com>,
Joel Fernandes <joel@...lfernandes.org>,
"alexander.levin@...izon.com" <alexander.levin@...izon.com>,
"frederic@...nel.org" <frederic@...nel.org>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
Ingo Molnar <mingo@...nel.org>,
Steven Rostedt <rostedt@...dmis.org>,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
Arnd Bergmann <arnd@...db.de>,
Ondrej Mosnacek <omosnace@...hat.com>,
Jason Wessel <jason.wessel@...driver.com>,
"kreview@...mai.com" <kreview@...mai.com>
Subject: Re: [PATCH] softirq: don't push timer softirq handling to
ksoftirqd
Michael,
On Fri, 16 Nov 2018, Zhivich, Michael wrote:
> On 11/15/18, 12:17 PM, "John Stultz" <john.stultz@...aro.org> wrote:
> Would a more focused fix be to move the clocksource watchdog from a
> normal timer to a hrtimer?
>
> That's an interesting idea - it would get clocksource watchdog out of
> ksoftirqd. However, clocksource watchdog iterates over available CPUs to
> check the TSC on each core (see add_timer_on() call in
> clocksource_watchdog()). I'm not seeing an API to start an hrtimer on a
> specific CPU - is this possible and I'm missing it? Or would something
> like this have to be added to hrtimer?
It's surely an interesting idea, but it's not trivial.
There is no way to reliably queue hrtimers remote when high resolution mode
is enabled. It only works when the to be queued timer is not the first to
expire one. If it ends up being the first to expire timer, then there is
currently no way to rearm the remote per cpu clockevent device because it's
not remotely accesible.
It would need an SMP function call, but that needs to be asynchronous due
to locking/interrupt disabled constraints. Maybe ...
Thanks,
tglx
Powered by blists - more mailing lists