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 0A6C0D13590 for ; Mon, 28 Oct 2024 02:29:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5BBA96B0096; Sun, 27 Oct 2024 22:29:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 56B446B0098; Sun, 27 Oct 2024 22:29:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 45B056B0099; Sun, 27 Oct 2024 22:29:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 2657E6B0096 for ; Sun, 27 Oct 2024 22:29:20 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 8AB1112065F for ; Mon, 28 Oct 2024 02:28:59 +0000 (UTC) X-FDA: 82721428776.16.151D4ED Received: from out30-112.freemail.mail.aliyun.com (out30-112.freemail.mail.aliyun.com [115.124.30.112]) by imf16.hostedemail.com (Postfix) with ESMTP id B9DF9180008 for ; Mon, 28 Oct 2024 02:28:54 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=Obk0g0iB; spf=pass (imf16.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.112 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=1730082504; 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=qrUz0Mm8myz58np+kw3p9Sjhn9DNIeB0R92nfRVgAU8=; b=sBtiBxgUZ04sodLHezeWOHSDkLqF5UyqUYnjYxo2GfcWQb7mub4Wt3lA69JbXhCy951cfl d3taLm8lcTVUWWAaFm08AAFo+Mhc/YaJMEcnZk5qKE0VdYa74rIEWE5X/c/7wp3ra5PuFB Q+h+/Ua/UtO3ch0h5gRBE75TNXYYeko= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=Obk0g0iB; spf=pass (imf16.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.112 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730082504; a=rsa-sha256; cv=none; b=7YJz9uzW+qTZXA9J3jXSF/TcnmV3vVi48La0kgHL8Y7m84KZqjMOUji5tDH8bC617ZrJC5 wg/084b1K6FxbCZznNPxO7kkPLpopdIl6GjxsFgDxyNa6PPR4wYU68s//fqKURHwOqIent g97EYUAphdOtIABxf2PR5jGG3s02z2I= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1730082554; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=qrUz0Mm8myz58np+kw3p9Sjhn9DNIeB0R92nfRVgAU8=; b=Obk0g0iB1Cl8GW1qZ5TZks3Kz8QuR+VLfw2DoGqIGegtqIAs2rRb33hS0zUb5WRezx6O88ccgUA5UO/6CSYGTVlDW873Qxt8bBDnZggeLY9jo/hlEjn+6XxMsRNDN+hJVMdiiCYDnN0FadYWXkaQjLGU59LHo8gv0EJjRc0TFm0= Received: from 30.74.144.158(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0WHzA9IO_1730082552 cluster:ay36) by smtp.aliyun-inc.com; Mon, 28 Oct 2024 10:29:13 +0800 Message-ID: <73ddad71-47c2-4258-bfc3-a5c5283689fb@linux.alibaba.com> Date: Mon, 28 Oct 2024 10:29:12 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm: add per-order mTHP swpin counters To: Barry Song <21cnbao@gmail.com>, akpm@linux-foundation.org, linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Barry Song , David Hildenbrand , Chris Li , Yosry Ahmed , "Huang, Ying" , Kairui Song , Ryan Roberts , Kanchana P Sridhar , Usama Arif References: <20241026082423.26298-1-21cnbao@gmail.com> From: Baolin Wang In-Reply-To: <20241026082423.26298-1-21cnbao@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: 5zfkdw1tycz16gcjmb84a4if9t9bxrae X-Rspamd-Queue-Id: B9DF9180008 X-Rspamd-Server: rspam11 X-HE-Tag: 1730082534-519512 X-HE-Meta: U2FsdGVkX1/s4G+DlXoWbLQ/NBPN9YXmJffYg8p+plODSs8b06h4KHkQbmj8o3xeGpRfr1Rcg2nYkjPtacxad78u2T0Nlu1uLzmTDMUm/C9gbu2U7vuGCGbbgn/1pahTwZZDbjtP6JAqZMxQ5Hjqhb4k3zGq7Gq8sEFwO1DHQJCZTNi8QVzC3P35RpWz3973lenLnuclLR8ezV21y5rHirjspC3m6/l2YPXwfMrL+ueH8LujQgtXtRxJxt+dPOLF25jIkXlgl5F6F4ZvCEKlOtPQgZWKApnxBh0jc47yPZZN2cS+ukEQXObW8No/lYVdMGnLMp/UMe/jwtn3Z2XWhg8cdVHoJs3k6mwvpONxwV1/ye1WbK8v4XiJxm3WDgzdudT3Eh1qHBdm/iOKxcIjnt/UcEo49qWtetyKonI6PN/K+J+8SNuU+Bx8VOWo9nQkXmAV1FKqz+E6YuuHmT7RCJixCoDC40hs410S+H2FnHDC7tMUzm0TlgF+dyhedLIEyoOKOt0356/+EhPXsW/pAKiXWaiKAbJxa4kJ9Z7rWezEFpaKWtnL85BFjXYLfHEHIJwBTXCZe5uDGlj5MLCiHx/+7RuBi+ErWhDEmgSEZKl21+MVJzQIHq7b0vNC+9YOA3lwdhYZ+DR8JKHHoEQ4nnvqC6z1NmdspBF/5nR47/iEHauJgCDOpPZPwH72xilUySTE8n1xjOHSimv48imCRfMfCFDGSlhi0BX3mZHde6s+QdjqP86qLXMO/6Tyi/2VXOysxthWyJEmZ3Ur0zuP9YUVqJpQm9iPMIHydDKkCwSgCB9LqpKztotYKvt8+arbVZBmZSUcVFf3MI80t4xsHCma4oRJ3xo3tKlBz1WHIHRTViWhQcAD5XZ6+j2bNg/JC9b4BZn85e84Un+pYTiD4O51NcUzAyWbdFYylxYnNWCqaUThW+eFWMS8OJOQXnwZQkPXGoaK2ZGcRiHASWf Y6pAPWWd iMwCqWlt45+fw2UPW2aUdN6IN6Qc1zZdqZOzT6IcJLEdLOFSkBeJtG3tWMBMUGv2XX8sEkuEvtY4DaLuy5RtQlS34tX8yXFnwM8XgNSzTfWPI2Oagjlme8JfXCqSyDLyYzLzdS+FPpDhW+acQiLDMTIJzB0YOFiE3kPC2zs+7M01N/lzP4sB71pziS+FveiFPGspvOpMvmMaUUAEDxK9V/2Q3ALK37/LGRLTxiiPHZs6dB5+q8i471GcJxG4u4z7FHwp0OZ9XmNIdM8AJCabF2RdqPuYSTSwwhPVsvZ7Kt1RIm3LeL1t+K0R+Y5hu3pn0DN4W9C7vp/e8kncyZ8W+BvU+WUwHHADijRklVhvaz4VGRWl1hRtZnchZMCtPemSpFcklTxX+L3MPUmtN+t/RHSuggNGn9aSG45lLLe/f/ni/SUGVlp0uQ5jyo4WPJIt5xOWaYwNYuH4mERMDG9siMh/s0NLggy9qiz16IcnwZwkf+NK+BD+ndE2rfA== 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/10/26 16:24, Barry Song wrote: > From: Barry Song > > This helps profile the sizes of folios being swapped in. Currently, > only mTHP swap-out is being counted. > > Cc: David Hildenbrand > Cc: Baolin Wang > Cc: Chris Li > Cc: Yosry Ahmed > Cc: "Huang, Ying" > Cc: Kairui Song > Cc: Ryan Roberts > Cc: Kanchana P Sridhar > Cc: Usama Arif > Signed-off-by: Barry Song Looks reasonable to me. Reviewed-by: Baolin Wang > --- > Documentation/admin-guide/mm/transhuge.rst | 3 +++ > include/linux/huge_mm.h | 1 + > mm/huge_memory.c | 3 +++ > mm/page_io.c | 3 +++ > 4 files changed, 10 insertions(+) > > diff --git a/Documentation/admin-guide/mm/transhuge.rst b/Documentation/admin-guide/mm/transhuge.rst > index 2a171ed5206e..203ba7aaf5fc 100644 > --- a/Documentation/admin-guide/mm/transhuge.rst > +++ b/Documentation/admin-guide/mm/transhuge.rst > @@ -533,6 +533,9 @@ anon_fault_fallback_charge > 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-zswap > + swap device in one piece. > > swpout > is incremented every time a huge page is swapped out to a non-zswap > 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 830d6aa5bf97..846c1a43f61c 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -616,6 +616,7 @@ DEFINE_MTHP_STAT_ATTR(anon_fault_alloc, MTHP_STAT_ANON_FAULT_ALLOC); > DEFINE_MTHP_STAT_ATTR(anon_fault_fallback, MTHP_STAT_ANON_FAULT_FALLBACK); > 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[] = { > &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 = { > static struct attribute *any_stats_attrs[] = { > #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, long ret) > for (p = 0; p < sio->pages; p++) { > struct folio *folio = page_folio(sio->bvec[p].bv_page); > > + count_mthp_stat(folio_order(folio), MTHP_STAT_SWPIN); > 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 = swap_folio_sector(folio); > bio->bi_end_io = 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);