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 70075E68941 for ; Thu, 31 Oct 2024 01:13:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D6E866B009D; Wed, 30 Oct 2024 21:13:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D1C486B00A0; Wed, 30 Oct 2024 21:13:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BBC606B00A1; Wed, 30 Oct 2024 21:13:19 -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 994946B009D for ; Wed, 30 Oct 2024 21:13:19 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 1C005160E65 for ; Thu, 31 Oct 2024 01:13:19 +0000 (UTC) X-FDA: 82732123614.04.824EA3C Received: from mail-ua1-f47.google.com (mail-ua1-f47.google.com [209.85.222.47]) by imf03.hostedemail.com (Postfix) with ESMTP id 19FC820007 for ; Thu, 31 Oct 2024 01:13:04 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iHlJLDTj; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.47 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=1730337116; 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=FfQRpu7hXgX29iiW2DyLSovm0EXVgeHNthQ5pZDpokE=; b=niBYp+v2kEllMCh5srlkdZ1DWV6Wp544R39vfrSEoFEF2E10lunYJbv584XDWtqcvtKlZW oCnkQtxg5NdK6ujrNBTElHLsoW0YSreIEj8ciKXe3G54ddAfu0gtpLe1X4jF/83Kvc2ugE YxrqDs8SNQCBb6IKfrqqQGfG0TjUOEA= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iHlJLDTj; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.47 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730337116; a=rsa-sha256; cv=none; b=BrczeUD1bbpTXeuXn6U+8GstGCM7dXnFhX3ZNddoTDqYiu09XExrCrlWHaEDdAqEM5oZuO guhUiPnnwnrSpiIADG+CO4yxy+OfDkY1OR9Q0MWnAP6SmPcbKUL/TmRwpEnpafR3FhdtdW E0DA7RT7saFkm/MJ8rAAMwkKejAxetc= Received: by mail-ua1-f47.google.com with SMTP id a1e0cc1a2514c-84fcb020503so196102241.0 for ; Wed, 30 Oct 2024 18:13:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730337196; x=1730941996; 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=FfQRpu7hXgX29iiW2DyLSovm0EXVgeHNthQ5pZDpokE=; b=iHlJLDTjwrerx0RexPkmyDa8x6gCPd+QlI5WKMS9bQ2pGJ1bLPH02yrUfMgh2/EJSx SiGKqavocXClBG6X2n7umTYB/zJ6e6c0zjrp5Kw3w4LrUpo7QK4cancDU+Yp7s8NXZRY 1WhqhJDwbiCphJb7AWnLiwSVeD8pBC8yMvk418lXyt/Rlskiku38C5rNlZETP+YSyu4/ lrGRBKs1idAZyy8XB6Z27VV6E1LVWG2+/wjNr+GZl114M5Dscoryhe9O+EqXxaLK43k2 cCyVFxgHzbEwd+XnvqPZ7dkItD03k6lvDdOalJGEn7Ikw2HPxURF+bRXCD5mO16Jfktu RBsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730337196; x=1730941996; 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=FfQRpu7hXgX29iiW2DyLSovm0EXVgeHNthQ5pZDpokE=; b=AQ0sz0TSycC/4EY0TdIDfXcxEFQpDDJ7VAN5RwctaBsYT0BQ1rQy/ZdXRictiaa8hk Gx1Wj//SFAOXyZj/dKgLWeAx47Y0FL0w0V/LwbHETfOogxnDUhmHv6RwFP33wFds6RTz gya3DxJU6V84HXVEPtRGhR8H92+PBe62M6E2eIR3282eE/UXeZxAb6cBr1htOjsWhHHu ta9gKZ5UPEGfHAx0kgwsAPATCJ1eu4eYnBiUckGq531X2CVAdvXZeP7dqrj6rGODa8sM bVOpvuWYKYOru9JWZx0U9t9FDy2Jhe9yANC2PQKwHsGb2AWtj8QFUgyjMWePkDCzvBhf 7ABg== X-Forwarded-Encrypted: i=1; AJvYcCXdrJmDZIMM1sO691xmDNb6wAaOXMHuiPgxDzrQQ0ETTI6F3v/XkM/yMagn6BdgD4rZfDbEQUcF8g==@kvack.org X-Gm-Message-State: AOJu0YyPJuA52JOVfu8biKXvRlw1gLDCKZhR9RyqgIAcjYtp3WhkzRCP 8YRzBX+JLB/LvEa+JFO2KZ/lPkUqhzEd9zdLsvgK5VA6ShlMCqgPJqCio+CtOiClSOM5981LH+1 I1Ses7tZsse1YkAZnEiMbj+19N/Y= X-Google-Smtp-Source: AGHT+IFICjqEXzcy3tC3+eiE5It7QHF1ahi9Gf3s0gb7YrIrsOa85c5g+/IrJZRJvHSVvClKYqN+qL98RN8vIcSVqK0= X-Received: by 2002:a05:6102:5121:b0:4a5:b710:bd16 with SMTP id ada2fe7eead31-4a956cca46bmr509884137.5.1730337196275; Wed, 30 Oct 2024 18:13:16 -0700 (PDT) MIME-Version: 1.0 References: <20241030233423.80759-1-21cnbao@gmail.com> <87cyjh9khr.fsf@yhuang6-desk2.ccr.corp.intel.com> In-Reply-To: <87cyjh9khr.fsf@yhuang6-desk2.ccr.corp.intel.com> From: Barry Song <21cnbao@gmail.com> Date: Thu, 31 Oct 2024 14:13:04 +1300 Message-ID: Subject: Re: [PATCH v2] mm: add per-order mTHP swpin counters To: "Huang, Ying" Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Barry Song , Baolin Wang , David Hildenbrand , Chris Li , Yosry Ahmed , Kairui Song , Ryan Roberts , Kanchana P Sridhar , Usama Arif Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 19FC820007 X-Stat-Signature: edjn8nafmfz4abka8gm4mg8rw3yjqjpn X-HE-Tag: 1730337184-777680 X-HE-Meta: U2FsdGVkX18yd4HSw2r1/KO0JZfiygxFDqg/uVx1c6aq+4sdHnHffvrvS+cU0koN60unPVMtrbTjDS+UUXSa0yZjtGqYO9UemRValOiQT0bo/TSiMpHvtUX1wGJvkq1fOJJ2SHM5N/iMP+UtPs27m/A6rNQJu3KmcUzfKH/S8ZM8EWh+aDPZH1gQ3gIaZCTZniKtDdMjGu3Edko7ITNE6hajnYxIL1lskTPf3fgh6D36aPLZkTOFMsw5ipTKHFUBrBgsFTqwpOz4SQ9s2NXBaBf5CfowBfAZ29BH+eI3Q/DUvxh1F1++EXpsvuXlQoqJHyiASlL4Q4KO4yzxjITjITEQYUo6EKb7Rbf4li6i7yaXuCeRCV/m66lot5pJV+1W01IXMm8nlx1RTN9WpJ89GhLhUD3WJ20vuZlHhKlmKiaZsunx6MetKjzlr7J5Wt/M5UZUg9KJwJ3YgkTaGfK5JWaCHacxnkz/hwrqU1VJZi4Ggxee3gen+kDFWetIQNUscFLrStw9czhOgFbxnDCR6KNvNE14jvZM3iEeDWICYfVTYuqapDXJ1JvmdmcyYquWqAaLtplcShON19t45r60dtaQiR2CVu3xxQOVrvvQ6e6aNB/zuf6Pgi3bssXEUglU8YaWOztYUHqQGEiHQ5fhMjz97StCBhYkP3fivBg/arIGWmxtC8fMjMB9R5Pu8SZm6PiaFQqYRX0RFplLb+5RtZ5jyZgzR5qT/N3gP/b5Ac51kMri6g5ce+Wj+PIKmuAy4Siq3iwajetqYFhK9yoCHjvzlIGgUAaigAGuvcIkJMlEYPZjJKPIFmKhM+ZILosikmIhlxRN0CTWhT81OvFRCD3eDDLIUf3NR0a2/4xR2RG3yTPC97WWnYiy6oGNtZkkmdI9fgHho5I4R+LH2bMRn/xRgRSNGPrxLpQkuqq7rF7kW7j33i5mlI//j/2YX45PrcLAX8VPhNHVPJa0R5f 8dTzd2TR 02QMff78R3AxavQeIZ+61+DOMjXcJeUoWs2rhOXQFUFjV7FYhWPIfRPKP6Jel+Vd6IWYWU2+Erl59HBJ/pJv+/BiH2+sr1FoPcRpipidfwRijtkfWV1HFdRMhO5S/YksoZs+Y5sM/M/8+nVNbWfyL0Yg1EqQYhmbDRG3NPpjWjJJ4hTCZNoh5TqlmzuIdkfiPzCvsCWltgzuuSPv86dvc6sK2Cw5li/poKlObWuQzM2Wkye6j1IVJh6LTUoLBE19yBTWQMeukCTrAZFHzpg9P+6EbgEysy1b5sWP2+MDbyAsQZ9sQEeBfMgzQ2ieiW3Rc4qsuNMHMsHcC4jbqBH/MltkqAv1nWl9pub98sr99gLUfoK4fTxc/PjGwN0ki5iB49M0waTVVnVh2PpJlvMqyuCDx30nSeVnHX6j5DRsaftOHVoFYivMda3mMUzlgZiyVNW9tcKShTw9dfhk2PzSjqojuWoK3ef8Jiqj3bE7GHr/hnxb9lCoxs+LYYjAtZOpq2DHfZ82bpDop0Mz952Qurffdeix7vLoVKgf0Pa0NrvFeHPXsyUZBbFqoY31yVGUUtgMx 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 Thu, Oct 31, 2024 at 1:39=E2=80=AFPM Huang, Ying = wrote: > > Barry Song <21cnbao@gmail.com> writes: > > > From: Barry Song > > > > This helps profile the sizes of folios being swapped in. Currently, > > only mTHP swap-out is being counted. > > The new interface can be found at: > > /sys/kernel/mm/transparent_hugepage/hugepages-/stats > > swpin > > This looks strange, why isn't it > > /sys/kernel/mm/transparent_hugepage/hugepages-/stats/swpin > > ? I might be mistaken, but I want to highlight the path and new interface separately, as I=E2=80=99ve done in ec33687c67493 ("mm: add per-order mTHP anon_fault_alloc and anon_fault_fallback counters"): If you prefer it on the same line, I=E2=80=99m completely fine with sending= v3 to make the change. > > > For example, > > cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/swpin > > 12809 > > cat /sys/kernel/mm/transparent_hugepage/hugepages-32kB/stats/swpin > > 4763 > > You miss "$"? Yes. > > $ cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/swpin > 12809 > $ cat /sys/kernel/mm/transparent_hugepage/hugepages-32kB/stats/swpin > 4763 > > > Signed-off-by: Barry Song > > Reviewed-by: Baolin Wang > > Acked-by: David Hildenbrand > > Cc: Chris Li > > Cc: Yosry Ahmed > > Cc: "Huang, Ying" > > Cc: Kairui Song > > Cc: Ryan Roberts > > Cc: Kanchana P Sridhar > > Cc: Usama Arif > > --- > > -v2: > > * collect Baolin's reviewed-by and David's acked-by, thanks! > > * add some examples for the interface in the changelog, Per > > Huang, Ying. thanks! > > * add a blank line in doc which was missed in v1. > > > > Documentation/admin-guide/mm/transhuge.rst | 4 ++++ > > include/linux/huge_mm.h | 1 + > > mm/huge_memory.c | 3 +++ > > mm/page_io.c | 3 +++ > > 4 files changed, 11 insertions(+) > > > > diff --git a/Documentation/admin-guide/mm/transhuge.rst b/Documentation= /admin-guide/mm/transhuge.rst > > index 2a171ed5206e..5caa3fb2feb1 100644 > > --- a/Documentation/admin-guide/mm/transhuge.rst > > +++ b/Documentation/admin-guide/mm/transhuge.rst > > @@ -534,6 +534,10 @@ zswpout > > is incremented every time a huge page is swapped out to zswap in = one > > piece without splitting. > > > > +swpin > > + is incremented every time a huge page is swapped in from a non-zs= wap > > + swap device in one piece. > > + > > 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 c59e5aa9b081..b94c2e8ee918 100644 > > --- a/include/linux/huge_mm.h > > +++ b/include/linux/huge_mm.h > > @@ -120,6 +120,7 @@ enum mthp_stat_item { > > MTHP_STAT_ANON_FAULT_FALLBACK, > > MTHP_STAT_ANON_FAULT_FALLBACK_CHARGE, > > MTHP_STAT_ZSWPOUT, > > + MTHP_STAT_SWPIN, > > MTHP_STAT_SWPOUT, > > MTHP_STAT_SWPOUT_FALLBACK, > > MTHP_STAT_SHMEM_ALLOC, > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > > index b26c6503e993..f92068864469 100644 > > --- a/mm/huge_memory.c > > +++ b/mm/huge_memory.c > > @@ -616,6 +616,7 @@ DEFINE_MTHP_STAT_ATTR(anon_fault_alloc, MTHP_STAT_A= NON_FAULT_ALLOC); > > DEFINE_MTHP_STAT_ATTR(anon_fault_fallback, MTHP_STAT_ANON_FAULT_FALLBA= CK); > > DEFINE_MTHP_STAT_ATTR(anon_fault_fallback_charge, MTHP_STAT_ANON_FAULT= _FALLBACK_CHARGE); > > DEFINE_MTHP_STAT_ATTR(zswpout, MTHP_STAT_ZSWPOUT); > > +DEFINE_MTHP_STAT_ATTR(swpin, MTHP_STAT_SWPIN); > > DEFINE_MTHP_STAT_ATTR(swpout, MTHP_STAT_SWPOUT); > > DEFINE_MTHP_STAT_ATTR(swpout_fallback, MTHP_STAT_SWPOUT_FALLBACK); > > #ifdef CONFIG_SHMEM > > @@ -635,6 +636,7 @@ static struct attribute *anon_stats_attrs[] =3D { > > &anon_fault_fallback_charge_attr.attr, > > #ifndef CONFIG_SHMEM > > &zswpout_attr.attr, > > + &swpin_attr.attr, > > &swpout_attr.attr, > > &swpout_fallback_attr.attr, > > #endif > > @@ -666,6 +668,7 @@ static struct attribute_group file_stats_attr_grp = =3D { > > static struct attribute *any_stats_attrs[] =3D { > > #ifdef CONFIG_SHMEM > > &zswpout_attr.attr, > > + &swpin_attr.attr, > > &swpout_attr.attr, > > &swpout_fallback_attr.attr, > > #endif > > diff --git a/mm/page_io.c b/mm/page_io.c > > index c69fab5060a1..5d9b6e6cf96c 100644 > > --- a/mm/page_io.c > > +++ b/mm/page_io.c > > @@ -487,6 +487,7 @@ static void sio_read_complete(struct kiocb *iocb, l= ong ret) > > for (p =3D 0; p < sio->pages; p++) { > > struct folio *folio =3D page_folio(sio->bvec[p].b= v_page); > > > > + count_mthp_stat(folio_order(folio), MTHP_STAT_SWP= IN); > > count_memcg_folio_events(folio, PSWPIN, folio_nr_= pages(folio)); > > folio_mark_uptodate(folio); > > folio_unlock(folio); > > @@ -573,6 +574,7 @@ static void swap_read_folio_bdev_sync(struct folio = *folio, > > * attempt to access it in the page fault retry time check. > > */ > > get_task_struct(current); > > + count_mthp_stat(folio_order(folio), MTHP_STAT_SWPIN); > > count_memcg_folio_events(folio, PSWPIN, folio_nr_pages(folio)); > > count_vm_events(PSWPIN, folio_nr_pages(folio)); > > submit_bio_wait(&bio); > > @@ -589,6 +591,7 @@ static void swap_read_folio_bdev_async(struct folio= *folio, > > bio->bi_iter.bi_sector =3D swap_folio_sector(folio); > > bio->bi_end_io =3D end_swap_bio_read; > > bio_add_folio_nofail(bio, folio, folio_size(folio), 0); > > + count_mthp_stat(folio_order(folio), MTHP_STAT_SWPIN); > > count_memcg_folio_events(folio, PSWPIN, folio_nr_pages(folio)); > > count_vm_events(PSWPIN, folio_nr_pages(folio)); > > submit_bio(bio); > > -- > Best Regards, > Huang, Ying