Messages in this thread |  | | Date | Wed, 3 Oct 2018 10:24:52 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2 4/5] locking/lockdep: Make class->ops a percpu counter |
| |
On Wed, Oct 03, 2018 at 09:54:46AM +0200, Ingo Molnar wrote: > > * Peter Zijlstra <peterz@infradead.org> wrote: > > > On Tue, Oct 02, 2018 at 04:19:19PM -0400, Waiman Long wrote: > > > +DEFINE_PER_CPU(unsigned long [MAX_LOCKDEP_KEYS], lock_class_ops); > > > > > @@ -179,9 +181,30 @@ DECLARE_PER_CPU(struct lockdep_stats, lockdep_stats); > > > } \ > > > __total; \ > > > }) > > > + > > > +static inline void debug_class_ops_inc(struct lock_class *class) > > > +{ > > > + int idx; > > > + > > > + idx = class - lock_classes; > > > + __this_cpu_inc(lock_class_ops[idx]); > > > +} > > > + > > > +static inline unsigned long debug_class_ops_read(struct lock_class *class) > > > +{ > > > + int idx, cpu; > > > + unsigned long ops = 0; > > > + > > > + idx = class - lock_classes; > > > + for_each_possible_cpu(cpu) > > > + ops += per_cpu(lock_class_ops[idx], cpu); > > > + return ops; > > > +} > > > > Would it make sense to stick that in struct lockdep_stats ? > > > > A little something like: > > > > struct lockdep_stats { > > /* ... */ > > int lock_class_ops[MAX_LOCKDEP_KEYS]; > > }; > > Did you shrink the 'long' to 'int' intentionally?
nah, was because all of lockdep_stats is int and I didn't pay much attention.
|  |