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 10143E69E9A for ; Mon, 2 Dec 2024 22:45:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6A37A6B0082; Mon, 2 Dec 2024 17:45:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 62C006B0083; Mon, 2 Dec 2024 17:45:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4CD026B0085; Mon, 2 Dec 2024 17:45:12 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 22E606B0082 for ; Mon, 2 Dec 2024 17:45:12 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 8D59D1603A2 for ; Mon, 2 Dec 2024 22:45:11 +0000 (UTC) X-FDA: 82851500634.01.3365337 Received: from mail-ua1-f53.google.com (mail-ua1-f53.google.com [209.85.222.53]) by imf11.hostedemail.com (Postfix) with ESMTP id 86C0140017 for ; Mon, 2 Dec 2024 22:44:57 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=T4nlzMXA; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.53 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733179504; a=rsa-sha256; cv=none; b=X5ZOHrqbhQtLAG/tPDkmyqZuM1A9gjASVRZBxw14WEzGVns+ubp8CcbqWpbdh8BeIsUYN3 imhf5p0h/owix2tXd/SzYBgY/BNvQznNb3vSIyZi0YH0cmTKlLJucEFursWY2BSVDa4fH1 1YbGu82cHZtHL0SM0j5QMSmzdfCAQ0c= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=T4nlzMXA; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.53 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733179504; 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=lUEcxtWUkTObrNKrksQ5hyJNqC1rP3KkyBtBAQWtcU8=; b=1trFp9+lq80yOSJqvWpSPzEBCuWPVAliSMcMokr5N0XEaz/4SEFaEMdOXxI/KXaBEOPwJw 5QMZLT5e1LGiMY4snjyrSGQm5rlwlTxVroCOcS2LUIWzJvndCVLySthdi/4Ods0fR9FbBD FMBOzoFVQbmM0iQNbRrdJWFEy0w9xyU= Received: by mail-ua1-f53.google.com with SMTP id a1e0cc1a2514c-85b83479f45so665013241.0 for ; Mon, 02 Dec 2024 14:45:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733179509; x=1733784309; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=lUEcxtWUkTObrNKrksQ5hyJNqC1rP3KkyBtBAQWtcU8=; b=T4nlzMXAd8FguEk+Ztg+LvVIUkFBRVW+d+r4PdtkcEwhBMTSUuH49MdlroTL/JCOcW SvlXT/iecffQOQNLl7F55LhyoW9wEMnD8r4Gghy//VDWZYKJy3aUQ31GC4D/rq4e2UJJ REuf8hBACFgdMstaw+h/hROEn/DFCgoj+52nPSFPYNtUWMMgMXMDQagxE9sHf9XrrcGM 70yIRuXU++fCFZPk4tfcTN5o8xSyNkO97wKai6C0hxpP3814ouqBbP9mK1OuJBIlC+tg 5ZpItyacbSc+s1IPwfUOZn78Lc36gveYKT4dmkYXY1Q5bv3QTLj7PlqerAlMddmlShn4 aHKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733179509; x=1733784309; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lUEcxtWUkTObrNKrksQ5hyJNqC1rP3KkyBtBAQWtcU8=; b=mxNCnELiyBWcy5ZyUKKaT731kz2n7UcMIGM8XPLDR16ffDkibMT7F07G/RHxqIvxRJ 9DRT5Q1BTKgmDLJbvN06X0iN8pkUuWrdNEH9pqyx5kLyPIWNuuQC4jcBr2eQOUl/3TSj 7LdtLfZQqHD0ChT1bFHgfuU784WKEQ24017gkZNqLRqaMbJTouUu37IZGOghWlMJcsag 0VAOFP58m58yOtGum/X5aTljSd1jtL05CIxpkQckDL64xWtTuIDuy1V4qfJqhRRf+85n Ty8bhE4i3EN8gMGfuKxpL72zwyctWPQeUtcABav0/aBmnmKxDarnf2Q/EN9RDm7lTWdj SFVg== X-Forwarded-Encrypted: i=1; AJvYcCX4n14wES/JyyrujhDYnXZVa1vHKDCt+tgqAIym5orUQ847qUBc3rXgrv8b1ML+GHI5MzYeEzzSxg==@kvack.org X-Gm-Message-State: AOJu0YzBHMn1UnDnrZHHGwxGBVWH5egacbfH8xESeBY9gohAfF6ym5Po H6evuYXceKOJ62q3/c9GOSRtpKXW0CHBjBYPpeWjcDPGOTvqWEN3HwfEN3H8Z4yjBtY8dtLXe5N DVizQJuxGu+gbkhPlLZMtQOW55Q0= X-Gm-Gg: ASbGnctl4GOh/N2hIdDyKFM27vo8lVI0CO6UNb03Kk85mbR0bfsXQebyMwQh7M84gzm K6m8IHeD6Qz0g7VdbckIhBeXb665wlxUvn1ns716B3cka1LR2TmtU3lDUqNSLzutO1A== X-Google-Smtp-Source: AGHT+IFmULI0ThdR9ckUys9YQgFREDAKM/TwDr9B8+dEWXe4rChjO7jy0fv9Y/h2ZsRP2HB6OBgpWdz1iZZhoPHfpp4= X-Received: by 2002:a05:6102:292a:b0:4af:4aff:7fd0 with SMTP id ada2fe7eead31-4af97198522mr662883137.10.1733179508702; Mon, 02 Dec 2024 14:45:08 -0800 (PST) MIME-Version: 1.0 References: <20241202124730.2407037-1-haowenchao22@gmail.com> In-Reply-To: <20241202124730.2407037-1-haowenchao22@gmail.com> From: Barry Song <21cnbao@gmail.com> Date: Tue, 3 Dec 2024 11:44:57 +1300 Message-ID: Subject: Re: [PATCH v3] mm: add per-order mTHP swap-in fallback/fallback_charge counters To: Wenchao Hao Cc: Jonathan Corbet , Andrew Morton , David Hildenbrand , Ryan Roberts , Baolin Wang , Usama Arif , Lance Yang , Matthew Wilcox , Peter Xu , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 86C0140017 X-Stat-Signature: p1pqcks49zch1cdk84pyuugtw8emk96g X-HE-Tag: 1733179497-362624 X-HE-Meta: U2FsdGVkX1/Gz89onjSQQyHvxfR/w3Wsz9pMs0vTR7WwbiGkFEZ/wePyUr1GEHEEFqHEjurSTcQ6KbukASyARDk7RhA9JKLggnNBtj5lEg0HCV6sHvj1hwWufMMv+o9rYAC1+0CxVI+RpbQv2brvEKtKIrgDBoFS2XUef0oaHrVpufo3UrOJq/BJjmGNi8lpAtssjqItLyrBOcO9ImigJCB9FCFx4/iyfhJOXbadf0fQ2XsXZpc0IJjSkmkA2Z9rHTxNRl6wLkiSa7e4rERzuy9CbHXJZey/PLiHIXqTOhyPgU9mWtUOiW1lb0oeJD1IAFyIFnZN7a7I+nfT64Zhwf4pMH3bgo8yKOChX2kJYCe/BHG6tbD77xaRl/bn2MPr+/2FvjeqapIIrhAqOZD0yXCtahFqCnIhjuX49JdYGZpKOi2ohaeyf6RJYBGj36M8FyYmCwkUnP07ihiUBP+iwdLarpttvZqScNFPtWsfWuDnYyl2fgYl7rc2PUI9julphvK/SrXm35I7Df2C9MhGBT4lNRh6u/YRgfek0b1GqLVeGYrcCMfBUQqYj9SkMR6suLFGvs7tTJ8m8zEvmnImjD61QaQDyY9x3BN+Hl9SUGV+pgUfmEp/2BbFrVkso8fAzDTjp8cruZrNYI6DFYBqRoUS2lrHXtglVggrdQYGJWvslathiVZwPZFCP7o2escoD+VcMSxI46k6HH6kCyQVWoWDNpeq/okbFya8aeg0+85867ej/XZOWAg15Do/C3CrY0wYOZ13AI8zM60iNW7btWygVCdGtpeG8UoANlxHtIsF0IvLLbXB02uWsbC1fl1GhJA7RGNleTUpeYQMtdrJkRwecb1KQRPjpW8aqQoZPi0d/anAp4ueHF6fomjO164eyUdGwxc1ZqnmuA1KGEPhHEqiMvnb2F6Hqt1eI6oFs7xiFw3q9ozNymdjwKoEceLyRigJkNmHIp4ZzpZtDK7 Ho97rsVR lZ6qn6pWr825zVY0lryHD2nqzVlpmBT2v4HSBCcCgLV9OLh+7u9F1SEHEtYd1Ap1YTBS+eszM9V/6zJENbGyV3xRigRY/IpB6s6BmE4Kv21b0sEwMAIwuYVreb/OZnfuE8oYLy1j2nNxvB7aSk1KFNKOpi8HkcXQU5c/E1XK+BSMXMfGvD0Hl4yhCFRLEUXMDhS9Eeq4XSFq3Bo3/zYn1MX9t4ACYBrU0cP4085jOvWAqxy1fiefuhJp+Hqr/PU3WfrYuWN3rj7M3nmQwXaDRg7NmlqkwuWKHzWDKzb2EEAxO1ylAE9tk46lJjIj+OI2DebKU1g2i48Q6kfCRItsQMfVzmXXoreTNMluTn6+G5MawP4koFjjM0JnQh6YqJ2Lb6n5MgiSLKM68evzk5ane64FNzLzjCKts+XjM 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 Tue, Dec 3, 2024 at 1:47=E2=80=AFAM Wenchao Hao = wrote: > > Currently, large folio swap-in is supported, but we lack a method to > analyze their success ratio. Similar to anon_fault_fallback, we introduce > per-order mTHP swpin_fallback and swpin_fallback_charge counters for > calculating their success ratio. The new counters are located at: > > /sys/kernel/mm/transparent_hugepage/hugepages-/stats/ > swpin_fallback > swpin_fallback_charge > > Signed-off-by: Wenchao Hao LGTM, thanks! Reviewed-by: Barry Song > --- > V3: > Update description about swpin_fallback and swpin_fallback_charge > > V2: > Introduce swapin_fallback_charge, which increments if it fails to > charge a huge page to memory despite successful allocation. > > Documentation/admin-guide/mm/transhuge.rst | 10 ++++++++++ > include/linux/huge_mm.h | 2 ++ > mm/huge_memory.c | 6 ++++++ > mm/memory.c | 2 ++ > 4 files changed, 20 insertions(+) > > diff --git a/Documentation/admin-guide/mm/transhuge.rst b/Documentation/a= dmin-guide/mm/transhuge.rst > index 333958ef0d5f..156a03af0a88 100644 > --- a/Documentation/admin-guide/mm/transhuge.rst > +++ b/Documentation/admin-guide/mm/transhuge.rst > @@ -591,6 +591,16 @@ swpin > is incremented every time a huge page is swapped in from a non-zs= wap > swap device in one piece. > > +swpin_fallback > + is incremented if swapin fails to allocate or charge a huge page > + and instead falls back to using huge pages with lower orders or > + small pages. > + > +swpin_fallback_charge > + is incremented if swapin fails to charge a huge page and instead > + falls back to using huge pages with lower orders or small pages > + even though the allocation was successful. > + > swpout > is incremented every time a huge page is swapped out to a non-zsw= ap > swap device in one piece without splitting. > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h > index b94c2e8ee918..93e509b6c00e 100644 > --- a/include/linux/huge_mm.h > +++ b/include/linux/huge_mm.h > @@ -121,6 +121,8 @@ enum mthp_stat_item { > MTHP_STAT_ANON_FAULT_FALLBACK_CHARGE, > MTHP_STAT_ZSWPOUT, > MTHP_STAT_SWPIN, > + MTHP_STAT_SWPIN_FALLBACK, > + MTHP_STAT_SWPIN_FALLBACK_CHARGE, > MTHP_STAT_SWPOUT, > MTHP_STAT_SWPOUT_FALLBACK, > MTHP_STAT_SHMEM_ALLOC, > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index ab46ef718b44..d062b257376d 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -617,6 +617,8 @@ DEFINE_MTHP_STAT_ATTR(anon_fault_fallback, MTHP_STAT_= ANON_FAULT_FALLBACK); > DEFINE_MTHP_STAT_ATTR(anon_fault_fallback_charge, MTHP_STAT_ANON_FAULT_F= ALLBACK_CHARGE); > DEFINE_MTHP_STAT_ATTR(zswpout, MTHP_STAT_ZSWPOUT); > DEFINE_MTHP_STAT_ATTR(swpin, MTHP_STAT_SWPIN); > +DEFINE_MTHP_STAT_ATTR(swpin_fallback, MTHP_STAT_SWPIN_FALLBACK); > +DEFINE_MTHP_STAT_ATTR(swpin_fallback_charge, MTHP_STAT_SWPIN_FALLBACK_CH= ARGE); > DEFINE_MTHP_STAT_ATTR(swpout, MTHP_STAT_SWPOUT); > DEFINE_MTHP_STAT_ATTR(swpout_fallback, MTHP_STAT_SWPOUT_FALLBACK); > #ifdef CONFIG_SHMEM > @@ -637,6 +639,8 @@ static struct attribute *anon_stats_attrs[] =3D { > #ifndef CONFIG_SHMEM > &zswpout_attr.attr, > &swpin_attr.attr, > + &swpin_fallback_attr.attr, > + &swpin_fallback_charge_attr.attr, > &swpout_attr.attr, > &swpout_fallback_attr.attr, > #endif > @@ -669,6 +673,8 @@ static struct attribute *any_stats_attrs[] =3D { > #ifdef CONFIG_SHMEM > &zswpout_attr.attr, > &swpin_attr.attr, > + &swpin_fallback_attr.attr, > + &swpin_fallback_charge_attr.attr, > &swpout_attr.attr, > &swpout_fallback_attr.attr, > #endif > diff --git a/mm/memory.c b/mm/memory.c > index d5a1b0a6bf1f..a44547600c02 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4189,8 +4189,10 @@ static struct folio *alloc_swap_folio(struct vm_fa= ult *vmf) > if (!mem_cgroup_swapin_charge_folio(folio, vma->v= m_mm, > gfp, entry)) > return folio; > + count_mthp_stat(order, MTHP_STAT_SWPIN_FALLBACK_C= HARGE); > folio_put(folio); > } > + count_mthp_stat(order, MTHP_STAT_SWPIN_FALLBACK); > order =3D next_order(&orders, order); > } > > -- > 2.45.0 >