git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
slab: shrink sizeof(struct kmem_cache)
[pandora-kernel.git]
/
include
/
linux
/
slab_def.h
diff --git
a/include/linux/slab_def.h
b/include/linux/slab_def.h
index
d7f6311
..
d00e0ba
100644
(file)
--- a/
include/linux/slab_def.h
+++ b/
include/linux/slab_def.h
@@
-24,21
+24,19
@@
*/
struct kmem_cache {
*/
struct kmem_cache {
-/* 1) per-cpu data, touched during every alloc/free */
- struct array_cache *array[NR_CPUS];
-/* 2) Cache tunables. Protected by cache_chain_mutex */
+/* 1) Cache tunables. Protected by cache_chain_mutex */
unsigned int batchcount;
unsigned int limit;
unsigned int shared;
unsigned int buffer_size;
u32 reciprocal_buffer_size;
unsigned int batchcount;
unsigned int limit;
unsigned int shared;
unsigned int buffer_size;
u32 reciprocal_buffer_size;
-/*
3
) touched by every alloc & free from the backend */
+/*
2
) touched by every alloc & free from the backend */
unsigned int flags; /* constant flags */
unsigned int num; /* # of objs per slab */
unsigned int flags; /* constant flags */
unsigned int num; /* # of objs per slab */
-/*
4
) cache_grow/shrink */
+/*
3
) cache_grow/shrink */
/* order of pgs per slab (2^n) */
unsigned int gfporder;
/* order of pgs per slab (2^n) */
unsigned int gfporder;
@@
-54,11
+52,11
@@
struct kmem_cache {
/* constructor func */
void (*ctor)(void *obj);
/* constructor func */
void (*ctor)(void *obj);
-/*
5
) cache creation/removal */
+/*
4
) cache creation/removal */
const char *name;
struct list_head next;
const char *name;
struct list_head next;
-/*
6
) statistics */
+/*
5
) statistics */
#ifdef CONFIG_DEBUG_SLAB
unsigned long num_active;
unsigned long num_allocations;
#ifdef CONFIG_DEBUG_SLAB
unsigned long num_active;
unsigned long num_allocations;
@@
-85,16
+83,18
@@
struct kmem_cache {
int obj_size;
#endif /* CONFIG_DEBUG_SLAB */
int obj_size;
#endif /* CONFIG_DEBUG_SLAB */
+/* 6) per-cpu/per-node data, touched during every alloc/free */
/*
/*
- * We put
nodelists
[] at the end of kmem_cache, because we want to size
- * this array to nr_
node_ids slots instead of MAX_NUMNODE
S
+ * We put
array
[] at the end of kmem_cache, because we want to size
+ * this array to nr_
cpu_ids slots instead of NR_CPU
S
* (see kmem_cache_init())
* (see kmem_cache_init())
- * We still use [
MAX_NUMNODE
S] and not [1] or [0] because cache_cache
- * is statically defined, so we reserve the max number of
node
s.
+ * We still use [
NR_CPU
S] and not [1] or [0] because cache_cache
+ * is statically defined, so we reserve the max number of
cpu
s.
*/
*/
- struct kmem_list3 *nodelists[MAX_NUMNODES];
+ struct kmem_list3 **nodelists;
+ struct array_cache *array[NR_CPUS];
/*
/*
- * Do not add fields after
nodelists
[]
+ * Do not add fields after
array
[]
*/
};
*/
};