On 2022/09/20 0:10, Tao Liu wrote:
This patch will remove all kernel structures, and leave them to be
blank
for debug purpose. There seems to be a lot of code changes, but most are
rewriting struct member resolving into crash way.
Signed-off-by: Tao Liu <ltao(a)redhat.com>
---
defs.h | 20 +++++-
maple_tree.c | 183 ++++++++++++++++++++++++++++++++-------------------
maple_tree.h | 92 ++++++--------------------
memory.c | 4 ++
4 files changed, 159 insertions(+), 140 deletions(-)
diff --git a/defs.h b/defs.h
index d4be477..8ea710f 100644
--- a/defs.h
+++ b/defs.h
@@ -1332,7 +1332,6 @@ struct offset_table { /* stash of commonly-used
offsets */
long percpu_struct_halt_ra;
long percpu_struct_halt_pv;
long mm_struct_mmap;
- long mm_struct_mm_mt;
long mm_struct_pgd;
long mm_struct_rss;
long mm_struct_anon_rss;
@@ -2182,6 +2181,23 @@ struct offset_table { /* stash of commonly-used
offsets */
long blk_mq_tags_nr_reserved_tags;
long blk_mq_tags_rqs;
long request_queue_hctx_table;
+
+ long mm_struct_mm_mt;
+ long maple_tree_ma_root;
+ long maple_tree_ma_flags;
+ long maple_node_parent;
+ long maple_node_ma64;
+ long maple_node_mr64;
+ long maple_node_slot;
+ long maple_arange_64_parent;
+ long maple_arange_64_pivot;
+ long maple_arange_64_slot;
+ long maple_arange_64_meta;
+ long maple_range_64_parent;
+ long maple_range_64_pivot;
+ long maple_range_64_slot;
+ long maple_range_64_meta;
+ long maple_metadata_end;
};
struct size_table { /* stash of commonly-used sizes */
@@ -2352,6 +2368,8 @@ struct size_table { /* stash of commonly-used sizes */
long sbitmap_queue;
long sbq_wait_state;
long blk_mq_tags;
+ long maple_tree_struct;
+ long maple_node_struct;
};
struct array_table {
diff --git a/maple_tree.c b/maple_tree.c
index 21a2226..ff07d58 100644
--- a/maple_tree.c
+++ b/maple_tree.c
@@ -78,10 +78,11 @@ static inline enum maple_type mte_node_type(const struct maple_enode
*entry)
static inline void *mas_root(struct ma_state *mas)
{
- struct maple_tree tree;
- readmem(mas->tree, KVADDR, &tree, sizeof(tree),
+ char tree[SIZE(maple_tree_struct)];
Please don't use variable-length array, which can be fragile.
Thanks,
Kazu