Since kernel commit cf338283652f ("slab: remove struct kmem_cache_cpu")
in linux-next we have no more 'cpu_slab' member in struct kmem_cache.
Pick 'cpu_sheaves' as an alternative kmem_cache member for kernel-next to
identify the SLUB case.Without the patch, crash fails to start on kernel-next with the error message: crash: invalid structure member offset: kmem_cache_s_num FILE: memory.c LINE: 9988 FUNCTION: kmem_cache_init() This fix allows the crash to start with no errors. But kmap -s is no longer working for kernel-next since kmem_cache_cpu array is completely missing. Signed-off-by: Mikhail Zaslonko <[email protected]> --- memory.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/memory.c b/memory.c index cbc8d2f..3373fdb 100644 --- a/memory.c +++ b/memory.c @@ -672,6 +672,7 @@ vm_init(void) } else if (!VALID_STRUCT(kmem_slab_s) && !VALID_STRUCT(slab_s) && !MEMBER_EXISTS("kmem_cache", "cpu_slab") && + !MEMBER_EXISTS("kmem_cache", "cpu_sheaves") && (VALID_STRUCT(slab) || (vt->flags & SLAB_OVERLOAD_PAGE))) { vt->flags |= PERCPU_KMALLOC_V2; @@ -816,7 +817,7 @@ vm_init(void) if (INVALID_MEMBER(page_first_page)) ANON_MEMBER_OFFSET_INIT(page_first_page, "page", "first_page"); - } else if (MEMBER_EXISTS("kmem_cache", "cpu_slab") && + } else if ((MEMBER_EXISTS("kmem_cache", "cpu_slab") || MEMBER_EXISTS("kmem_cache", "cpu_sheaves")) && STRUCT_EXISTS("kmem_cache_node")) { vt->flags |= KMALLOC_SLUB; -- 2.52.0 -- Crash-utility mailing list -- [email protected] To unsubscribe send an email to [email protected] https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki
