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 A44B5C4345F for ; Tue, 23 Apr 2024 01:46:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F39B46B0092; Mon, 22 Apr 2024 21:46:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EF7C66B0093; Mon, 22 Apr 2024 21:46:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DD77A6B0095; Mon, 22 Apr 2024 21:46:26 -0400 (EDT) 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 BE1B56B0092 for ; Mon, 22 Apr 2024 21:46:26 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 2F240160655 for ; Tue, 23 Apr 2024 01:46:26 +0000 (UTC) X-FDA: 82039106772.23.78EC0B6 Received: from out30-100.freemail.mail.aliyun.com (out30-100.freemail.mail.aliyun.com [115.124.30.100]) by imf11.hostedemail.com (Postfix) with ESMTP id 862D14000E for ; Tue, 23 Apr 2024 01:46:23 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b="M4gCv/fz"; spf=pass (imf11.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.100 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713836784; 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=nbp8Po9QugxndSl6Xnhz2pUHpg0EmUfrKyhVksct1oM=; b=1/lw6wQ90qfllkXaAUqCGBhLF/Y/bGTdHGe0qVsVONK7+9DI2odqm+jdlwjeBlErZOkzAZ qGnWAgp1kJ+j56fdqKMRN0Z+uVjcmyETh7nHWt4cUILYEc0BaB9aXFPbtmj+VVGaESh4zU oal0PvvFccUBGXIzLBNRZEH6uo1o+vk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713836784; a=rsa-sha256; cv=none; b=Y25+s5x2X1WkplKmoVNSqATqi3ER2BOXA1sBBNE/XdapEOslRW33ioj0Y4c6Nmv+Ty5l7u 8rk+KBOA5Zs9zWdCh3IeKK30wdpu5DqVo9PHGxfGD0OvJm6PYWSfi5M7kfHNVIoBLUcr25 Q7VMvAA2FOcZNCUShuQE0qiIDeoTXuA= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b="M4gCv/fz"; spf=pass (imf11.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.100 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1713836780; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=nbp8Po9QugxndSl6Xnhz2pUHpg0EmUfrKyhVksct1oM=; b=M4gCv/fzcRSOt5kCQmBCZjZ0UuMipGOgoZKKh7oCUmm0WaBZ1T3KQFXrUSrLUrv8bM922Z484F/Tr2KJzeFReCLmRgeZHCLJhWroGRdihoO2vjOaSiQRGcMyajz4JQxMBX/EkYZFh+0uoH8EYQPfLMaKJ23jJScsbRwJUGBUwDc= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R111e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045168;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=12;SR=0;TI=SMTPD_---0W570E4y_1713836777; Received: from 30.97.56.65(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0W570E4y_1713836777) by smtp.aliyun-inc.com; Tue, 23 Apr 2024 09:46:18 +0800 Message-ID: <3045341d-06c2-4fdb-88a1-3f0d473f99ee@linux.alibaba.com> Date: Tue, 23 Apr 2024 09:46:17 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 5/5] mm: shmem: add anonymous share mTHP counters To: Barry Song <21cnbao@gmail.com> Cc: akpm@linux-foundation.org, hughd@google.com, willy@infradead.org, david@redhat.com, wangkefeng.wang@huawei.com, ryan.roberts@arm.com, ying.huang@intel.com, shy828301@gmail.com, ziy@nvidia.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <05d0096e4ec3e572d1d52d33a31a661321ac1551.1713755580.git.baolin.wang@linux.alibaba.com> From: Baolin Wang In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 862D14000E X-Rspam-User: X-Stat-Signature: aeoanm4owahrgntahcejgse18bknnods X-HE-Tag: 1713836783-446328 X-HE-Meta: U2FsdGVkX1+pbxOsIcLkG8kwUzRT+c8ROSx4kKq1PLkUCizZnWlYr9SzjPLOql2TDs2Xn2DX0GRUGZ5hFNuA1+mQ245D17Y9L5n09SqshcEKrBqM8Dh6NL47RWgfOXk+KNCFH3YJ9SjoLFyEy9O8Iz+YadEAh6nLhGHeGkAeuHyiz0nfyCg/iqtRbtKpQrnUA3LUaEk6rOqy6tUXYCTsfQKPnSIyA45seMlXTBW8dKlisoXcQwTsWAqX7FcSWOTSH+xX7U/hBTEcvsj1GVSA6v4+xRe6JjP99FMZR0tSFqVsYdB+v0xffeTDFu/5ofJ/HZ/DIrGIbmDZCTypYLF/WQNXQeM3/pLBWYccM7URqWHmdEv/5qoymzyUvv2tdK+VEm4/yBslHK4dDEHy9YMUJxGw9bRMiJtcxwp4Kwc8UZF38xFgH1b1LZUKooiLAN4IS7s6JssmdzlIWyoxIiL6zCXMCiBlB+aYmk/dman6+z3+u3FZRcxSN3KwBLlwbJSR3IkujicQmz83aBfMQ+ixAl3Un3QxOTyXNV2uYOcvy2d3uC21U1b1jYYqk1UkIHPxD6M82E13/Newv/Sd5iAVn8TAKEYSt/+8oa6hcVKqVisORMdNkjGrU42q7l5gfIgdJVGNIKLEN4+2wMNw7z5Sump+aGQHn4IbIXJNyR6vRsXUqngkdswy19sCVF6fd4wRI9zo9KUla2D0lYmdb+6M6+j9INBxfZQAaNNduA9cZux26dwU3MMxhrDI10i5LFu9Z8gnKYVBrFv+RhvyX/mo+IBSQnkhvNMp0h4S11m0UnsPZgz6mlDnDetJejvu2LLD7elW/g+WKDQ4ZQLklx0pSQNUSnVDxR8gJfC+pwqm6iFDMK+n7IO8WdirsCjFDNlS9B8YZaQas6sDluWhKno3lLrqEPJGTcSN 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: List-Subscribe: List-Unsubscribe: On 2024/4/23 09:17, Barry Song wrote: > On Mon, Apr 22, 2024 at 3:03 PM Baolin Wang > wrote: >> >> Signed-off-by: Baolin Wang >> --- >> include/linux/huge_mm.h | 2 ++ >> mm/huge_memory.c | 4 ++++ >> mm/shmem.c | 5 ++++- >> 3 files changed, 10 insertions(+), 1 deletion(-) >> >> diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h >> index 26b6fa98d8ac..67b9c1acad31 100644 >> --- a/include/linux/huge_mm.h >> +++ b/include/linux/huge_mm.h >> @@ -270,6 +270,8 @@ enum mthp_stat_item { >> MTHP_STAT_ANON_SWPOUT, >> MTHP_STAT_ANON_SWPOUT_FALLBACK, >> MTHP_STAT_ANON_SWPIN_REFAULT, >> + MTHP_STAT_SHMEM_ANON_ALLOC, >> + MTHP_STAT_SHMEM_ANON_ALLOC_FALLBACK, > > not quite sure about this. for 2MB pmd-mapped THP shmem, we count them > as FILE_THP. > here we are counting as SHMEM_ANON. To me, SHMEM_ANON is more correct but > it doesn't align with pmd-mapped THP. David, Ryan, what do you think? Thanks for reviewing. IMO, I think both approaches are acceptable, which also reflects the dual nature of anonymous shared pages: on the one hand they are anonymous pages, and on the other hand, they are backed by a pseudo file. From the user's perspective, I prefer to use the term "anonymous shmem", which can be distinguished from the real file-backed THP. Anyway, let's see what others think. >> __MTHP_STAT_COUNT >> }; >> >> diff --git a/mm/huge_memory.c b/mm/huge_memory.c >> index 9e52c0db7580..dc15240c1ab3 100644 >> --- a/mm/huge_memory.c >> +++ b/mm/huge_memory.c >> @@ -557,6 +557,8 @@ DEFINE_MTHP_STAT_ATTR(anon_alloc_fallback, MTHP_STAT_ANON_ALLOC_FALLBACK); >> DEFINE_MTHP_STAT_ATTR(anon_swpout, MTHP_STAT_ANON_SWPOUT); >> DEFINE_MTHP_STAT_ATTR(anon_swpout_fallback, MTHP_STAT_ANON_SWPOUT_FALLBACK); >> DEFINE_MTHP_STAT_ATTR(anon_swpin_refault, MTHP_STAT_ANON_SWPIN_REFAULT); >> +DEFINE_MTHP_STAT_ATTR(shmem_anon_alloc, MTHP_STAT_SHMEM_ANON_ALLOC); >> +DEFINE_MTHP_STAT_ATTR(shmem_anon_alloc_fallback, MTHP_STAT_SHMEM_ANON_ALLOC_FALLBACK); >> >> static struct attribute *stats_attrs[] = { >> &anon_alloc_attr.attr, >> @@ -564,6 +566,8 @@ static struct attribute *stats_attrs[] = { >> &anon_swpout_attr.attr, >> &anon_swpout_fallback_attr.attr, >> &anon_swpin_refault_attr.attr, >> + &shmem_anon_alloc_attr.attr, >> + &shmem_anon_alloc_fallback_attr.attr, >> NULL, >> }; >> >> diff --git a/mm/shmem.c b/mm/shmem.c >> index 8b009e7040b2..4a0aa75ab29c 100644 >> --- a/mm/shmem.c >> +++ b/mm/shmem.c >> @@ -1706,11 +1706,14 @@ static struct folio *shmem_alloc_and_add_folio(struct vm_fault *vmf, >> pages = 1 << order; >> index = round_down(index, pages); >> folio = shmem_alloc_hugefolio(gfp, info, index, order); >> - if (folio) >> + if (folio) { >> + count_mthp_stat(order, MTHP_STAT_SHMEM_ANON_ALLOC); >> goto allocated; >> + } >> >> if (pages == HPAGE_PMD_NR) >> count_vm_event(THP_FILE_FALLBACK); >> + count_mthp_stat(order, MTHP_STAT_SHMEM_ANON_ALLOC_FALLBACK); >> order = next_order(&orders, order); >> } >> } else { >> -- >> 2.39.3 >> > > Thanks > Barry