On vmcore of the kernel version 4.18.0-147.5.1.el8_1.x86_64, there is
the following error when trying to read the user-space memory that is
swapped out into some zram device:
crash> rd -u 0x00007f9b88bea000
rd: invalid structure member offset: zram_table_flag
FILE: diskdump.c LINE: 2784 FUNCTION: try_zram_decompress()
[./crash] error trace: 47aaa2 => 571900 => 53a3f1 => 53a373
53a373: OFFSET_verify.part.27+51
53a3f1: OFFSET_verify+49
571900: try_zram_decompress+1808
47aaa2: readmem+2562
rd: invalid structure member offset: zram_table_flag
FILE: diskdump.c LINE: 2784 FUNCTION: try_zram_decompress()
This message means that there is no flags member in zram_table_entry
structure. The flags member is renamed from the former value by the
following commit for refactoring:
7e5292831b346bacb05558ca385cae366187314c
zram: refactor flags and writeback stuff
Let's initialize offset_table.zram_table_flags by value member as
well.
---
diskdump.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/diskdump.c b/diskdump.c
index 65f43ff..63a08a1 100644
--- a/diskdump.c
+++ b/diskdump.c
@@ -2592,6 +2592,8 @@ zram_init(void)
MEMBER_OFFSET_INIT(zram_mempoll, "zram", "mem_pool");
MEMBER_OFFSET_INIT(zram_compressor, "zram", "compressor");
MEMBER_OFFSET_INIT(zram_table_flag, "zram_table_entry", "flags");
+ if (INVALID_MEMBER(zram_table_flag))
+ MEMBER_OFFSET_INIT(zram_table_flag, "zram_table_entry", "value");
STRUCT_SIZE_INIT(zram_table_entry, "zram_table_entry");
}
--
1.8.3.1