Patchset [1] introduces maple tree data structure for linux, and the modification on mm subsystem. The main impact on crash utility, is the modification on vm_area_struct. Patch [2][3] removed the rbtree and linked list iteration of vm_area_struct, making it impossible for crash to iterate vma in the traditional way. For example, we can observe the failing of crash cmd vm/fuser on kernel which has integrated with patchset [1]. This patchset deals with the issue by porting and adapting kernel's maple tree vma iteration code to crash utility. It has been tested on linux-next-next-20220914 [4]. [1]: https://lore.kernel.org/all/20220906194824.2110408-1-Liam.Howlett@xxxxxxxxxx/ [2]: https://github.com/oracle/linux-uek/commit/d19703645b80abe35dff1a88449d074b0b5b1bb1 [3]: https://github.com/oracle/linux-uek/commit/91dee01f1ebb6b6587463b6ee6f7bbc4965f91d5 [4]: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/snapshot/linux-next-next-20220914.tar.gz v1 -> v2: 1) Move xarray.h and maple_tree_vma.h into maple.h. 2) Remove variable-length array for maple_tree.c. 3) Add tree cmd and do_maple_tree() support for maple tree. 4) Other small modifications. Tao Liu (6): Port the maple tree data structures and main functions Introduce maple tree vma iteration to memory.c Add tree cmd support for maple tree Update the maple tree help info for tree cmd Add do_maple_tree support for maple tree Dump maple tree offset variables by help -o Makefile | 12 +- defs.h | 30 ++ help.c | 45 +- maple_tree.c | 1367 ++++++++++++++++++++++++++++++++++++++++++++++++++ maple_tree.h | 214 ++++++++ memory.c | 319 +++++++----- symbols.c | 40 ++ tools.c | 20 +- 8 files changed, 1885 insertions(+), 162 deletions(-) create mode 100644 maple_tree.c create mode 100644 maple_tree.h -- 2.33.1 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/crash-utility Contribution Guidelines: https://github.com/crash-utility/crash/wiki