Messages in this thread | | | From | Linus Torvalds <> | Date | Fri, 24 May 2019 10:27:05 -0700 | Subject | Re: [PATCH v2] locking/lock_events: Use this_cpu_add() when necessary |
| |
On Fri, May 24, 2019 at 10:19 AM Will Deacon <will.deacon@arm.com> wrote: > > Are you sure this works wrt IRQs? For example, if I take an interrupt when > trying to update the counter, and then the irq handler takes a qspinlock > which in turn tries to update the counter. Would I lose an update in that > scenario?
Sounds about right.
We might decide that the lock event counters are not necessarily precise, but just rough guide-line statistics ("close enough in practice")
But that would imply that it shouldn't be dependent on CONFIG_PREEMPT at all, and we should always use the double-underscore version, except without the debug checking.
Maybe the #ifdef should just be CONFIG_PREEMPT_DEBUG, with a comment saying "we're not exact, but debugging complains, so if you enable debugging it will be slower and precise". Because I don't think we have a "do this unsafely and without any debugging" option.
And the whole "not precise" thing should be documented, of course.
I can't imagine that people would rely on _exact_ lock statistics, but hey, there are a lot of things people do that I can't fathom, so that's not necessarily a strong argument.
Comments?
Linus
| |