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

Keith Owens
2006-05-17T04:30:20Z

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);
}