Re: [RFC 2/2] rcu: Remove ->dynticks_nmi_nesting from struct rcu_dynticks
From: Joel Fernandes
Date: Mon Jun 25 2018 - 17:26:12 EST
On Mon, Jun 25, 2018 at 04:25:57PM -0400, Steven Rostedt wrote:
> On Mon, 25 Jun 2018 09:39:51 -0700
> Joel Fernandes <joel@xxxxxxxxxxxxxxxxx> wrote:
>
> > For whatever its worth, I made some notes of what I understood from reading
> > the code and old posts because I was sure I would otherwise forget
> > everything:
> > http://www.joelfernandes.org/linuxinternals/2018/06/15/rcu-dynticks.html
>
> Nice write up. I may point some people to this ;-)
Thanks! :)
> Anyway "complications due to nested NMIs (yes NMIs can nest!)"
>
> What arch allows for NMIs to nest. Because we don't let that happen on
> x86, and there's code that I know of that is called by NMIs that is not
> re-entrant, and can crash if we allow for NMIs to nest. For example
> "in_nmi()" will not show that we are in_nmi() if we allow for nesting
> of NMIs. It has a single bit that gets incremented when we enter NMI
> code, and cleared when we leave it.
Great point. Andy mentioned something about MCEs in the other thread, I'll
let him clarify how such nesting is safe in light of what you mentioned. ;-)
Thanks,
- Joel