Messages in this thread | | | Subject | Re: [tip:perfcounters/core] x86: Add NMI types for kmap_atomic | From | Peter Zijlstra <> | Date | Wed, 17 Jun 2009 09:44:35 +0200 |
| |
On Tue, 2009-06-16 at 10:13 +0200, Ingo Molnar wrote:
> > By removing the types it becomes very difficult to verify the max > > depth. I really don't like removing them. > > The fact that it implies an atomic section pretty much limits its > depth in practice, doesnt it? > > All we need to track in the debug code is > max-{syscall,softirq,hardirq,nmi}. The sum of these 4 counts must be > smaller than the max - even if (as you are right to point out) we > dont hit that magic combo that truly maximizes the depth.
Right, so the thing I'd worry about is someone adding kmap_atomic() to an interrupt context that didn't have interrupts disabled and then managing to nest that a few times.
Suppose you put it in some IO completion handler, and someone has 4 IO controllers installed and all 4 IO interrupts come in at the 'same' time.
With types you could warn on similarly to what we do today, but with the simple push/pop that might be a lot harder.
Anyway, with the whole cr2 fiddling bit being discussed this seems to become redundant.
> And note that in practice many of the current types are exclusive to > each other - so using the stack would _reduce_ the amount of > kmap-atomic space we need.
Yeah, I did realize that.
| |