Hi all, At present, both THP and KSM module have similar structures mm_slot for organizing and recording the information required for scanning mm, and each defines the following exactly the same operation functions: - alloc_mm_slot - free_mm_slot - get_mm_slot - insert_to_mm_slots_hash In order to de-duplicate these codes, this patchset introduces a common struct mm_slot, and lets THP and KSM to use it. This series is based on next-20220829. Comments and suggestions are welcome. Thanks, Qi. Qi Zheng (7): mm: introduce common struct mm_slot mm: thp: convert to use common struct mm_slot ksm: remove redundant declarations in ksm.h ksm: add the ksm prefix to the names of the ksm private structures ksm: convert ksm_mm_slot.mm_list to ksm_mm_slot.mm_node ksm: convert ksm_mm_slot.link to ksm_mm_slot.hash ksm: convert to use common struct mm_slot Documentation/mm/ksm.rst | 2 +- include/linux/ksm.h | 3 - mm/khugepaged.c | 121 ++++++--------- mm/ksm.c | 326 ++++++++++++++++++--------------------- mm/mm_slot.h | 55 +++++++ 5 files changed, 260 insertions(+), 247 deletions(-) create mode 100644 mm/mm_slot.h -- 2.20.1