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/