Thread (27 messages) 27 messages, 4 authors, 2012-06-01

Re: Common 06/22] Extract common fields from struct kmem_cache

From: Pekka Enberg <penberg@kernel.org>
Date: 2012-05-30 06:39:37

On Wed, May 23, 2012 at 11:34 PM, Christoph Lameter [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Define "COMMON" to include definitions for fields used in all
slab allocators. After that it will be possible to share code that
only operates on those fields of kmem_cache.

The patch basically takes the slob definition of kmem cache and
uses the field namees for the other allocators.

The slob definition of kmem_cache is moved from slob.c to slob_def.h
so that the location of the kmem_cache definition is the same for
all allocators.

Reviewed-by: Glauber Costa <redacted>
Reviewed-by: Joonsoo Kim <redacted>
Signed-off-by: Christoph Lameter <redacted>

---
 include/linux/slab.h     |   11 +++++++++++
 include/linux/slab_def.h |    8 ++------
 include/linux/slob_def.h |    4 ++++
 include/linux/slub_def.h |   11 ++++-------
 mm/slab.c                |   30 +++++++++++++++---------------
 mm/slob.c                |    7 -------
 6 files changed, 36 insertions(+), 35 deletions(-)

Index: linux-2.6/include/linux/slab.h
===================================================================
--- linux-2.6.orig/include/linux/slab.h 2012-05-22 09:05:49.416464029 -0500
+++ linux-2.6/include/linux/slab.h      2012-05-23 04:23:21.423024939 -0500
@@ -93,6 +93,17 @@
                               (unsigned long)ZERO_SIZE_PTR)

 /*
+ * Common fields provided in kmem_cache by all slab allocators
+ */
+#define SLAB_COMMON \
+       unsigned int size, align;                                       \
+       unsigned long flags;                                            \
+       const char *name;                                               \
+       int refcount;                                                   \
+       void (*ctor)(void *);                                           \
+       struct list_head list;
+
I don't like this at all - it obscures the actual "kmem_cache"
structures. If we can't come up with a reasonable solution that makes
this a proper struct that's embedded in allocator-specific
"kmem_cache" structures, it's best that we rename the fields but keep
them inlined and drop this macro..

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help