From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 30C4CC6FD1A for ; Tue, 7 Mar 2023 18:54:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B55736B0073; Tue, 7 Mar 2023 13:54:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A8FBB6B0074; Tue, 7 Mar 2023 13:54:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 907FB6B0075; Tue, 7 Mar 2023 13:54:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 826666B0073 for ; Tue, 7 Mar 2023 13:54:27 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 468EDA0102 for ; Tue, 7 Mar 2023 18:54:27 +0000 (UTC) X-FDA: 80543002974.04.3188E3A Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by imf15.hostedemail.com (Postfix) with ESMTP id A6B8DA0017 for ; Tue, 7 Mar 2023 18:54:24 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=ETjLdDYy; spf=pass (imf15.hostedemail.com: domain of imbrenda@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=imbrenda@linux.ibm.com; dmarc=pass (policy=none) header.from=ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678215264; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=g7YT0+ElDMXCaFF7eK5zZ2nZNlTQEZZP7BVQ34gPmio=; b=GdSBuRLkyu4ZAwR1Dl/NAzqi5ecBW13nor6F/kYegJdAjF4gP7Z+hbgP3GpmBukVJufRTy mgLDqccsqoB5lHb8nPGajda1wzCAz4DtjuydTr36Iehr0QjGVA1X0PORqFEzdiLMFXgEvJ Nzduj6yx2qIXHl3xsQ9WDCvoybCF7Wk= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=ETjLdDYy; spf=pass (imf15.hostedemail.com: domain of imbrenda@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=imbrenda@linux.ibm.com; dmarc=pass (policy=none) header.from=ibm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678215264; a=rsa-sha256; cv=none; b=Cuy+Xgyvg3Dfh75I0VfvxFA6GdB0LdZb8HbpLH9jIUlkCJjv8RJVnD5f4Aw+vn+DwtRAaM ZG/0WQkoFl0gKhv7MZnz7fWbqdKxpXqYLSJCfIPUtBVBhz2OcOzpI7hFT0n9wxdpB5vMcA vEWN/BN/YvFzieY7rRgsUOHUt/mjs+w= Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 327IWQGH026106; Tue, 7 Mar 2023 18:54:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=date : from : to : cc : subject : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=pp1; bh=g7YT0+ElDMXCaFF7eK5zZ2nZNlTQEZZP7BVQ34gPmio=; b=ETjLdDYyEZz8VHEnjLeR3dtYa4aDdYNUpCeL+cKnysw9ueBlmrQWNqpSacdlYsp6uLgI B3S75SfDgkKZ8jZ/12fUpv8pXIAh/RjYrzV+nzT9iFWbk0OgPqxi0AOz9G+raWaJWPCN ExDlXd2cZ65mTzC2KiClZFwqUmY67SSGhYlMEBINWNIa1PZSF+S4d1iczA+ZHnjV21rM FtrKQfLbkzKZXqANCmo/bak2BVDEs9w7yBASwtx61jWA1fZ28LJYYzKcRgdQqJrY38IR r5cApx0hwSQhonj+9jkq1FxAe2Zjq7sC05R3kCpxGWlrk4gpul3+J4l1U0r9pbA1PPTs fg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3p68k2455f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Mar 2023 18:54:23 +0000 Received: from m0098399.ppops.net (m0098399.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 327Hg37U028724; Tue, 7 Mar 2023 18:54:22 GMT Received: from ppma03ams.nl.ibm.com (62.31.33a9.ip4.static.sl-reverse.com [169.51.49.98]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3p68k2454t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Mar 2023 18:54:22 +0000 Received: from pps.filterd (ppma03ams.nl.ibm.com [127.0.0.1]) by ppma03ams.nl.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 327FjDk5030497; Tue, 7 Mar 2023 18:54:20 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma03ams.nl.ibm.com (PPS) with ESMTPS id 3p418cvpd1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Mar 2023 18:54:20 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 327IsHMY30605592 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Mar 2023 18:54:17 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CF5B72004B; Tue, 7 Mar 2023 18:54:17 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4963820040; Tue, 7 Mar 2023 18:54:17 +0000 (GMT) Received: from p-imbrenda (unknown [9.179.29.172]) by smtpav04.fra02v.mail.ibm.com (Postfix) with SMTP; Tue, 7 Mar 2023 18:54:17 +0000 (GMT) Date: Tue, 7 Mar 2023 19:45:41 +0100 From: Claudio Imbrenda To: Cc: , , , , , , , Subject: Re: [PATCH v6 3/6] ksm: count all zero pages placed by KSM Message-ID: <20230307194541.11a36cb0@p-imbrenda> In-Reply-To: <202302100918524481474@zte.com.cn> References: <202302100918524481474@zte.com.cn> Organization: IBM X-Mailer: Claws Mail 4.1.1 (GTK 3.24.35; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-GUID: 7Emyg1iLKvicamys-LflQtMZRVQgp8UR X-Proofpoint-ORIG-GUID: mZFyfI_bY4FZGW1Q5ACFyQdj3iQJJH0l X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-07_12,2023-03-07_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 mlxlogscore=999 mlxscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 priorityscore=1501 impostorscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303070164 X-Rspamd-Queue-Id: A6B8DA0017 X-Stat-Signature: dy9ga3wugfoibkhtisn3ez54bu51i8z3 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1678215264-550021 X-HE-Meta: U2FsdGVkX18GaFoaXqAUIO4zXWP+lXWcPInDY6QKAsslZVMUARk7BY3RU4Xw+zKYcEFrzMpq+APtAtBMN9SQ1Z06vVA+gerV8eRQJqXlZJzHl3buEYizPHNWsfu3yKjc0JXntEfp3RPXBd5Yq6NqXOTPhSti3KJx6FQLLUQmZsTSVJTdWv3KhzKfbUqZuwlySFwpqVoQgQzDjYqKFbBd4zO0pImxU1IvDXsbnRMYST9KMrH6jgD1ASVM4wJVh7Ci3iBlO4dZByNUkSz6edWVzpSqsNXMtt0ILcwFYaIJWEuFDSoDIs4aPyenu1C4mLYH4ZBoZm6+bbzJNlbJz5Eh0IntQnVga7RoVnflN3CjUcMCSYZfLLRR6bb0QhHxoS+FmID5GuvhCJat9pQFxOhqi1Ofe0Z5dR73fKnXBOQapLfKUoySCrNG1O/0pr6Cqk0aS3BTv79wX9uq+yFXb8waESWUNj+lwInsuIHDotY66C64I5Va3jl1Aq5TncTUkogz6Y+QENTj5H5oo5Mw736m07W5yzKW0x0fNmzFx5gKUgVsQ8EAekBoeb03yGKRIjg8QpNBrlgV4oPUQvTASMHsT5vGfcEgTPfmPNLxJbbac9WGwhhLwsoRgiiFPQ2myr5uO8ul4rXCk+CA54jA/bwdByweWi4ZhRw0EAu2CIKmIyedxLLKg7Jr0XxDWNYfW5maASdA0q+Y0lkVxWu7M5Z4aKhz0zH8Ad7TYjsDXr8va92Dsv/IynjnlLhlqmPpauoYV5Kvp1ATKzjJcw9WRZAt4/6ioP+hje2M5XI7eNIdqsqYtZmbRRpd74kgAgNhan/ZbbGSAMWPlleytUTl1Y70ameN6MVuKLl5BTvTHZxqZ7Tcn/QvplCUnyIOGyKUtW4eAJqF5MNgqwaQn59uDaFKhT50TcQzfjPq1ptCj1Z+dVBsSClaULXEiEbO9YHSzEsaq2x9K6Jk3hia85iK4z6 tDchq4wo hYHsz0HAJyZMs9V3Rt8eYhS+PXNnmuWlofJly4pQxMCeTGNDiFgx4bo4BEyZTkIzJ4A47IBjuAoVhRuoMmyFfMpFBj5sd9ZMZkNIHrOf5jOTf+eXpP1cCCiSlj5LeCTDsKlCrBWdGljU6gb68MpS1t1jbIsDRnGzcGAWqK8pfPxVb8whKIjLZoiRTA85VWkEVNmOZMUnHxYZQerDLazKTjGAT4cj04mbYdmXH/EVBc1GqfD5vBhvvtbfiVVzb/FSMaklioBREeG3Y1ny3j2LGxDTdUm6Lhi/GcO8Opa3en8lnUWdubJ7gIN8GCkYOrP6Xc9QmjbbMGvbqfJToL30m8EHzC2ftBHk4VwnMM5WtMbWdPeY= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, 10 Feb 2023 09:18:52 +0800 (CST) wrote: > From: xu xin > > As pages_sharing and pages_shared don't include the number of zero pages > merged by KSM, we cannot know how many pages are zero pages placed by KSM > when enabling use_zero_pages, which leads to KSM not being transparent with > all actual merged pages by KSM. In the early days of use_zero_pages, > zero-pages was unable to get unshared by the ways like MADV_UNMERGEABLE so > it's hard to count how many times one of those zeropages was then unmerged. > > But now, unsharing KSM-placed zero page accurately has been achieved, so we > can easily count both how many times a page full of zeroes was merged with > zero-page and how many times one of those pages was then unmerged. and so, > it helps to estimate memory demands when each and every shared page could > get unshared. > > So we add zero_pages_sharing under /sys/kernel/mm/ksm/ to show the number > of all zero pages placed by KSM. > > Signed-off-by: xu xin > Cc: Claudio Imbrenda > Cc: David Hildenbrand > Cc: Xuexin Jiang > Reviewed-by: Xiaokai Ran > Reviewed-by: Yang Yang Reviewed-by: Claudio Imbrenda > > v4->v5: > fix warning mm/ksm.c:3238:9: warning: no previous prototype for > 'zero_pages_sharing_show' [-Wmissing-prototypes]. > --- > mm/ksm.c | 19 +++++++++++++++++-- > 1 file changed, 17 insertions(+), 2 deletions(-) > > diff --git a/mm/ksm.c b/mm/ksm.c > index ab04b44679c8..1fa668e1fe82 100644 > --- a/mm/ksm.c > +++ b/mm/ksm.c > @@ -276,6 +276,9 @@ static unsigned int zero_checksum __read_mostly; > /* Whether to merge empty (zeroed) pages with actual zero pages */ > static bool ksm_use_zero_pages __read_mostly; > > +/* The number of zero pages placed by KSM use_zero_pages */ > +static unsigned long ksm_zero_pages_sharing; > + > #ifdef CONFIG_NUMA > /* Zeroed when merging across nodes is not allowed */ > static unsigned int ksm_merge_across_nodes = 1; > @@ -789,8 +792,10 @@ static struct page *get_ksm_page(struct ksm_stable_node *stable_node, > */ > static inline void clean_rmap_item_zero_flag(struct ksm_rmap_item *rmap_item) > { > - if (rmap_item->address & ZERO_PAGE_FLAG) > + if (rmap_item->address & ZERO_PAGE_FLAG) { > + ksm_zero_pages_sharing--; > rmap_item->address &= PAGE_MASK; > + } > } > > /* Only called when rmap_item is going to be freed */ > @@ -2109,8 +2114,10 @@ static int try_to_merge_with_kernel_zero_page(struct ksm_rmap_item *rmap_item, > if (vma) { > err = try_to_merge_one_page(vma, page, > ZERO_PAGE(rmap_item->address)); > - if (!err) > + if (!err) { > rmap_item->address |= ZERO_PAGE_FLAG; > + ksm_zero_pages_sharing++; > + } > } else { > /* If the vma is out of date, we do not need to continue. */ > err = 0; > @@ -3230,6 +3237,13 @@ static ssize_t pages_volatile_show(struct kobject *kobj, > } > KSM_ATTR_RO(pages_volatile); > > +static ssize_t zero_pages_sharing_show(struct kobject *kobj, > + struct kobj_attribute *attr, char *buf) > +{ > + return sysfs_emit(buf, "%ld\n", ksm_zero_pages_sharing); > +} > +KSM_ATTR_RO(zero_pages_sharing); > + > static ssize_t stable_node_dups_show(struct kobject *kobj, > struct kobj_attribute *attr, char *buf) > { > @@ -3285,6 +3299,7 @@ static struct attribute *ksm_attrs[] = { > &pages_sharing_attr.attr, > &pages_unshared_attr.attr, > &pages_volatile_attr.attr, > + &zero_pages_sharing_attr.attr, > &full_scans_attr.attr, > #ifdef CONFIG_NUMA > &merge_across_nodes_attr.attr,