Re: [PATCH v4 4/5] slub: Only IPI CPUs that have per cpu obj toflush
From: Pekka Enberg
Date: Wed Nov 23 2011 - 01:23:48 EST
On Tue, 22 Nov 2011, Gilad Ben-Yossef wrote:
static void flush_all(struct kmem_cache *s)
{
- on_each_cpu(flush_cpu_slab, s, 1);
+ cpumask_var_t cpus;
+ struct kmem_cache_cpu *c;
+ int cpu;
+
+ if (likely(zalloc_cpumask_var(&cpus, GFP_ATOMIC))) {
__GFP_NOWARN too maybe?
+ for_each_online_cpu(cpu) {
+ c = per_cpu_ptr(s->cpu_slab, cpu);
+ if (c->page)
+ cpumask_set_cpu(cpu, cpus);
+ }
+ on_each_cpu_mask(cpus, flush_cpu_slab, s, 1);
+ free_cpumask_var(cpus);
+ } else
+ on_each_cpu(flush_cpu_slab, s, 1);
}
Acked-by: Pekka Enberg <penberg@xxxxxxxxxx>
I can't take the patch because it depends on a new API introduced in the
first patch.
I'm CC'ing Andrew.
Pekka
--
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/