2012/1/9 Michal Nazarewicz <mina86@xxxxxxxxxx>: > On Mon, 09 Jan 2012 17:35:26 +0100, Christoph Lameter <cl@xxxxxxxxx> wrote: > >> On Sun, 8 Jan 2012, Gilad Ben-Yossef wrote: >> >>> @@ -67,6 +67,14 @@ DEFINE_PER_CPU(int, numa_node); >>> EXPORT_PER_CPU_SYMBOL(numa_node); >>> #endif >>> >>> +/* >>> + * A global cpumask of CPUs with per-cpu pages that gets >>> + * recomputed on each drain. We use a global cpumask >>> + * here to avoid allocation on direct reclaim code path >>> + * for CONFIG_CPUMASK_OFFSTACK=y >>> + */ >>> +static cpumask_var_t cpus_with_pcps; >> >> >> Move the static definition into drain_all_pages()? > > > This is initialised in setup_per_cpu_pageset() so it needs to be file > scoped. Yes. The cpumask_var_t abstraction is convenient and all but it does make the allocation very non obvious when it does not happen in proximity to the variable use - it doesn't *look* like a pointer. "syntactic sugar causes cancer of the semicolon" and all that. Gilad -- Gilad Ben-Yossef Chief Coffee Drinker gilad@xxxxxxxxxxxxx Israel Cell: +972-52-8260388 US Cell: +1-973-8260388 http://benyossef.com "Unfortunately, cache misses are an equal opportunity pain provider." -- Mike Galbraith, LKML -- 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