diff options
| author | Wei Yang <richard.weiyang@gmail.com> | 2017-07-06 18:36:34 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-06 19:24:30 -0400 |
| commit | e6d0e1dcf5f07fb04704b87ffab749589d29cb02 (patch) | |
| tree | 73c8033b1e0e8d539d0a132591ab8234834beb37 /include/linux/slub_def.h | |
| parent | a93cf07bc3fb4e7bc924d33c387dabc85086ea38 (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.h | 13 |
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 |
| 136 | void sysfs_slab_release(struct kmem_cache *); | 149 | void sysfs_slab_release(struct kmem_cache *); |
