aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/percpu.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-08-14 02:00:50 -0400
committerTejun Heo <tj@kernel.org>2009-08-14 02:00:50 -0400
commitf58dc01ba2ca9fe3ab2ba4ca43d9c8a735cf62d8 (patch)
tree9eb76a0d6aa34e56f8650fe98a5ce26891a522ab /include/linux/percpu.h
parent08fc45806103e59a37418e84719b878f9bb32540 (diff)
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 @@
59extern void *pcpu_base_addr; 59extern void *pcpu_base_addr;
60extern const int *pcpu_unit_map; 60extern const int *pcpu_unit_map;
61 61
62enum pcpu_fc {
63 PCPU_FC_AUTO,
64 PCPU_FC_EMBED,
65 PCPU_FC_PAGE,
66 PCPU_FC_LPAGE,
67
68 PCPU_FC_NR,
69};
70extern const char *pcpu_fc_names[PCPU_FC_NR];
71
72extern enum pcpu_fc pcpu_chosen_fc;
73
62typedef void * (*pcpu_fc_alloc_fn_t)(unsigned int cpu, size_t size); 74typedef void * (*pcpu_fc_alloc_fn_t)(unsigned int cpu, size_t size);
63typedef void (*pcpu_fc_free_fn_t)(void *ptr, size_t size); 75typedef void (*pcpu_fc_free_fn_t)(void *ptr, size_t size);
64typedef void (*pcpu_fc_populate_pte_fn_t)(unsigned long addr); 76typedef void (*pcpu_fc_populate_pte_fn_t)(unsigned long addr);