Re: [PATCH 0/3] ksm: fix incorrect count of merged pages when enabling use_zero_pages

From: David Hildenbrand
Date: Thu Sep 29 2022 - 07:34:40 EST


On 29.09.22 12:42, Claudio Imbrenda wrote:
On Thu, 29 Sep 2022 02:52:06 +0000
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's because those pages are not shared between different processes.

They are probably the most shared pages between processes in the kernel. They are simply not KSM pages, that's what makes accounting tricky here.


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).

why?

do you need to know how many untouched zero pages a process has?

does it make a difference if the zero page is really untouched or if it
was touched in the past but it is now zero?

I'd also like to understand the rationale. Is it about estimating memory demands when each and every shared page could get unshared?

--
Thanks,

David / dhildenb