[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20230307195313.2e21245a@p-imbrenda>
Date: Tue, 7 Mar 2023 19:53:13 +0100
From: Claudio Imbrenda <imbrenda@...ux.ibm.com>
To: <yang.yang29@....com.cn>
Cc: <akpm@...ux-foundation.org>, <david@...hat.com>,
<jiang.xuexin@....com.cn>, <linux-kernel@...r.kernel.org>,
<linux-mm@...ck.org>, <ran.xiaokai@....com.cn>,
<xu.xin.sc@...il.com>, <xu.xin16@....com.cn>
Subject: Re: [PATCH v6 6/6] selftest: add testing unsharing and counting ksm
zero page
On Fri, 10 Feb 2023 09:21:57 +0800 (CST)
<yang.yang29@....com.cn> wrote:
> From: xu xin <xu.xin16@....com.cn>
>
> Add a function test_unmerge_zero_page() to test the functionality on
> unsharing and counting ksm-placed zero pages and counting of this patch
> series.
>
> test_unmerge_zero_page() actually contains three subjct test objects:
> 1) whether the count of ksm zero page can react correctly to cow
> (copy on write);
> 2) whether the count of ksm zero page can react correctly to unmerge;
> 3) whether ksm zero pages are really unmerged.
>
> Signed-off-by: xu xin <xu.xin16@....com.cn>
> Cc: Claudio Imbrenda <imbrenda@...ux.ibm.com>
> Cc: David Hildenbrand <david@...hat.com>
> Cc: Xuexin Jiang <jiang.xuexin@....com.cn>
> Reviewed-by: Xiaokai Ran <ran.xiaokai@....com.cn>
> Reviewed-by: Yang Yang <yang.yang29@....com.cn>
[...]
> +static int unmerge_zero_page(char *start, unsigned long size)
> +{
> + int ret;
> +
> + ret = madvise(start, size, MADV_UNMERGEABLE);
> + if (ret) {
> + ksft_test_result_fail("MADV_UNMERGEABLE failed\n");
> + return ret;
> + }
> +
> + /*
> + * Wait for two full scans such that any possible unmerging of zero
> + * pages happened. Why? Because the unmerge action of zero pages is not
please remove "Why? Because"
> + * done in the context of madvise(), but in the context of
> + * unshare_zero_pages() of the ksmd thread.
> + */
> + return wait_two_full_scans();
> +}
> +
> static char *mmap_and_merge_range(char val, unsigned long size)
> {
> char *map;
[...]
Powered by blists - more mailing lists