Re: [RFC] [Patch 5/8] statistics infrastructure

Martin Peschke
2006-05-17T15:53:47Z

On Wed, 2006-05-17 at 14:29 +1000, Keith Owens wrote:
> Martin Peschke (on Tue, 16 May 2006 19:46:38 +0200) wrote:
> >+static inline void statistic_add(struct statistic *stat, int i,
> >+ s64 value, u64 incr)
> >+{
> >+ int cpu;
> >+ unsigned long flags;
> >+
> >+ if (stat[i].state == statistic_state_on) {
> >+ cpu = get_cpu();
> >+ local_irq_save(flags);
> >+ stat[i].add(&stat[i], cpu, value, incr);
> >+ local_irq_restore(flags);
> >+ put_cpu();
> >+ }
> >+}
>
> Using get_cpu()/put_cpu() is pure overhead when you are disabling
> interrupts as well.
>
> if (stat[i].state == statistic_state_on) {
> local_irq_save(flags);
> stat[i].add(&stat[i], smp_processor_id(), value, incr);
> local_irq_restore(flags);
> }
>

Ouch. Fixed it. Thank you.