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 130C2ECE589 for ; Mon, 9 Sep 2024 22:46:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D1776B024E; Mon, 9 Sep 2024 18:46:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 95CA06B024F; Mon, 9 Sep 2024 18:46:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7FB476B0250; Mon, 9 Sep 2024 18:46:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 5BD2A6B024E for ; Mon, 9 Sep 2024 18:46:21 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E1FF5AA135 for ; Mon, 9 Sep 2024 22:46:20 +0000 (UTC) X-FDA: 82546684920.10.A064C9D Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by imf03.hostedemail.com (Postfix) with ESMTP id 128FD2000C for ; Mon, 9 Sep 2024 22:46:18 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=A8aG1ZSG; spf=pass (imf03.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725921878; 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=C+4nk3SFLT9yU/DUYdXVzczQcb969uRly8G5xeotbKQ=; b=4jTcSmHOSaKY8JlcRsWAsDC01Bg6o0tOzzfNZJiFg7HYt10qVvCWtf9NRrtg/rwAiLjE+j MZR1UX6+iNmq5C1zXepMcuB2y1Y84Q73yukeQLCKOIoOaq2eOGW7vXcKmvgfLEwU3jvTn/ D01Tcqo0QkMfXp/PjsSQlPIArogx7rg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725921878; a=rsa-sha256; cv=none; b=S69HfingynmkkwV6Alq9obPWUBoOcNTae4th63R9Z4VirHY4OB8gHZIeBwV0xKhsnlMekM L1HuvCijgeMSXJ2PfDh+CtmAc7znMvF5rDuxNK9FM6poZdxFgCPR+26Bkj02xSwVcDbCjw 8hsgM0tbTDWXB7Lup55ZZW+RC6DbKvU= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=A8aG1ZSG; spf=pass (imf03.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-a83562f9be9so5968666b.0 for ; Mon, 09 Sep 2024 15:46:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1725921977; x=1726526777; 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=C+4nk3SFLT9yU/DUYdXVzczQcb969uRly8G5xeotbKQ=; b=A8aG1ZSGSXlEuZQ7y78ttWLIV7oK59LRqbTJPKSna+DIvoXDHt5wdVfjDCCXml8YF5 nnwKSzdBkOxYTs9XbQr3malVv178dOdDVsO8sPxa81HT+9D57Ky+1KuxSZyOsVQOB8eo nyIgJ4F3z6iZi69/ciDrAmwCCYku9vBgF1e7wsEB1noxujPiWZ6VCBtkntQQTjX1F26U /PAxwuIyxmm3Z1so03sl7w9QXn1c78oZUsYOj+o8zNjWvGQIkEQj7u6vwOsY8BUIB07u od2qCcjWLHRRgjhw9t0CSxOleDXptf1hHWYtY2Cy1h/SnmUY8visfu2Fnx1QditB4vxb sFVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725921977; x=1726526777; 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=C+4nk3SFLT9yU/DUYdXVzczQcb969uRly8G5xeotbKQ=; b=MbaxISrglKWqsulLqoG4zXkJYqJhBqVAKJ6dqcbnMynt4UIevfOo0IEOiv/f++VAV4 puGYg7vg6bxUZOWCOaGQJy9wKEhasWvyTAB5F4Nk/6K8VE+Yvoh3R4qaOcbL4vL5SZiI 989t+Mpj0CN8PUCOGR9cIqy3eDZrWfUpIUO6keRw5SsaGaq8mCRMQrR7Gg6iKhMUSBqb e3Zhi9zleVke1OSom7Py/jWcyiH8OCNL6TGNYARoXXfDvkVrfsOBMcNlBcvu0DE2FAJh sCl6sRwl7jg1o6KSL/Obc/7eW5Uo27NaBprPtUVcuA71Iet5prdmyiZJZXUAToembR/2 wxPw== X-Gm-Message-State: AOJu0YxdF8hNGrAVoenRhrKcrr+orO9DGYKovIC3zyEjIrnGW+R4aoAI cJVFcxYv6P43Z3D4Xtkyf6kTBA3FogOYMuqosq5/f7w4AVQqSUeByz5pk/kJsSy2r71OkwrJKBY Y1Det0DVfzVed6Z3MqiBNUqINnJipflXHt5wV X-Google-Smtp-Source: AGHT+IE8SJIxL8bgKMRqVhb4TImGa7tJCf1vic0Kcz0oVFDND6rhGcAvC4TZk1H/fFVF2PRs4rnKCc4ZpEELaQ+mrDU= X-Received: by 2002:a17:906:fe4a:b0:a7a:9fe9:99e7 with SMTP id a640c23a62f3a-a8a8885da54mr1045293466b.41.1725921976626; Mon, 09 Sep 2024 15:46:16 -0700 (PDT) MIME-Version: 1.0 References: <20240830082244.156923-1-jingxiangzeng.cas@gmail.com> In-Reply-To: <20240830082244.156923-1-jingxiangzeng.cas@gmail.com> From: Yosry Ahmed Date: Mon, 9 Sep 2024 15:45:39 -0700 Message-ID: Subject: Re: [PATCH] mm/memcontrol: add per-memcg pgpgin/pswpin counter To: Jingxiang Zeng Cc: linux-mm@kvack.org, Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 128FD2000C X-Stat-Signature: zzg8hp8x3bay7oo4prwxj8wzwzbadq9n X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1725921978-846319 X-HE-Meta: U2FsdGVkX18j27NGz+T6Q1wLWwRxo8EjuOXzoFAK845At3bABLwq+xlr0Gy0dWf8FQ/E6lqSGZbKlyQN2lNOZf1LNWgKOPazzRdK1R//W5wAlt+wq3Mjg4nQu++0GayDXp/NosqInjEEZOqNK3gZa8T9SsIhlUolJISN8PASd3xjE9Qqpe6yC+mXCmnyLxbLGALTDNB6kZl5jHHSSzGnVcBFRPJom22uZsy1MPdw02kRBU9utWReVwZ9aprh+3ObEj4mNrg3tCaO+lxwCNi46dtxIr32ucpelbB2mRMkCA5K4AJiF5HmfYZd4HuAMLlegUrObkWbzIE8Uxw1XVfD43mVIBp1sYUEYb1GVR5ESDdnOlFNp5dxxX8wP33mQbtRZiu80mX/iAqxfBngRHldp8w5P+4GxRFOo9wfnVI8OrBgNPpZiR4cVCm4v3MvW1OYoj5jhMumpwk4SgsMykyafE36CO6Uze0yNhiJH4UpH2+btglrKpQQeOCCUOHGNcCu/1YH9ZPFmEHKNbB97clUnKJIfiG0KaDC4QSFvYmLeB7z7DeSEICDtW1F3YX/mvpJqhOhG6kZTW+QIE7aCAZYhihf8eZYOnYYXsAVEgv9B0X+06v4ZqXWnowNkgkk5ufIVH3ANj0CUlDHdW9kBCmhh6S01qvTGu53WYGHZaWfQoo4izatMapXopcw6Gm3Jm5MrVKc/+H7BTjUNLVFT7Y5qVHiy4n8BHzQnxats3OOKKxhbSEIM1OYFssCBwy25mqGy47KSKFM9UgWTGfnYmAcjAEoJtf9t+Jtme+DE8xoxuCURD+GXwtKuim3AxgDen7e+dOuOg52ks/9RvG63INoi8YovDFHg5bMgYAWp8+NwyHckudCt9/Qm1fGzjbG1ghO9e0J1pfQY8sTh1P3nIIsYv0ub5gtsFtcNNUWQ9EtfDdhOBSSUHt4nahbjAs0VhqVMtib3ZAr8cg8+BtSQAM JtAP+Qz4 C2qnEALJvyhIaX5+8JWmNnoFy0pvi5SybtG7EDGnNs0f8yYLdTkKocOt21VL8Vh8h3I9lSK8a/ZnViHo+6LB246yuNkUIbR8tSCBSsXMs7uUtdVf5CgkFlvQOqdToCQ2CeGVxZ2UVq2cVl4qEHcpDJXy/VzbtKnd947jBzzIl+/qJOFYuYzB4izotgLcCimebJcS4MfQ+qwSkGYTXQJaglsD90sTBa2NhC1Bf8vgwLc6X+jbE0jaSyFuZnw== 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 Fri, Aug 30, 2024 at 1:23=E2=80=AFAM Jingxiang Zeng wrote: > > From: Jingxiang Zeng > > In proactive memory reclamation scenarios, it is necessary to > estimate the pswpin and pswpout metrics of the cgroup to > determine whether to continue reclaiming anonymous pages in > the current batch. This patch will collect these metrics and > expose them. Could you add more details about the use case? By "reclaiming anonymous pages", do you mean using memory.reclaim with swappiness=3D200? Why not just use PGPGOUT to figure out how many pages were reclaimed? Do you find a significant amount of file pages getting reclaimed with swappiness=3D200? > > Signed-off-by: Jingxiang Zeng > --- > mm/memcontrol-v1.c | 2 ++ > mm/memcontrol.c | 2 ++ > mm/page_io.c | 4 ++++ > 3 files changed, 8 insertions(+) > > diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c > index b37c0d870816..44803cbea38a 100644 > --- a/mm/memcontrol-v1.c > +++ b/mm/memcontrol-v1.c > @@ -2729,6 +2729,8 @@ static const char *const memcg1_stat_names[] =3D { > static const unsigned int memcg1_events[] =3D { > PGPGIN, > PGPGOUT, > + PSWPIN, > + PSWPOUT, memory.reclaim is not exposed in cgroup v1, so assuming these are only used for such proactive reclaim, we don't need to add them here. > PGFAULT, > PGMAJFAULT, > }; > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 087a8cb1a6d8..dde3d026f174 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -418,6 +418,8 @@ static const unsigned int memcg_vm_event_stat[] =3D { > PGPGIN, > PGPGOUT, > #endif > + PSWPIN, > + PSWPOUT, > PGSCAN_KSWAPD, > PGSCAN_DIRECT, > PGSCAN_KHUGEPAGED, > diff --git a/mm/page_io.c b/mm/page_io.c > index b6f1519d63b0..4bc77d1c6bfa 100644 > --- a/mm/page_io.c > +++ b/mm/page_io.c > @@ -310,6 +310,7 @@ static inline void count_swpout_vm_event(struct folio= *folio) > } > count_mthp_stat(folio_order(folio), MTHP_STAT_SWPOUT); > #endif > + count_memcg_folio_events(folio, PSWPOUT, folio_nr_pages(folio)); > count_vm_events(PSWPOUT, folio_nr_pages(folio)); > } > > @@ -505,6 +506,7 @@ static void sio_read_complete(struct kiocb *iocb, lon= g ret) > for (p =3D 0; p < sio->pages; p++) { > struct folio *folio =3D page_folio(sio->bvec[p].b= v_page); > > + count_memcg_folio_events(folio, PSWPIN, folio_nr_= pages(folio)); > folio_mark_uptodate(folio); > folio_unlock(folio); > } > @@ -588,6 +590,7 @@ static void swap_read_folio_bdev_sync(struct folio *f= olio, > * attempt to access it in the page fault retry time check. > */ > get_task_struct(current); > + count_memcg_folio_events(folio, PSWPIN, folio_nr_pages(folio)); > count_vm_event(PSWPIN); > submit_bio_wait(&bio); > __end_swap_bio_read(&bio); > @@ -603,6 +606,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_memcg_folio_events(folio, PSWPIN, folio_nr_pages(folio)); > count_vm_event(PSWPIN); > submit_bio(bio); > } > -- > 2.43.5 > >