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 C0097EE7FF4 for ; Mon, 11 Sep 2023 16:08:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0B7726B0292; Mon, 11 Sep 2023 12:08:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 067006B0294; Mon, 11 Sep 2023 12:08:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E704F6B0295; Mon, 11 Sep 2023 12:08:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id D75DC6B0292 for ; Mon, 11 Sep 2023 12:08:29 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id B1AD41A0290 for ; Mon, 11 Sep 2023 16:08:29 +0000 (UTC) X-FDA: 81224799138.27.AF65A76 Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by imf09.hostedemail.com (Postfix) with ESMTP id C38CE140032 for ; Mon, 11 Sep 2023 16:08:26 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=kOPMgNpH; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf09.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.219.52 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1694448506; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=OpK471urcTKFhaEEiu2Y7Ctk71H7kGAYVejmdBrLuVg=; b=bXYq8lV+7suT7SvmtQRn0BNLMDCns+YokYBYZGH2w01qALJcnXIfPqDFCeMk1+5Bhq9OFx +4GI1dCy8rbiB2/Csqbg6BnVd42WITbddgmLk+9Wp0bg7tknJGAcIZ3+2LFTn5NVG8Gh/R 0oy6dPFLobrXGyTqkOkev9OD5biSw5E= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=kOPMgNpH; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf09.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.219.52 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694448506; a=rsa-sha256; cv=none; b=wz2X0W8C3G80HtO2sH+NM450ZqEBPuloxf1kkV3Ih503MKLRmAwBJoJOKvQWi/CYczNQmS jB8myBwhfY5iORMi27Rka6Y+2j8HHNd+8yJ2NfZ7sRSQb7W+zmMa8RE4JopZGABLlmMRlc +E96ecCZETE0S7gas5dl3/i+6Fi8ff0= Received: by mail-qv1-f52.google.com with SMTP id 6a1803df08f44-64c1d487e72so29887686d6.0 for ; Mon, 11 Sep 2023 09:08:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1694448506; x=1695053306; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=OpK471urcTKFhaEEiu2Y7Ctk71H7kGAYVejmdBrLuVg=; b=kOPMgNpHvQQIIF1BxFaRMiPAasuZtNlVC+IR0v4oekOdRPmMl1tJnTltA9EX8nY+OU 8xl3cmlR0IT+N5HZ/oYuz2CtNvsHGkBDObILGEgpg3tthmqQ66B+2E1fMxrUHVqoHgqn s+WhMlOQav3ePEI1imWoMS2vR7Ezdkmk0iJmWbflp1HtDAKB28/fZ6SqBDd2Q5AmJ7VK PeGX8J5RrHCbWxkiwo21chqOHYlYetmhC8SEgkooQbF2MvJfQNxoybkAV+RFXuB9+S/3 CPKXYsf8pXTrT1XY2s8gz6uQPKcVwCgidTksc2Miq/FNtZGeYLfqPpF7NzSuHdEz9m+U RxUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694448506; x=1695053306; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=OpK471urcTKFhaEEiu2Y7Ctk71H7kGAYVejmdBrLuVg=; b=XpSaQ9ZwWwKpw7het8J6DGwAAJU8SQxoMmzfjn/HYwbFFZUSNBxezb8iYKw3X5JcUV gTa0+T+gfMPo5Zoq30bYBzaO9eaAtKZ52Z9HDius0Hy14fkNHb+HU3z/0MCDtyUZgRir Httaks+FAp6RdCbFL1Nna7u9IS8AImHuey39JhVMK/HnZYzdBNLt4wXJQuTO7P9xG64q YScrrYqIbjtwMPOuellp0PSbDkIPA90W0TPiCAepEbjyH7jHZ5qBX2pknT5aNRkfndTE YXJc3Kd4wlg97wQiCL9pCr7Xpwfbmvtr0nFdmBG4eVUDRGgsiwkHduSlShQJ+WR/5td5 ukDw== X-Gm-Message-State: AOJu0YzYFIP68NKZMutZ7GzEGhi8uJm5QAOOH7zWGjDkUUx9c8q9G0YE Ec15aErnxoUtmyZNJOUIcXcyLA== X-Google-Smtp-Source: AGHT+IFO1yeb4lCNE0WAccBqbLcdu+KdRUkm4PTopxo1o8AH7WuyX6E2VktVhHwaQ4F1MKaR+oEl8A== X-Received: by 2002:a0c:b34f:0:b0:64f:7751:9d46 with SMTP id a15-20020a0cb34f000000b0064f77519d46mr9827259qvf.62.1694448505863; Mon, 11 Sep 2023 09:08:25 -0700 (PDT) Received: from localhost (2603-7000-0c01-2716-3012-16a2-6bc2-2937.res6.spectrum.com. [2603:7000:c01:2716:3012:16a2:6bc2:2937]) by smtp.gmail.com with ESMTPSA id l4-20020a0ce504000000b0064a5de64668sm2986998qvm.141.2023.09.11.09.08.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 09:08:25 -0700 (PDT) Date: Mon, 11 Sep 2023 12:08:24 -0400 From: Johannes Weiner To: Xin Hao Cc: mhocko@kernel.org, roman.gushchin@linux.dev, shakeelb@google.com, akpm@linux-foundation.org, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm: memcg: add THP swap out info for anonymous reclaim Message-ID: <20230911160824.GB103342@cmpxchg.org> References: <20230909155242.22767-1-vernhao@tencent.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230909155242.22767-1-vernhao@tencent.com> X-Rspamd-Queue-Id: C38CE140032 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: hut9yyrtfg3ozubmkixckk9i3dgpfhjr X-HE-Tag: 1694448506-889404 X-HE-Meta: U2FsdGVkX1/PNOAG1CciW7DO0pmnJ67n3f0nazUpwyVqGxfO9jpCxbOGA8bhny5KxQM+Pq6u7YtDAMGzvixUhzNQ8UQtCIG9KAzdrvlMKOMEzoP85AheTl2RN44VcGB4g0AKuhaMZ1tpahNBjqdGtP8jaqEC1F1ShRuocZpRflE5mdF/UsmNRB+e57ptfwRnCGU+lsQ9ZS1Hul3rPexgGyUqzqdjvhCZI26wjHcWr/efBheRvGwZtH6gyV0i+YHE/6bakD6w1u4IXvU1hsVRMKjf/1wVcOjpfEq3QbLz9VN1D2plsbKxt6253yRAn37cqW22f7QsxwF/I6oZLDCwbSmiCY0p1RCe1xK563J1hcmkU9+1oe/1PfNnH4K0qfSFrkTbSD9SYlo6Fj29jVBeClamGjArzpTM91xHlDqnwzwKXwGUvGD1NWzsNgK6CSqapPGm3KdEh1Mak4Lf8qdEFUEfOdRC9ydptnI5MGYFs1G5oTw1VIeklcX2z8hnvr7rl2peZWFWewB0kBsL0ysSXPbu0EMXuqm7U3SZ0TAh9Yb64GyydS+czr78bWLJx25f+Noa3Fpni6kqvctyn51kNFX2Hj5bT86bxoMKmr9xuqaJhx5UZrhu6Mp4ly0GGRyN158iFnd49uKjhKj0oTIhe+0/rIUWY562c+JnUVj/yIeFSVnkhobIPYtFUjC4rEIVMYhKcdifrJlGUxyfZvfrI/Nl5f+KtPL72qqN5oGhYfXSOEK8DrG/dd9G7Gxpu3bVJKXuIeaZI2C+p2aIto/oBkewpSNIdlziMw07Tb2ECqZyhQE/6I1BhUYQ77aq/9qS1tYsX58LMSXW+YUZ2jtEetdqh93uqUE801UATQwjjBlRTh842GjLGQwnjg3Df42hmDlg1nNNLBOJIcbAF1ZmwYfSrOJCeyukH3StnSlBDizdaQlk0k7V4wlIBRupxuoKVdv0hpvWfrqT+0gVhjX QbNXk0oS EFR3PmJbP+5nZTLQ07m2sZ1BHMpaMTADxmo5rv7k7a9ALZ9ZxqUJqj2ZUo7ioy3wXscsHuN4vOo+4PL83X3pOJhLcJPgBEThQ2SHxVTRIGPZ+JErqwUYQuc9t2wuAU3b6vxm97si11oHUg0Xi0ZSzW1PULkck/bxBRNLYEFw1XNVlyY/4nFaAGK3tcUJUXKZxtq4hpY5ozsTtFHJT0U3+vF79T1+UPzF/TSqkp0ICDHUhcWKM+wjSJDiWlnmocHqnuO/OveOYETG1mwW0IwL0tw0owOAEEg4NTf9bZzxhIfXZ3Msh34IZ6yL/r/MAVAS85k94AE/tbZzL656lQIewZosXyG6Up2iBs8xk/El8btaYiaOXAfpzD6UJZTQwoRcD7+Z2HFPmGk/JuB4CRJSXJdpmXx9+TIPR1Cnb55R/QXkZSCOV5/7/9Wek/7OQZwLC65PUoVPcMj4rHhc= 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: On Sat, Sep 09, 2023 at 11:52:41PM +0800, Xin Hao wrote: > At present, we support per-memcg reclaim strategy, however we do not > know the number of transparent huge pages being reclaimed, as we know > the transparent huge pages need to be splited before reclaim them, and > they will bring some performance bottleneck effect. for example, when > two memcg (A & B) are doing reclaim for anonymous pages at same time, > and 'A' memcg is reclaiming a large number of transparent huge pages, we > can better analyze that the performance bottleneck will be caused by 'A' > memcg. therefore, in order to better analyze such problems, there add > THP swap out info for per-memcg. > > Signed-off-by: Xin Hao That sounds reasonable. A few comments below: > @@ -4131,6 +4133,10 @@ static const unsigned int memcg1_events[] = { > PGPGOUT, > PGFAULT, > PGMAJFAULT, > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > + THP_SWPOUT, > + THP_SWPOUT_FALLBACK, > +#endif > }; Cgroup1 is maintenance-only, please drop this hunk. > static void memcg1_stat_format(struct mem_cgroup *memcg, struct seq_buf *s) > diff --git a/mm/page_io.c b/mm/page_io.c > index fe4c21af23f2..008ada2e024a 100644 > --- a/mm/page_io.c > +++ b/mm/page_io.c > @@ -208,8 +208,10 @@ int swap_writepage(struct page *page, struct writeback_control *wbc) > static inline void count_swpout_vm_event(struct folio *folio) > { > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > - if (unlikely(folio_test_pmd_mappable(folio))) > + if (unlikely(folio_test_pmd_mappable(folio))) { > + count_memcg_events(folio_memcg(folio), THP_SWPOUT, 1); count_memcg_folio_events() > count_vm_event(THP_SWPOUT); > + } > #endif > count_vm_events(PSWPOUT, folio_nr_pages(folio)); > } > diff --git a/mm/vmscan.c b/mm/vmscan.c > index ea57a43ebd6b..29a82b72345a 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -1928,6 +1928,8 @@ static unsigned int shrink_folio_list(struct list_head *folio_list, > folio_list)) > goto activate_locked; > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > + count_memcg_events(folio_memcg(folio), > + THP_SWPOUT_FALLBACK, 1); count_memcg_folio_events()