summaryrefslogtreecommitdiff
path: root/include/linux/percpu.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-08-14 15:00:50 +0900
committerTejun Heo <tj@kernel.org>2009-08-14 15:00:50 +0900
commitf58dc01ba2ca9fe3ab2ba4ca43d9c8a735cf62d8 (patch)
tree9eb76a0d6aa34e56f8650fe98a5ce26891a522ab /include/linux/percpu.h
parent08fc45806103e59a37418e84719b878f9bb32540 (diff)
downloadlwn-f58dc01ba2ca9fe3ab2ba4ca43d9c8a735cf62d8.tar.gz
lwn-f58dc01ba2ca9fe3ab2ba4ca43d9c8a735cf62d8.zip
percpu: generalize first chunk allocator selection
Now that all first chunk allocators are in mm/percpu.c, it makes sense to make generalize percpu_alloc kernel parameter. Define PCPU_FC_* and set pcpu_chosen_fc using early_param() in mm/percpu.c. Arch code can use the set value to determine which first chunk allocator to use. Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux/percpu.h')
-rw-r--r--include/linux/percpu.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/percpu.h b/include/linux/percpu.h
index e26788e0da4a..9be05cbe5ee0 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -59,6 +59,18 @@
extern void *pcpu_base_addr;
extern const int *pcpu_unit_map;
+enum pcpu_fc {
+ PCPU_FC_AUTO,
+ PCPU_FC_EMBED,
+ PCPU_FC_PAGE,
+ PCPU_FC_LPAGE,
+
+ PCPU_FC_NR,
+};
+extern const char *pcpu_fc_names[PCPU_FC_NR];
+
+extern enum pcpu_fc pcpu_chosen_fc;
+
typedef void * (*pcpu_fc_alloc_fn_t)(unsigned int cpu, size_t size);
typedef void (*pcpu_fc_free_fn_t)(void *ptr, size_t size);
typedef void (*pcpu_fc_populate_pte_fn_t)(unsigned long addr);