[PATCH] Per-cpuification of mm/slab.c reap_timers

Rusty Russell (rusty@rustcorp.com.au)
Fri, 04 Jul 2003 11:54:23 +1000


Linus, please apply. From Zwane.

Name: Make slab.c reap_timers per-cpu
Author: Zwane Mwaikambo
Status: Tested on 2.5.74-bk1

D: Rather trivial conversion. Tested on SMP.

Index: linux-2.5/mm/slab.c
===================================================================
RCS file: /home/cvs/linux-2.5/mm/slab.c,v
retrieving revision 1.91
diff -u -p -B -r1.91 slab.c
--- linux-2.5/mm/slab.c 28 Jun 2003 21:10:44 -0000 1.91
+++ linux-2.5/mm/slab.c 3 Jul 2003 01:34:36 -0000
@@ -441,7 +441,7 @@ enum {
FULL
} g_cpucache_up;

-static struct timer_list reap_timers[NR_CPUS];
+static DEFINE_PER_CPU(struct timer_list, reap_timers);

static void reap_timer_fnc(unsigned long data);

@@ -491,7 +491,7 @@ static void __slab_error(const char *fun
*/
static void start_cpu_timer(int cpu)
{
- struct timer_list *rt = &reap_timers[cpu];
+ struct timer_list *rt = &per_cpu(reap_timers, cpu);

if (rt->function == NULL) {
init_timer(rt);
@@ -2382,7 +2382,7 @@ next:
static void reap_timer_fnc(unsigned long data)
{
int cpu = smp_processor_id();
- struct timer_list *rt = &reap_timers[cpu];
+ struct timer_list *rt = &__get_cpu_var(reap_timers);

cache_reap();
mod_timer(rt, jiffies + REAPTIMEOUT_CPUC + cpu);

--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/