On 29.09.22 04:52, xu.xin.sc@xxxxxxxxx wrote:
From: xu xin <xu.xin16@xxxxxxxxxx> Before enabling use_zero_pages by setting /sys/kernel/mm/ksm/ use_zero_pages to 1, pages_sharing of KSM is basically accurate. But after enabling use_zero_pages, all empty pages that are merged with kernel zero page are not counted in pages_sharing or pages_shared. That is because the rmap_items of these ksm zero pages are not appended to The Stable Tree of KSM. We need to add the count of empty pages to let users know how many empty pages are merged with kernel zero page(s). Please see the subsequent patches for details.
Just raising the topic here because it's related to the KSM usage of the shared zero-page:
MADV_UNMERGEABLE and other ways to trigger unsharing will *not* unshare the shared zeropage as placed by KSM (which is against the MADV_UNMERGEABLE documentation at least). It will only unshare actual KSM pages. We might not want want to blindly unshare all shared zeropages in applicable VMAs ... using a dedicated shared zero (KSM) page -- instead of the generic zero page -- might be one way to handle this cleaner.
Would that also fix some of the issues you describe above? -- Thanks, David / dhildenb