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 52277C02192 for ; Wed, 5 Feb 2025 13:53:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E5E64280005; Wed, 5 Feb 2025 08:53:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DE6E8280003; Wed, 5 Feb 2025 08:53:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C8810280005; Wed, 5 Feb 2025 08:53:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id A593D280003 for ; Wed, 5 Feb 2025 08:53:06 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D89D2120D6F for ; Wed, 5 Feb 2025 13:52:41 +0000 (UTC) X-FDA: 83086031322.08.4C3D614 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by imf28.hostedemail.com (Postfix) with ESMTP id D1353C0003 for ; Wed, 5 Feb 2025 13:52:39 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=BYUttVDA; spf=pass (imf28.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.221.48 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738763559; 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=NWD6r14a+6y1+jsCe/HuBgbt1286kvG54IAM73Hoegw=; b=Gfqj999zvfAD7xw+91wix2qPKLwJsscYzTkKfCw03CfloRyRoVIeY7M2j0UYSyWoZbFpde Z+h1RzQFH0EVje9TFGHbSw68IEQSdltq4nv8IsPG7o3yKY+XpxX+MaPuMtUown6Mk3AdEZ DTMMqGLggR9C3ZIQGeSLq9SE7WwRvVk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738763559; a=rsa-sha256; cv=none; b=tEgX0W8C+XiQc5y8d3Bek3tHNSqoMuYTqKQ3XUNPO2ccTQD1E/oom/8IVuiypsIykiLy2C E70xHJ2V1m2JlPGAZOG7D9DkIiyuccM1vDrBy2pF5HyUAxz6/7wYgqCK3A3xU1w0rz9usT +/Z+t7YvtcWwewfkLr/eAOCOV7eNkTk= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=BYUttVDA; spf=pass (imf28.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.221.48 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-38db6e13947so432248f8f.2 for ; Wed, 05 Feb 2025 05:52:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738763558; x=1739368358; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=NWD6r14a+6y1+jsCe/HuBgbt1286kvG54IAM73Hoegw=; b=BYUttVDAvyr4hR9UHtyUON6PrCn2ymhsiEheHhGTL7ZfIeo4Q1QKb/UISYlD2pLska ZtZC4Pom5SOUieJ3apaFvmUDp+/HFJMN+FSYJ9MbqvWzX64jkl9DVbEg3X3aeGudQM6y MFoTpEoIv3l0WfMF8Q2Gl6bUY7uPhgFSELepGBZytqRF/6g4/F64vnmk0B4dFHhWzLCC +W2rzsg92yPHyg/Xiy0OSfRGO+z5UGXrFLo50PZFr+oaiT/B4Bcf0mZh7gHY5UjoBv/y lO97PZb3WbZ2l2ENJXpKKaI+ltFRGGf3ETCYN3dLPriGkNt4tVRrfV1ZRkKZ+CAyTjDL qDPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738763558; x=1739368358; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=NWD6r14a+6y1+jsCe/HuBgbt1286kvG54IAM73Hoegw=; b=RLdXy3XrFQwgUv54QdsHoNszu7OfNvo59nHxgDQ9s3scpMPPNxzpijCv2jEXinC9My ySkpa9GFBDkxTV7ZxEnb5pUbaznr9WTGr5cpkOsVN8N8zjEszy8FnWNHlECCE5fap3dc yCE4JigC1b98WgBASE2BJ1+I/f8cyKDNeQ4VkEpWVXWBa0tf1TM9MFPRSTI7M2JjxI6D tp3BYsavEPWINcUvyNX3K4a2TF++lrPHfcKI/pTUvOuJIUiVxbiwQFt9Z/Ix0ake6Skp SS9I9MV2X5zAQdq66VCwiaUFkjAUtqHljOfL7APGkuWLvZCYM6BKnrABnE6i3m3pkr+K DkiA== X-Forwarded-Encrypted: i=1; AJvYcCUgVxmsvoUsnUwGWY5uXNEIJkzcLdgeF43W3OIgvGHz/IGlFM4tTSAmtrJBDdi581iIQ0nZwKWuWQ==@kvack.org X-Gm-Message-State: AOJu0YwzNABMhMwCKdTtUUqvQ1PxA08pGjKDih5Oi9ymTuwoZokFSnWc 74t5fCGNwN/dMhqYGJGonj0Sp/ezKVdDZWwO8MJkmnOT4aRbxjBg X-Gm-Gg: ASbGncuuTQVGxhUCE0tBMfufSVPEV9TkQlHThlInys1F/nePB0J/RQiYSATrfvkSWgx 340wOIJ2Dp7KXFWF3oGUBV4FSMY3d0jXgEJW+Xg90DEp2IbOKj8EIOV2P7joP1jdYQKe9elkrvv 63/s4EUHOaRV0AGno7mEnjtCQjRmRFICwnsYpbWAgzjmr/W2LAK2ZDDeo6zQdaJ+e34n+UMhA/O XjEisrPHOtT5MA3dDUPSpooRGnqs5+A6K+N/qm7WyW/VJDQYOKExJzCT+RAJwF4SpgthhY2iMM1 6oplViIb8MbP35fQdgr4oJM7NYFoMt/tijpY20H69KXS1Dn2RCOfmPmSf2ypeGJP0chERyxyhnn NTdcetzjA X-Google-Smtp-Source: AGHT+IFkoEM5L2HsLoB1Y0gjWhTemzeu165bTNyyFWWwTYb+5WNQkW8pRBjDwZGrd730WNRQWGn9og== X-Received: by 2002:a05:6000:1f89:b0:386:3262:28c6 with SMTP id ffacd0b85a97d-38db48a9b23mr2173380f8f.5.1738763557950; Wed, 05 Feb 2025 05:52:37 -0800 (PST) Received: from ?IPV6:2a02:6b67:d752:5f00:c46:86ac:45ea:7590? ([2a02:6b67:d752:5f00:c46:86ac:45ea:7590]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4390d933a3esm23278275e9.5.2025.02.05.05.52.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 05 Feb 2025 05:52:37 -0800 (PST) Message-ID: <49382f59-afea-41b2-8ca5-1bec9fb179dc@gmail.com> Date: Wed, 5 Feb 2025 13:52:37 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 4/6] mm/damon: introduce DAMOS filter type hugepage To: SeongJae Park Cc: akpm@linux-foundation.org, damon@lists.linux.dev, linux-mm@kvack.org, hannes@cmpxchg.org, david@redhat.com, kernel-team@meta.com References: <20250204231248.2729-1-sj@kernel.org> Content-Language: en-US From: Usama Arif In-Reply-To: <20250204231248.2729-1-sj@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Stat-Signature: 4nbaoz95binh8yxcti5dz9h6mczjcqy3 X-Rspamd-Queue-Id: D1353C0003 X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1738763559-563785 X-HE-Meta: U2FsdGVkX1/NYEpsbCBWPPaJb6gD2c3wZXmK2pIbBWkqgM5h/+jjQmOAhMUo6z+Zsh2pGc8PfhSeUGnq4jWCkBdqEDBTPVwx6RnYc2LxXyuy2OAEjKv3B2tSG0NCvpKmc1ILGjQce4d/bx073mVVIR2V2MBmWbwLYc9ZmilZfQr6jgGkPGPh6ZiqM+Ix2qerhLMURlbV9g26xdwRJBHNypdtn+5ggWhJrwWRU526CTYxsFAlqLhQTCmdxswKv2YNrKHBXnEuJdUNyPNDM6Hwyox05AX3UIUKTm94N8CBt1KdNleGIaEsbpHB6pDc/ZnSjC45yi0EeYHHHPXM/R6TT4p4wr4mHZGYPpPX8KAzVTcNmS+daWh00Oj/RB3Z1srMx7f4ImecsIDuexo6hSG1niKEMVXcgiSm71Jujmb2TQVQf5BEefNdiSYCUuwVoqmholkHcOEvst87V312cFocMskiGiZfHyCmEM3HPYKZnrzoUgX6iiLkOdFpgFKepTCTq745MHA1M445Fo5kOi69S86IvHhGrvgJxidUdXNXTFq6kSSRMLqnz11Xs0FLWCYgaCEevwOPtjM40/kMl8jkKuXVn54XqM6eZEO44jRXpJl1nN0/2i+vmiSf7ci/img5t9VGyvdaufAirmgoWbF0XTkPzmkZxo/VbxaDEiR4pXLpy8yTjrMG1XrlisF1RaBGyY9jx3gxEbDSlhQDRDuxgsTCQNktwvjUyYSbsIJKJHsLh2AhDy7Eam0h6vNIVXEZz6TU5a5xfrn0hNOoG80nnqs3PYwD0W0JjHLdv6LoP7D36682oVDeZgj7GiPLskePUvgEkgMDUwavXTajt0PAMQZpJhP370QnHr8zWgvaAxTeu1OFYVlL1FdpDw30tDM/PkaCU2/uGiGbl2uL7pmuCKu7u+vzW+IweRci/RYulixZA8/Im0XBaKW6iwAjyfLoXEU/TfCXuBSEZ060IAR wTd1JWAU 44uf0RHvY5cTntb/qTVY9NzwggsxydT1k0rU/uMP+w9k5bgknmuTUxMpFb8a/yxm/qghEiWMQZVL2EACKp7ylrzCgWmgGzz/7RCc+H9wyG2ludoFFBqe/5OWCIauKO4spw+McpC7MvHBv7oWTVeIFvm4qfn6tGEhFYFiCxHp8I9bWTfPSEwsXxKiWnPvdAb6E0Y6vMDk7WKDx20pyPrPVN9oiVznhcw1QPI4YMOJqErbGzjqJGLSHDBaBVSVC+dw8tBWYrlInYV+ZHudib895dvrZxO2sXH0KI3SIRJG1fAvbVd1gCysbU/ayTNAE1qE9IxACXvRowOKEffKtwKW4tf2X7Hlc8o4cpCkNwA1HNGvbGfb+Uw31rOOyKLjGyEfoYCyvQRXZ6G1unEYFqBlBpLPzcogOcyWxF9Ba8WVBM2LVSUKXvQfQ2QHbG8FWCOysCz7sSJy5TJeEk90xFTsbrGdDZnkUKM6GiZJ1 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, 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 04/02/2025 23:12, SeongJae Park wrote: > On Mon, 3 Feb 2025 22:55:31 +0000 Usama Arif wrote: > >> This is to gather statistics to check if memory regions of specific >> access tempratures are backed by hugepages of a size in a specific >> range > > nit. A period is missed? > >> This filter can help to observe and prove the effectivenes of >> different schemes for shrinking/collapsing hugepages. >> >> Signed-off-by: Usama Arif >> --- >> include/linux/damon.h | 2 ++ >> mm/damon/paddr.c | 7 +++++++ >> mm/damon/sysfs-schemes.c | 1 + >> 3 files changed, 10 insertions(+) >> >> diff --git a/include/linux/damon.h b/include/linux/damon.h >> index 6f30ceeff215..5ba6c2114e3f 100644 >> --- a/include/linux/damon.h >> +++ b/include/linux/damon.h >> @@ -336,6 +336,7 @@ struct damos_stat { >> * @DAMOS_FILTER_TYPE_ANON: Anonymous pages. >> * @DAMOS_FILTER_TYPE_MEMCG: Specific memcg's pages. >> * @DAMOS_FILTER_TYPE_YOUNG: Recently accessed pages. >> + * @DAMOS_FILTER_TYPE_HUGEPAGE: Page is part of a hugepage. > > What about "DAMOS_FILTER_TYPE_HUGEPAGE_SIZE: hugepages of a given size range."? > >> * @DAMOS_FILTER_TYPE_ADDR: Address range. >> * @DAMOS_FILTER_TYPE_TARGET: Data Access Monitoring target. >> * @NR_DAMOS_FILTER_TYPES: Number of filter types. >> @@ -355,6 +356,7 @@ enum damos_filter_type { >> DAMOS_FILTER_TYPE_ANON, >> DAMOS_FILTER_TYPE_MEMCG, >> DAMOS_FILTER_TYPE_YOUNG, >> + DAMOS_FILTER_TYPE_HUGEPAGE, >> DAMOS_FILTER_TYPE_ADDR, >> DAMOS_FILTER_TYPE_TARGET, >> NR_DAMOS_FILTER_TYPES, >> diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c >> index 3f59a3fdc391..34fe1eb664cc 100644 >> --- a/mm/damon/paddr.c >> +++ b/mm/damon/paddr.c >> @@ -227,6 +227,7 @@ static bool damos_pa_filter_match(struct damos_filter *filter, >> { >> bool matched = false; >> struct mem_cgroup *memcg; >> + size_t folio_sz; >> >> switch (filter->type) { >> case DAMOS_FILTER_TYPE_ANON: >> @@ -246,6 +247,12 @@ static bool damos_pa_filter_match(struct damos_filter *filter, >> if (matched) >> damon_folio_mkold(folio); >> break; >> +#if defined(CONFIG_PGTABLE_HAS_HUGE_LEAVES) > > I think we don't really need this macro? > >> + case DAMOS_FILTER_TYPE_HUGEPAGE: >> + folio_sz = folio_size(folio); >> + matched = filter->folio_size.min <= folio_sz && folio_sz <= filter->folio_size.max; > > We should also return 'false' if the folio is not a large folio (folio_sz == > PAGE_SIZE), if we agreed to my suggestion on the previous version of this patch > series? I think we could let users get PAGE_SIZE as well incase they wanted it? more on it below.. > > I'd also prefer calling filter->folio_siz as sz_range or size_range, so that we > can reuse it for future filter types of size range. > >> + break; >> +#endif >> default: >> break; >> } >> diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c >> index bc7ca43ca9c4..76aee3ab277e 100644 >> --- a/mm/damon/sysfs-schemes.c >> +++ b/mm/damon/sysfs-schemes.c >> @@ -330,6 +330,7 @@ static const char * const damon_sysfs_scheme_filter_type_strs[] = { >> "anon", >> "memcg", >> "young", >> + "hugepage", > > hugepage_size? > So from https://lore.kernel.org/all/20250121200510.43645-1-sj@kernel.org/, my understanding was you didn't have a preference between "hugepage" and "hugepage_size"? I do prefer hugepage over hugepage_size. This is because this is a type of filter, I would say hugepage_size is not a type, but hugepage is. For e.g. we have anon as type and not anon_number. And the "size" part is clear from the min and max which is documented in patch 5 and 6. TBH my preference would be "folio". What I think we should do is let users input any value for min and max, as long as max > min, even if its just 4K page. If the user just wants to know how much of the region is 4K page, they will get it with this. But as David said, folio is a kernel concept so might not be best to expose it as sysfs to userspace? As folio might not be an option, my preference is going with hugepage, but as its not an implementation detail and just naming, I am ok to change it to hugepage_size if you have a strong preference for it. >> "addr", >> "target", >> }; >> -- >> 2.43.5 > > > Thanks, > SJ