module: Use this_cpu_xx to dynamically allocate counters
authorChristoph Lameter <cl@linux-foundation.org>
Tue, 5 Jan 2010 06:34:50 +0000 (15:34 +0900)
committerTejun Heo <tj@kernel.org>
Tue, 5 Jan 2010 06:34:50 +0000 (15:34 +0900)
commite1783a240f491fb233f04edc042e16b18a7a79ba
treeb523bf2db00fff96f1ab488168fc16ab56c372aa
parent38b7827fcdd660f591d645bd3ae6644456a4773c
module: Use this_cpu_xx to dynamically allocate counters

Use cpu ops to deal with the per cpu data instead of a local_t. Reduces memory
requirements, cache footprint and decreases cycle counts.

The this_cpu_xx operations are also used for !SMP mode. Otherwise we could
not drop the use of __module_ref_addr() which would make per cpu data handling
complicated. this_cpu_xx operations have their own fallback for !SMP.

V8-V9:
- Leave include asm/module.h since ringbuffer.c depends on it. Nothing else
  does though. Another patch will deal with that.
- Remove spurious free.

Signed-off-by: Christoph Lameter <cl@linux-foundation.org>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Tejun Heo <tj@kernel.org>
include/linux/module.h
kernel/module.c