diff -Nurp crash-4.0-4.3/defs.h crash-4.0-4.3-patched/defs.h
--- crash-4.0-4.3/defs.h	2007-09-24 10:53:05.000000000 -0300
+++ crash-4.0-4.3-patched/defs.h	2007-09-24 12:01:34.000000000 -0300
@@ -1644,6 +1644,7 @@ struct vm_table {                /* kern
 #define KMEM_CACHE_DELAY         (0x2000)
 #define NODES_ONLINE             (0x4000)
 #define VM_STAT                  (0x8000)
+#define KMALLOC_SLUB            (0x10000)
 
 #define IS_FLATMEM()		(vt->flags & FLATMEM)
 #define IS_DISCONTIGMEM()	(vt->flags & DISCONTIGMEM)
diff -Nurp crash-4.0-4.3/memory.c crash-4.0-4.3-patched/memory.c
--- crash-4.0-4.3/memory.c	2007-09-24 10:52:55.000000000 -0300
+++ crash-4.0-4.3-patched/memory.c	2007-09-24 12:01:34.000000000 -0300
@@ -408,6 +408,9 @@ vm_init(void)
 		MEMBER_OFFSET_INIT(kmem_list3_free_objects, 
 			"kmem_list3", "free_objects");
 		MEMBER_OFFSET_INIT(kmem_list3_shared, "kmem_list3", "shared");
+	} else if (MEMBER_EXISTS("kmem_cache", "cpu_slab") &&
+		STRUCT_EXISTS("kmem_cache_node")) {
+		vt->flags |= KMALLOC_SLUB;
 	} else {
 		MEMBER_OFFSET_INIT(kmem_cache_s_c_nextp,  
 			"kmem_cache_s", "c_nextp");
@@ -706,6 +709,8 @@ vm_init(void)
                 vt->dump_kmem_cache = dump_kmem_cache_percpu_v1;
 	else if (vt->flags & PERCPU_KMALLOC_V2) 
                 vt->dump_kmem_cache = dump_kmem_cache_percpu_v2;
+	else if (vt->flags & KMALLOC_SLUB)
+		vt->flags |= KMEM_CACHE_UNAVAIL;  /* TBD */
 	else 
                 vt->dump_kmem_cache = dump_kmem_cache;
 
@@ -10286,6 +10291,8 @@ dump_vm_table(int verbose)
 		fprintf(fp, "%sPERCPU_KMALLOC_V2_NODES", others++ ? "|" : "");\
 	if (vt->flags & VM_STAT)
 		fprintf(fp, "%sVM_STAT", others++ ? "|" : "");\
+	if (vt->flags & KMALLOC_SLUB)
+		fprintf(fp, "%sKMALLOC_SLUB", others++ ? "|" : "");\
 
 	fprintf(fp, ")\n");
 	if (vt->kernel_pgd[0] == vt->kernel_pgd[1])

