[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <874ksb7hbg.fsf@nanos.tec.linutronix.de>
Date: Tue, 19 May 2020 23:20:19 +0200
From: Thomas Gleixner <tglx@...utronix.de>
To: Andy Lutomirski <luto@...nel.org>
Cc: Andy Lutomirski <luto@...nel.org>,
LKML <linux-kernel@...r.kernel.org>, X86 ML <x86@...nel.org>,
"Paul E. McKenney" <paulmck@...nel.org>,
Alexandre Chartre <alexandre.chartre@...cle.com>,
Frederic Weisbecker <frederic@...nel.org>,
Paolo Bonzini <pbonzini@...hat.com>,
Sean Christopherson <sean.j.christopherson@...el.com>,
Masami Hiramatsu <mhiramat@...nel.org>,
Petr Mladek <pmladek@...e.com>,
Steven Rostedt <rostedt@...dmis.org>,
Joel Fernandes <joel@...lfernandes.org>,
Boris Ostrovsky <boris.ostrovsky@...cle.com>,
Juergen Gross <jgross@...e.com>,
Brian Gerst <brgerst@...il.com>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
Josh Poimboeuf <jpoimboe@...hat.com>,
Will Deacon <will@...nel.org>,
Tom Lendacky <thomas.lendacky@....com>,
Wei Liu <wei.liu@...nel.org>,
Michael Kelley <mikelley@...rosoft.com>,
Jason Chen CJ <jason.cj.chen@...el.com>,
Zhao Yakui <yakui.zhao@...el.com>,
"Peter Zijlstra \(Intel\)" <peterz@...radead.org>
Subject: Re: [patch V6 12/37] x86/entry: Provide idtentry_entry/exit_cond_rcu()
Andy Lutomirski <luto@...nel.org> writes:
> On Tue, May 19, 2020 at 1:20 PM Thomas Gleixner <tglx@...utronix.de> wrote:
>> Thomas Gleixner <tglx@...utronix.de> writes:
>> It's about this:
>>
>> rcu_nmi_enter()
>> {
>> if (!rcu_is_watching()) {
>> make it watch;
>> } else if (!in_nmi()) {
>> do_magic_nohz_dyntick_muck();
>> }
>>
>> So if we do all irq/system vector entries conditional then the
>> do_magic() gets never executed. After that I got lost...
>
> I'm also baffled by that magic, but I'm also not suggesting doing this
> to *all* entries -- just the not-super-magic ones that use
> idtentry_enter().
>
> Paul, what is this code actually trying to do?
Citing Paul from IRC:
"The way things are right now, you can leave out the rcu_irq_enter()
if this is not a nohz_full CPU.
Or if this is a nohz_full CPU, and the tick is already
enabled, in that case you could also leave out the rcu_irq_enter().
Or even if this is a nohz_full CPU and it does not have the tick
enabled, if it has been in the kernel less than a few tens of
milliseconds, still OK to avoid invoking rcu_irq_enter()
But my guess is that it would be a lot simpler to just always call
it.
Hope that helps.
Thanks,
tglx
Powered by blists - more mailing lists