aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/slub_def.h
diff options
context:
space:
mode:
authorWei Yang <richard.weiyang@gmail.com>2017-07-06 18:36:34 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-07-06 19:24:30 -0400
commite6d0e1dcf5f07fb04704b87ffab749589d29cb02 (patch)
tree73c8033b1e0e8d539d0a132591ab8234834beb37 /include/linux/slub_def.h
parenta93cf07bc3fb4e7bc924d33c387dabc85086ea38 (diff)
mm/slub.c: wrap kmem_cache->cpu_partial in config CONFIG_SLUB_CPU_PARTIAL
kmem_cache->cpu_partial is just used when CONFIG_SLUB_CPU_PARTIAL is set, so wrap it with config CONFIG_SLUB_CPU_PARTIAL will save some space on 32bit arch. This patch wraps kmem_cache->cpu_partial in config CONFIG_SLUB_CPU_PARTIAL and wraps its sysfs too. Link: http://lkml.kernel.org/r/20170502144533.10729-4-richard.weiyang@gmail.com Signed-off-by: Wei Yang <richard.weiyang@gmail.com> Cc: Christoph Lameter <cl@linux.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: David Rientjes <rientjes@google.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/slub_def.h')
-rw-r--r--include/linux/slub_def.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
index a3e9492fed02..cc0faf3a90be 100644
--- a/include/linux/slub_def.h
+++ b/include/linux/slub_def.h
@@ -86,7 +86,9 @@ struct kmem_cache {
86 int size; /* The size of an object including meta data */ 86 int size; /* The size of an object including meta data */
87 int object_size; /* The size of an object without meta data */ 87 int object_size; /* The size of an object without meta data */
88 int offset; /* Free pointer offset. */ 88 int offset; /* Free pointer offset. */
89#ifdef CONFIG_SLUB_CPU_PARTIAL
89 int cpu_partial; /* Number of per cpu partial objects to keep around */ 90 int cpu_partial; /* Number of per cpu partial objects to keep around */
91#endif
90 struct kmem_cache_order_objects oo; 92 struct kmem_cache_order_objects oo;
91 93
92 /* Allocation and freeing of slabs */ 94 /* Allocation and freeing of slabs */
@@ -131,6 +133,17 @@ struct kmem_cache {
131 struct kmem_cache_node *node[MAX_NUMNODES]; 133 struct kmem_cache_node *node[MAX_NUMNODES];
132}; 134};
133 135
136#ifdef CONFIG_SLUB_CPU_PARTIAL
137#define slub_cpu_partial(s) ((s)->cpu_partial)
138#define slub_set_cpu_partial(s, n) \
139({ \
140 slub_cpu_partial(s) = (n); \
141})
142#else
143#define slub_cpu_partial(s) (0)
144#define slub_set_cpu_partial(s, n)
145#endif // CONFIG_SLUB_CPU_PARTIAL
146
134#ifdef CONFIG_SYSFS 147#ifdef CONFIG_SYSFS
135#define SLAB_SUPPORTS_SYSFS 148#define SLAB_SUPPORTS_SYSFS
136void sysfs_slab_release(struct kmem_cache *); 149void sysfs_slab_release(struct kmem_cache *);