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

From: Keith Owens
Date: Wed May 17 2006 - 00:29:43 EST


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

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/