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 B2670C3DA45 for ; Tue, 9 Jul 2024 01:27:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3437D6B00A3; Mon, 8 Jul 2024 21:27:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2F3176B00A4; Mon, 8 Jul 2024 21:27:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1BB136B00A5; Mon, 8 Jul 2024 21:27:04 -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 F29446B00A3 for ; Mon, 8 Jul 2024 21:27:03 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 97A0BA4DCA for ; Tue, 9 Jul 2024 01:27:03 +0000 (UTC) X-FDA: 82318475526.22.A9E838E Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by imf05.hostedemail.com (Postfix) with ESMTP id B1D3510000D for ; Tue, 9 Jul 2024 01:27:01 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=B8mIYlxR; spf=pass (imf05.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.167.54 as permitted sender) smtp.mailfrom=ioworker0@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=1720488392; 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=oHITuDKct4GjdiGtn+rduATm9eEjApODvQxhrD3sy0g=; b=iXXRnLXeoH/oS4rrvhU6dt3BZXh5/mAwYOPomJYCYMAM9QUyWt/ehs8K7/QyzO7RAX1rqc IvbygIMlx5M6zLTYzNhbexjGIsg35DKJf2isRD64GPgJOnAzJPC3x6VF9N8bWyDMKvDCD/ 3J0BIesX+Q9Se6pQuCgTySc9+PtAR74= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720488392; a=rsa-sha256; cv=none; b=Pk0kWUTBWNfkKxj85+QtMzxI9RtEPGV+jqwVtrgkhicWwYF48iPgXqArOPyMWZIm44d83z RgByYdmBZ7Ukx/6OL8Ag3n7t+L7vBPEYnQity+d2Xzr0GjG8vTgJX9j5vVoeJpcrfaSd92 Zjd4bYktVeSqarxpheN7chCkd2NbhT0= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=B8mIYlxR; spf=pass (imf05.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.167.54 as permitted sender) smtp.mailfrom=ioworker0@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-52e9fe05354so6733587e87.1 for ; Mon, 08 Jul 2024 18:27:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720488420; x=1721093220; 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=oHITuDKct4GjdiGtn+rduATm9eEjApODvQxhrD3sy0g=; b=B8mIYlxRSyXTdVi/0o8dCpG3QUS27sv5GIyJEVBXRRphyc7LpdTlTlQTFB/XnFNu6M SyzR2bNh0UE0LXimUfwa8UTcl53Ex0nmsSRi0cfaNsv6RrbP2oVplwStjM3iY7776AGY foEjSTzHU68dFn2OiW7LyOEjKpCfObxXoPySHa/iKSS+JU2WfNNXKhlVSWDf/Ibs9VkZ 9lavGwdnzx2YIKOi2gU1cnIpjQJ99+GPj0E2wQORhFSWKsjDCQVwPED8ObpqF1MHUhkb xfAXjNlwlpAam7ceaFq4zn2U6QBjMCPOe4NAvpJ/HiJHPAPDbmRobMIi9RTBbOK+5Qnp I1/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720488420; x=1721093220; 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=oHITuDKct4GjdiGtn+rduATm9eEjApODvQxhrD3sy0g=; b=CEG2JtVprwLNchgwwABrTT+Ux043hd29feKmhv01mwiyJOnyaAsLwIBEBI7RtLY/0c ZQys1zImAy5WVn246u5vI52SdWp8mXmWUIkIafjAcuiHu0r8tEhbv1Q2m2n79AvfZogI MLDp4rDTsSWtZQdYGi2Xg9zuacLngV1sq7dEclUHTQvEB9UiLADJQpsxyF0vmv3bfn/b CaU6YOOFMpaD8LBIaCnV50pVLF7Bjqxyv0lBeaTG5FC+sbGz05sHn8I7s+nCOLgSLOR5 y0o6o556+ZLcJYtdOL0cEokUYTJJAYKFyBXD38vOYxrd902kM2498W+yOwqPPZkQxbOm +sNw== X-Forwarded-Encrypted: i=1; AJvYcCU6ydoPoXT3JE0Vote4H035yXDQRPSdM7tgfQ/7LuU/GJlaNyJQSfbEWQ0rizcQyNzBjafodA75KmF+td/R/gGrgww= X-Gm-Message-State: AOJu0YyjRyl5xutAoQC73A43l4E583Dv7sD6PT7roi3QbhG0HAQDx9mz 6EFtJs7TrJhA72F0j9LqmnS29OjJZWj548DRT8D8RD6V/okqIM4a7NnOXesogLT1GHyiZzocXa7 k0AC8rowJoXUKb3FonEwiKhW+IPQ= X-Google-Smtp-Source: AGHT+IH8RfvVjbcPkpXmd+DCWBIcr62Wjtwq4GXhfgVElF5EdGLnUR8/spgSrKnRjD6wFRwbqGSKvuwqzhYUXPIOYX4= X-Received: by 2002:ac2:41da:0:b0:52c:90b6:170f with SMTP id 2adb3069b0e04-52eb99a0e7emr547960e87.29.1720488419687; Mon, 08 Jul 2024 18:26:59 -0700 (PDT) MIME-Version: 1.0 References: <20240708112445.2690631-1-ryan.roberts@arm.com> In-Reply-To: <20240708112445.2690631-1-ryan.roberts@arm.com> From: Lance Yang Date: Tue, 9 Jul 2024 09:26:48 +0800 Message-ID: Subject: Re: [PATCH v1] mm: shmem: Rename mTHP shmem counters To: Ryan Roberts Cc: Andrew Morton , Hugh Dickins , Jonathan Corbet , Barry Song , David Hildenbrand , Baolin Wang , Matthew Wilcox , Zi Yan , Daniel Gomez , linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: B1D3510000D X-Stat-Signature: w538dt7mnmw6g1x548164gcuq5gmaam1 X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1720488421-27367 X-HE-Meta: U2FsdGVkX19W9f4qADAzSERl5ujou96KvJDyFW+qoW2EquqOF2trQFCZUorA/2/ArF7XFqoVuoInb/K/kfigTEsX42KDcto79VUfqTm4iOxeEsgt20gANo9PXnE3OzqKbZY1kZ7wSw0ZZV8YOp/d56Hh/9SRqUqGV4SCUukh8ALGDVZd2u461zNPapSMwQaVD7hAAzTWl6w8Y+4AQi3Ta3kn60mZBevgbOnjHcAfqjbp0/kHc1svhWm2ZbqTGJ8458HoydCkRpTtCDBAma9RPVPu8ZO4wrOccrz1VELaPsKo9nJN+ulc8MwfvE2glSE4eZF6sEzkdJVHhZEovwK5bsq9dSP2rczE+QjSLkVmaukSMwn2/N9RUyEh2C8OgrTLJ4fQZb4+y4dkusOFHIuqvWcmP3vNV4LJCCyUAaduBGnh1IhEvMfkutdixHSOimnv8MdCrIsB3sp2dXMxI3GdQ7gIwCweIn123CRrxglxrFk2wezOyN2OgsumAz3rz/p+yTVRCU/29BjrAQoONpUzl1M6hOYnzXWchCtUkwy1BoLaqqgwBWKKBxl0ooYyWHB0AcvlMRsYkIXwqPY/CDJHVyEW4J3pKg4PbBnxAKP4MW17ye48pH2SkbzjG9Iio35dxkg+7kSYr8chLVR6qV/W6R41D+TMsNqQUNfrkLsMhycCI2NV8vOvRKH8Dxia2bf4Cz7N+9S6oW41DQs3DnQ8YnO5+5tcjPKoaPjL+FY2UjA4ghpFUnEB5iMuyJ1Q1hpMcysH/a2lcfdjy2oum1uYoqB2LPdNeM7yQ6fqqzweinwqT3NFIGmX5KtgrzKuW/EmiI4ME8ceyuNR57BQtbUK3ZCASvaow/Fy2tupqFg27c8PLBZzPg2z2uWJP+hZiDTRKzGTo+wyjd9XXaQQR+pmbQjaod+fIXsaNE7+YYwTja/97yecNQ8LCkL7n8ADdJuf7iJ/5S9yDsypWqBazAJ cqD4IfDq 4rgSTi7m9JesCifaQjzx0HELL2ZZw7QaUaGopVGd8/aUgWsiVc98gEnfKtuhRz5L6cExfjAEVsXVEHoaSvf0Ga8aMsv87cHUP5w5Ubg7MCA9wysXTRDvb0Oj0YD0XmXiweVPvh8yuoCsDe3ZxmEx/RXRdWH2A8O4T/WtR0+leqmPttvaA6wdVhplX0z+9RkMni3+4ySLIXewhetd+2pSELFLGT4gHYkRom8RHlcef/cImA0b1WMkRykePV721n/cxnpvA6zTNtSGrpNpWNQ4W+qrPaeyF/a24k8h5uCqheLUk3zvOCWB6ea8uSpObQMnmZ5yRzdEiCBI2Hqy0MZH0JeKspNAGZ6XfotHmO9eCoyWvH/3B6BPWLhZsY5TEBaVtZ49f 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 Mon, Jul 8, 2024 at 7:24=E2=80=AFPM Ryan Roberts = wrote: > > The legacy PMD-sized THP counters at /proc/vmstat include > thp_file_alloc, thp_file_fallback and thp_file_fallback_charge, which > rather confusingly refer to shmem THP and do not include any other types > of file pages. This is inconsistent since in most other places in the > kernel, THP counters are explicitly separated for anon, shmem and file > flavours. However, we are stuck with it since it constitutes a user ABI. > > Recently, commit 66f44583f9b6 ("mm: shmem: add mTHP counters for > anonymous shmem") added equivalent mTHP stats for shmem, keeping the > same "file_" prefix in the names. But in future, we may want to add > extra stats to cover actual file pages, at which point, it would all > become very confusing. > > So let's take the opportunity to rename these new counters "shmem_" > before the change makes it upstream and the ABI becomes immutable. > > Signed-off-by: Ryan Roberts LGTM. Feel free to add: Reviewed-by: Lance Yang Thanks, Lance > --- > > Hi All, > > Applies on top of today's mm-unstable (2073cda629a4) and tested with mm > selftests; no regressions observed. > > The backstory here is that I'd like to introduce some counters for regula= r file > folio allocations to observe how often large folio allocation succeeds, b= ut > these shmem counters are named "file" which is going to make things confu= sing. > So hoping to solve that before commit 66f44583f9b6 ("mm: shmem: add mTHP > counters for anonymous shmem") goes upstream (it is currently in mm-stabl= e). > > Admittedly, this change means the mTHP stat names are not the same as the= legacy > PMD-size THP names, but I think that's a smaller issue than having "file_= " mTHP > stats that only count shmem, then having to introduce "file2_" or "pgcach= e_" > stats for the regular file memory, which is even more inconsistent IMHO. = I guess > the alternative is to count both shmem and file in these mTHP stats (that= 's how > they were documented anyway) but I think it's better to be able to consid= er them > separately like we do for all the other counters. > > Thanks, > Ryan > > Documentation/admin-guide/mm/transhuge.rst | 12 ++++++------ > include/linux/huge_mm.h | 6 +++--- > mm/huge_memory.c | 12 ++++++------ > mm/shmem.c | 8 ++++---- > 4 files changed, 19 insertions(+), 19 deletions(-) > > diff --git a/Documentation/admin-guide/mm/transhuge.rst b/Documentation/a= dmin-guide/mm/transhuge.rst > index 747c811ee8f1..8b891689fc13 100644 > --- a/Documentation/admin-guide/mm/transhuge.rst > +++ b/Documentation/admin-guide/mm/transhuge.rst > @@ -496,16 +496,16 @@ swpout_fallback > Usually because failed to allocate some continuous swap space > for the huge page. > > -file_alloc > - is incremented every time a file huge page is successfully > +shmem_alloc > + is incremented every time a shmem huge page is successfully > allocated. > > -file_fallback > - is incremented if a file huge page is attempted to be allocated > +shmem_fallback > + is incremented if a shmem huge page is attempted to be allocated > but fails and instead falls back to using small pages. > > -file_fallback_charge > - is incremented if a file huge page cannot be charged and instead > +shmem_fallback_charge > + is incremented if a shmem huge page cannot be charged and instead > falls back to using small pages even though the allocation was > successful. > > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h > index acb6ac24a07e..cff002be83eb 100644 > --- a/include/linux/huge_mm.h > +++ b/include/linux/huge_mm.h > @@ -269,9 +269,9 @@ enum mthp_stat_item { > MTHP_STAT_ANON_FAULT_FALLBACK_CHARGE, > MTHP_STAT_SWPOUT, > MTHP_STAT_SWPOUT_FALLBACK, > - MTHP_STAT_FILE_ALLOC, > - MTHP_STAT_FILE_FALLBACK, > - MTHP_STAT_FILE_FALLBACK_CHARGE, > + MTHP_STAT_SHMEM_ALLOC, > + MTHP_STAT_SHMEM_FALLBACK, > + MTHP_STAT_SHMEM_FALLBACK_CHARGE, > MTHP_STAT_SPLIT, > MTHP_STAT_SPLIT_FAILED, > MTHP_STAT_SPLIT_DEFERRED, > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 9ec64aa2be94..f9696c94e211 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -568,9 +568,9 @@ 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(swpout, MTHP_STAT_SWPOUT); > DEFINE_MTHP_STAT_ATTR(swpout_fallback, MTHP_STAT_SWPOUT_FALLBACK); > -DEFINE_MTHP_STAT_ATTR(file_alloc, MTHP_STAT_FILE_ALLOC); > -DEFINE_MTHP_STAT_ATTR(file_fallback, MTHP_STAT_FILE_FALLBACK); > -DEFINE_MTHP_STAT_ATTR(file_fallback_charge, MTHP_STAT_FILE_FALLBACK_CHAR= GE); > +DEFINE_MTHP_STAT_ATTR(shmem_alloc, MTHP_STAT_SHMEM_ALLOC); > +DEFINE_MTHP_STAT_ATTR(shmem_fallback, MTHP_STAT_SHMEM_FALLBACK); > +DEFINE_MTHP_STAT_ATTR(shmem_fallback_charge, MTHP_STAT_SHMEM_FALLBACK_CH= ARGE); > DEFINE_MTHP_STAT_ATTR(split, MTHP_STAT_SPLIT); > DEFINE_MTHP_STAT_ATTR(split_failed, MTHP_STAT_SPLIT_FAILED); > DEFINE_MTHP_STAT_ATTR(split_deferred, MTHP_STAT_SPLIT_DEFERRED); > @@ -581,9 +581,9 @@ static struct attribute *stats_attrs[] =3D { > &anon_fault_fallback_charge_attr.attr, > &swpout_attr.attr, > &swpout_fallback_attr.attr, > - &file_alloc_attr.attr, > - &file_fallback_attr.attr, > - &file_fallback_charge_attr.attr, > + &shmem_alloc_attr.attr, > + &shmem_fallback_attr.attr, > + &shmem_fallback_charge_attr.attr, > &split_attr.attr, > &split_failed_attr.attr, > &split_deferred_attr.attr, > diff --git a/mm/shmem.c b/mm/shmem.c > index 921d59c3d669..f24dfbd387ba 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -1777,7 +1777,7 @@ static struct folio *shmem_alloc_and_add_folio(stru= ct vm_fault *vmf, > if (pages =3D=3D HPAGE_PMD_NR) > count_vm_event(THP_FILE_FALLBACK); > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > - count_mthp_stat(order, MTHP_STAT_FILE_FALLBACK); > + count_mthp_stat(order, MTHP_STAT_SHMEM_FALLBACK); > #endif > order =3D next_order(&suitable_orders, order); > } > @@ -1804,8 +1804,8 @@ static struct folio *shmem_alloc_and_add_folio(stru= ct vm_fault *vmf, > count_vm_event(THP_FILE_FALLBACK_CHARGE); > } > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > - count_mthp_stat(folio_order(folio), MTHP_STAT_FIL= E_FALLBACK); > - count_mthp_stat(folio_order(folio), MTHP_STAT_FIL= E_FALLBACK_CHARGE); > + count_mthp_stat(folio_order(folio), MTHP_STAT_SHM= EM_FALLBACK); > + count_mthp_stat(folio_order(folio), MTHP_STAT_SHM= EM_FALLBACK_CHARGE); > #endif > } > goto unlock; > @@ -2181,7 +2181,7 @@ static int shmem_get_folio_gfp(struct inode *inode,= pgoff_t index, > if (folio_test_pmd_mappable(folio)) > count_vm_event(THP_FILE_ALLOC); > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > - count_mthp_stat(folio_order(folio), MTHP_STAT_FIL= E_ALLOC); > + count_mthp_stat(folio_order(folio), MTHP_STAT_SHM= EM_ALLOC); > #endif > goto alloced; > } > -- > 2.43.0 >