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 A1945C6FD1F for ; Wed, 15 Mar 2023 02:39:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1A6FA6B0074; Tue, 14 Mar 2023 22:39:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 157446B0075; Tue, 14 Mar 2023 22:39:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F39B56B0078; Tue, 14 Mar 2023 22:39:40 -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 E230D6B0074 for ; Tue, 14 Mar 2023 22:39:40 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id A99171C649F for ; Wed, 15 Mar 2023 02:39:40 +0000 (UTC) X-FDA: 80569576920.28.83EF225 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by imf13.hostedemail.com (Postfix) with ESMTP id E32B32000E for ; Wed, 15 Mar 2023 02:39:38 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=PLcLfvxH; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.51 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678847979; 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=ljOVhU1fVs1xN3h4tM9mfHkMvJnrbFNvzgF16LNR3Vo=; b=gflEsJM6aBYxmLPVuAoi6Neeev3dXkKXiHSHpd4zIKEkmerB++5+2Mw+WSL+f511rJza7l n7cR2hxwljgvY6i7xly3xZtTLtteHcWnxUc8cgNLT4ojeA03Sj3ih1OLE1uToygWyhbKTo iTIElO0RR9ZhF9kyGUdEKe1mNRPqol8= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=PLcLfvxH; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.51 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678847979; a=rsa-sha256; cv=none; b=FvB0QHNMD7Ra2hZh3G47e1VayhfnKTT47LjPIDjWzqKcO1Rw5TY3XwFkdGbMIXGYMfg/v7 5d8CAlELCbz3rf+Efpahsg3Cci3q6OWokWPdmgJJK4ZORxeCmPpdpTVvaYt3J2SsQ1x2bK klLBL0mRHBMRnbMVZVAKYgB2Hy039Vg= Received: by mail-ed1-f51.google.com with SMTP id y4so40533796edo.2 for ; Tue, 14 Mar 2023 19:39:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1678847977; 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=ljOVhU1fVs1xN3h4tM9mfHkMvJnrbFNvzgF16LNR3Vo=; b=PLcLfvxHZdYNgL8JlzYiaOCIP1jymITB2rVN9pw3Y87SePfPyZiOPkONKSLoMmo3S+ FrxXNV+tT07Oo4sdulau0vk37m2vyy0mRe8ZdcS95goR63oHkQcTxPMxJQwR/2eCGLD6 rHA5FbhPuzmSZxu0qsrV7Iw6F1UnY66DTLz3Ghjie1XGN5LiIRFSmuThuKIAnT7UhQfi nxapEjnpcx5XXl57JR6jDAImN1T51fj62Lfya4UhbTY9C8tW7/7XXgSQwbi5bAE6QTXK 0Xtm0CtiMdKMAOAzyAqhy4VYPDXpOT8DbeYjVlfJslD3C2vJXFEY+VFREghp2oB8VtrN kZkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678847977; 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=ljOVhU1fVs1xN3h4tM9mfHkMvJnrbFNvzgF16LNR3Vo=; b=CbP7fnyRxsc5/XUhy47PCQfe26JjoouDt8TngaAeyLhFJz+ZZtGERsJl6QQmeGoN7I y+NJpA6jg0ZHT/UhvuXp8B7TigkA6CLnQ6T0uTvvgz72yFWcmghIp6Oj04B1iBY2xRBG t7FxH4FvdXcHGtECCA7fLAnsltN+suCG+EVqgUgNZ8VTj4Lef3UfhE/kc15GhVj7iwjp +GClCQRbmDfZQMM7dkr2CtXNcjeV7PwKeNLYULYXZbrOxN7QLHypfMbpNzLzXW5JHsa6 vZ9wPZZkyOiVwHUz90zh3LMVVLVdvJjqjtSobNAgJ/VYXyDlAY5nuZJ9CBNWEL3iDm0a KfRw== X-Gm-Message-State: AO0yUKWkTxcA1fTD5B2rrR4yJINUU8qbxAT0WnwEUm+D0pQjlPVu6d0q KlmK7cd+spnMbepJurhsS1rLeULTfYUTCZ2/mbwlyQ== X-Google-Smtp-Source: AK7set+vd/h84AZ/4qOgFnI6UOyEAKXhYQ1zVvqO5lp8UcSSZ/Y1NOCYvHVwdYuPx2Zxyyf/LstgpFZrBPo7KK1jzEU= X-Received: by 2002:a17:907:a40e:b0:8b0:7e1d:f6fa with SMTP id sg14-20020a170907a40e00b008b07e1df6famr2308873ejc.15.1678847977493; Tue, 14 Mar 2023 19:39:37 -0700 (PDT) MIME-Version: 1.0 References: <20230313083452.1319968-1-yosryahmed@google.com> <20230313124431.fe901d79bc8c7dc96582539c@linux-foundation.org> In-Reply-To: From: Yosry Ahmed Date: Tue, 14 Mar 2023 19:39:01 -0700 Message-ID: Subject: Re: [PATCH] memcg: page_cgroup_ino() get memcg from compound_head(page) To: Roman Gushchin Cc: Andrew Morton , Hugh Dickins , Johannes Weiner , Michal Hocko , Shakeel Butt , Muchun Song , Naoya Horiguchi , Miaohe Lin , Vladimir Davydov , linux-mm@kvack.org, cgroups@vger.kernel.org, Matthew Wilcox Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: E32B32000E X-Stat-Signature: tcd53mwe74g1q9tmnrt4kgqrdhomu8oi X-HE-Tag: 1678847978-142943 X-HE-Meta: U2FsdGVkX1/Y330pk2hTlJKEE4xjO7yiQrL8af11wAsfgjCQBOFuy1GGOIIReihWIQ7yQ19oj0N5hRWz2fC0HhTl3Q5YgR7d2WpXPI5FQVDqUhZGyeSJrJPDgQXgWnfyEvK5hdJeoczPiJVSp0N4QiaS0JwYyB3Z6l4CH4Teu/jxe3dVvIVPmIVuVw52aWQgV/Xv8WC+j+aZnt8T7L6pG8iycDy35aD7tDk4Lu8NI/RZ8VMFrVVTr5n8DqzqHDk9DvbBGY+izyF9hOQtdhY1nP8pCmvhjFJTme+PJ0eTpPljgzN8iqqs2nkQg2/NyZOHpZmxmo2aD5iScpdzdTHjweB0T6KNGi3EiI0KJuAdq2jpKyYSf+1OajWIktMguy3u12nYqt7GpBUDr94jmFW5sP39sBzPNuKMomWbBhRGZfv85DXCBXtzFc0DUjSx105q6FT3w4/MHIZjlZ8KZ6i5lDFYQuuOpGF6RzeWYm6jJDGtK4iNspco6eLS/cSNAdd3uZLtL6FLW5KoxPjLLshsosNvtFWoFQohjhJEA4P53aOk0bPbGmNpQZyQrZVj+j2oM9m6WAGRYury/NpmfZVNbkwUuaWDSFrGWzjd8hZPlOtpueDLy28ArHZjVgmWpOn1e2NO/cqY4n8SjiQEs1EteYaXJOB4mzjuWidsJPkGp4H55FTuTdHW2f0COt1biX9rHnFJgRRh4fGly1dIRGVO0dR2iab3FOt8WGgm+wdn925Ec2UtbbShFrsnHJH0YzNSM124Ez778i9bTRsySQ4XUE4IdQmv2xPVSfjvLqymXHota+nSH4t15FvUXxihx6ct0l21Xq3vpNDVoO+WcGR4pOB8cP6GBaGv+Yazy4s0mYWGa7NtWpEnZvuFItXY5zKow/KmmcCbpswa/XuT83WbTASR3aaPustBnJiyUDUtGTwHBPzrRxea5ENkikOS6/JTamU2gMuPXm8l1SVNwvn KzbV5ssf XbnIGb7u+WfRkxT3iDdarMFMiKbkD3nBXwNQGfPQ7LM9bUqOYmzJ/dnT26lN3HIzXQz0jvxYhNOBXL+nHd1iGp28XbiwcA5uUUAbc55FrwrJuS0xa8Qjq/rEpmTeZ34RC1kRRvUljyGletY3+IcuqybrscwsvIXkaKdzGpkxCVnBiHBkYHV3iiN0p7p/sRqyqdUNCuy2pEH6gprhZB0dbhwFLVNwzR/THdjfYOcK3wKcxw4k9QJiJLdRkNOT3BauIU8ceL08SIDTZJ5P2Q/DlF8VXQaLLFdPleEcRovhmpRmoKgVhlGz9Vi0gcHnIIzF3lugRavmMfrNe4/l46f53UpwQ/UA6wqWQWXvp+tiFxuWlBidLxVs1FBuEcnmpTHs1/jZY1KGqHtd1qKn8zCI3I8ySCK2jaG7E5pi0fBPxUB5fqGze60fiFmHhhOPzlJ2MT8Ln 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 Tue, Mar 14, 2023 at 7:34=E2=80=AFPM Roman Gushchin wrote: > > On Mon, Mar 13, 2023 at 02:08:53PM -0700, Yosry Ahmed wrote: > > On Mon, Mar 13, 2023 at 12:44=E2=80=AFPM Andrew Morton > > wrote: > > > > > > On Mon, 13 Mar 2023 08:34:52 +0000 Yosry Ahmed wrote: > > > > > > > From: Hugh Dickins > > > > > > > > In a kernel with added WARN_ON_ONCE(PageTail) in page_memcg_check()= , we > > > > observed a warning from page_cgroup_ino() when reading > > > > /proc/kpagecgroup. > > > > > > If this is the only known situation in which page_memcg_check() is > > > passed a tail page, why does page_memcg_check() have > > > > > > if (PageTail(page)) > > > return NULL; > > > > > > ? Can we remove this to simplify, streamline and clarify? > > > > I guess it's a safety check so that we don't end up trying to cast a > > tail page to a folio. My opinion is to go one step further and change > > page_memcg_check() to do return the memcg of the head page, i.e: > > > > static inline struct mem_cgroup *page_memcg_check(struct page *page) > > { > > return folio_memcg_check(page_folio(page)); > > } > > > > This makes it consistent with page_memcg(), and makes sure future > > users are getting the "correct" memcg for whatever page they pass in. > > I am interested to hear other folks' opinions here. > > > > The only other user today is print_page_owner_memcg(). I am not sure > > if it's doing the right thing by explicitly reading page->memcg_data, > > but it is already excluding pages that have page->memcg_data =3D=3D 0, > > which should be the case for tail pages. > > Yeah, I think it's a good idea. I'd do this. > If you'll master a patch like this, please, apply my > Acked-by: Roman Gushchin . Thanks, Roman. So far there have been different opinions (specifically Michal's), so I'll wait until the discussion settles before sending another patch. > > I'm ok with the current approach too (the one you posted), > but the one above is preferable. > > Overall it would be nice to clarify & document our expectations > from /proc/kpagecgroup (and /proc/kpageflags & /proc/kpagecount) > in the new folio "epoch". Agreed, though I don't think I am the right person for this. > > Thanks!