On Sun, 2011-09-25 at 11:54 +0300, Gilad Ben-Yossef wrote: > + if (likely(zalloc_cpumask_var(&cpus, GFP_ATOMIC))) { > + for_each_online_cpu(cpu) { > + c = per_cpu_ptr(s->cpu_slab, cpu); > + if (c && c->page) > + cpumask_set_cpu(cpu, cpus); > + } > + on_each_cpu_mask(cpus, flush_cpu_slab, s, 1); > + free_cpumask_var(cpus); Right, having to do that for_each_oneline_cpu() loop only to then IPI them can cause a massive cacheline bounce fest.. Ideally you'd want to keep a cpumask per kmem_cache, although I bet the memory overhead of that isn't attractive. Also, what Pekka says, having that alloc here isn't good either. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href