| From: |
| Rusty Russell <rusty@rustcorp.com.au> |
| To: |
| torvalds@transmeta.com |
| Subject: |
| [PATCH] Per-cpu variable in mm/slab.c |
| Date: |
| Thu, 03 Jul 2003 16:23:32 +1000 |
| Cc: |
| linux-kernel@vger.kernel.org,
Zwane Mwaikambo <zwane@arm.linux.org.uk>,
trivial@rustcorp.com.au |
Linus, please apply. From Zwane.
Name: Make slab.c reap_timers per-cpu
Author: Zwane Mwaikambo
Status: Tested on 2.5.73
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/