Hi Dave, Here is the patch to fix crash to address "kmem_cache_s" and "_rss" name changes - in linux git tree. Thanks, Badari
--- crash-4.0-2.11/memory.c 2005-11-10 13:14:01.000000000 -0800 +++ crash-4.0-2.11.fix/memory.c 2005-11-14 15:28:22.000000000 -0800 @@ -191,6 +191,8 @@ vm_init(void) MEMBER_OFFSET_INIT(mm_struct_rss, "mm_struct", "rss"); if (!VALID_MEMBER(mm_struct_rss)) MEMBER_OFFSET_INIT(mm_struct_rss, "mm_struct", "_rss"); + if (!VALID_MEMBER(mm_struct_rss)) + MEMBER_OFFSET_INIT(mm_struct_rss, "mm_struct", "_file_rss"); MEMBER_OFFSET_INIT(mm_struct_anon_rss, "mm_struct", "anon_rss"); if (!VALID_MEMBER(mm_struct_anon_rss)) MEMBER_OFFSET_INIT(mm_struct_anon_rss, "mm_struct", "_anon_rss"); @@ -282,6 +284,7 @@ vm_init(void) STRUCT_SIZE_INIT(kmem_slab_s, "kmem_slab_s"); STRUCT_SIZE_INIT(slab_s, "slab_s"); STRUCT_SIZE_INIT(slab, "slab"); + STRUCT_SIZE_INIT(kmem_cache_s, "kmem_cache_s"); STRUCT_SIZE_INIT(pgd_t, "pgd_t"); if (!VALID_STRUCT(kmem_slab_s) && VALID_STRUCT(slab_s)) { @@ -322,17 +325,37 @@ vm_init(void) !VALID_STRUCT(slab_s) && VALID_STRUCT(slab)) { vt->flags |= PERCPU_KMALLOC_V2; - MEMBER_OFFSET_INIT(kmem_cache_s_num, "kmem_cache_s", "num"); - MEMBER_OFFSET_INIT(kmem_cache_s_next, "kmem_cache_s", "next"); - MEMBER_OFFSET_INIT(kmem_cache_s_name, "kmem_cache_s", "name"); - MEMBER_OFFSET_INIT(kmem_cache_s_colour_off, "kmem_cache_s", - "colour_off"); - MEMBER_OFFSET_INIT(kmem_cache_s_objsize, "kmem_cache_s", - "objsize"); - MEMBER_OFFSET_INIT(kmem_cache_s_flags, "kmem_cache_s", "flags"); - MEMBER_OFFSET_INIT(kmem_cache_s_gfporder, - "kmem_cache_s", "gfporder"); - + if (VALID_STRUCT(kmem_cache_s)) { + MEMBER_OFFSET_INIT(kmem_cache_s_num, "kmem_cache_s", "num"); + MEMBER_OFFSET_INIT(kmem_cache_s_next, "kmem_cache_s", "next"); + MEMBER_OFFSET_INIT(kmem_cache_s_name, "kmem_cache_s", "name"); + MEMBER_OFFSET_INIT(kmem_cache_s_colour_off, "kmem_cache_s", + "colour_off"); + MEMBER_OFFSET_INIT(kmem_cache_s_objsize, "kmem_cache_s", + "objsize"); + MEMBER_OFFSET_INIT(kmem_cache_s_flags, "kmem_cache_s", "flags"); + MEMBER_OFFSET_INIT(kmem_cache_s_gfporder, + "kmem_cache_s", "gfporder"); + + MEMBER_OFFSET_INIT(kmem_cache_s_lists, "kmem_cache_s", "lists"); + MEMBER_OFFSET_INIT(kmem_cache_s_array, "kmem_cache_s", "array"); + ARRAY_LENGTH_INIT(len, NULL, "kmem_cache_s.array", NULL, 0); + } else { + MEMBER_OFFSET_INIT(kmem_cache_s_num, "kmem_cache", "num"); + MEMBER_OFFSET_INIT(kmem_cache_s_next, "kmem_cache", "next"); + MEMBER_OFFSET_INIT(kmem_cache_s_name, "kmem_cache", "name"); + MEMBER_OFFSET_INIT(kmem_cache_s_colour_off, "kmem_cache", + "colour_off"); + MEMBER_OFFSET_INIT(kmem_cache_s_objsize, "kmem_cache", + "objsize"); + MEMBER_OFFSET_INIT(kmem_cache_s_flags, "kmem_cache", "flags"); + MEMBER_OFFSET_INIT(kmem_cache_s_gfporder, + "kmem_cache", "gfporder"); + + MEMBER_OFFSET_INIT(kmem_cache_s_lists, "kmem_cache", "lists"); + MEMBER_OFFSET_INIT(kmem_cache_s_array, "kmem_cache", "array"); + ARRAY_LENGTH_INIT(len, NULL, "kmem_cache.array", NULL, 0); + } MEMBER_OFFSET_INIT(slab_list, "slab", "list"); MEMBER_OFFSET_INIT(slab_s_mem, "slab", "s_mem"); MEMBER_OFFSET_INIT(slab_inuse, "slab", "inuse"); @@ -342,10 +365,6 @@ vm_init(void) MEMBER_OFFSET_INIT(array_cache_limit, "array_cache", "limit"); STRUCT_SIZE_INIT(array_cache, "array_cache"); - MEMBER_OFFSET_INIT(kmem_cache_s_lists, "kmem_cache_s", "lists"); - MEMBER_OFFSET_INIT(kmem_cache_s_array, "kmem_cache_s", "array"); - ARRAY_LENGTH_INIT(len, NULL, "kmem_cache_s.array", NULL, 0); - MEMBER_OFFSET_INIT(kmem_list3_slabs_partial, "kmem_list3", "slabs_partial"); MEMBER_OFFSET_INIT(kmem_list3_slabs_full, @@ -491,6 +510,8 @@ vm_init(void) STRUCT_SIZE_INIT(zone, "zone"); STRUCT_SIZE_INIT(zone_struct, "zone_struct"); STRUCT_SIZE_INIT(kmem_cache_s, "kmem_cache_s"); + if (!VALID_STRUCT(kmem_cache_s)) + STRUCT_SIZE_INIT(kmem_cache_s, "kmem_cache"); STRUCT_SIZE_INIT(kmem_bufctl_t, "kmem_bufctl_t"); STRUCT_SIZE_INIT(swap_info_struct, "swap_info_struct"); STRUCT_SIZE_INIT(mm_struct, "mm_struct"); --- crash-4.0-2.11/symbols.c 2005-11-10 13:14:01.000000000 -0800 +++ crash-4.0-2.11.fix/symbols.c 2005-11-14 14:53:57.000000000 -0800 @@ -5433,6 +5433,8 @@ builtin_array_length(char *s, int len, i lenptr = &array_table.kmem_cache_s_c_name; else if (STREQ(s, "kmem_cache_s.array")) lenptr = &array_table.kmem_cache_s_array; + else if (STREQ(s, "kmem_cache.array")) + lenptr = &array_table.kmem_cache_s_array; else if (STREQ(s, "kmem_cache_s.cpudata")) lenptr = &array_table.kmem_cache_s_cpudata; else if (STREQ(s, "log_buf"))