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 9D8A7C6FD1D for ; Wed, 15 Mar 2023 02:37:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 21DAC6B0072; Tue, 14 Mar 2023 22:37:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1CD1D6B0074; Tue, 14 Mar 2023 22:37:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 06EA28E0001; Tue, 14 Mar 2023 22:37:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id E91D96B0072 for ; Tue, 14 Mar 2023 22:37:53 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id BA6AFAB752 for ; Wed, 15 Mar 2023 02:37:53 +0000 (UTC) X-FDA: 80569572426.20.18BDB76 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by imf12.hostedemail.com (Postfix) with ESMTP id B30BC40011 for ; Wed, 15 Mar 2023 02:37:51 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Xc9yCfLw; spf=pass (imf12.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.44 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=1678847871; 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=8TjQwVhKxvRBVOIVGwg9edcQgPJbZ2IzzSGcTnAej4Y=; b=oOK5+KI35j6Fw2Se0HoJSYIJU52/sneukawIAS/QFIVRqjXBAIe00a73TNkZVtMTX056pD KFfBC0I8eo6qPtzozICPBpoLxh6DVr105OVvaIs0zj9jNnzfe93NmuOz5cTkZMG/AlY2Lm 1JH+dID65M85DfVPsFxYCt1C5e7OEqc= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Xc9yCfLw; spf=pass (imf12.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.44 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678847871; a=rsa-sha256; cv=none; b=armZKMhmY2RElIfvvj2xw5OFV60i0mH73ZxKFzLDRU7S7pfFYbycbkOKteLNFWZA4WqjHh j5XWau9pBkan3B5KiNotRRb4/lVkSBONqQXROyscS04HLp/K8ZfvJEqtpVpGFr8TDlxPV3 gXq6xnq0x+VUZk/fsUVIUtoepoeXgB4= Received: by mail-ed1-f44.google.com with SMTP id cy23so69845330edb.12 for ; Tue, 14 Mar 2023 19:37:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1678847870; 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=8TjQwVhKxvRBVOIVGwg9edcQgPJbZ2IzzSGcTnAej4Y=; b=Xc9yCfLwHeoLdBRIRQRNb2Tduv5hbX2UFiomKdP9082kmEUpOZN2/Cx0H0vvMehFtg Yge5x6d74c10tjaTAiuSHCRG7dSPbZcL78D0XLFrSg4s/QFRb3VDfC+pw3VrUj5VKbm2 kMlolJIobPM3ZEwBDoyXlZptFj5lNvc6fiAh74JHFcX/puKA50YSN0lVVZFw4L9xHwbJ 3vpGZFqn/4NvXg/f4r2K9UdgvtUbEwGCm2dzbKmPir0VFOQZYa57AHYEc9ke3LTMO61c WUZASHfvlI/H7yTTt2SIci4c8pqnBqO+4IKZ2akiISFsOFyfSPa2sV6xTFggeZE9ctuI IFuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678847870; 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=8TjQwVhKxvRBVOIVGwg9edcQgPJbZ2IzzSGcTnAej4Y=; b=ICRJwZ43E9LLPhP3ly54RvY8n3lZaMEgmJ8eVpP/F9Fjx5R/T8e+y5IvGVf0E2gmMa joOnc/s5pdHEL4k8G8n6tsyFf7kblwJi9ezsrwTfcCeWJFtRMeVyO9P8IEW3zUgJmD7x pw/forHyqOktq/Zfx4s2xGATBJGWzWoCoBFzHXqvQd0kN+wA9ghho1Gjso1CzXJMNmp+ xWF29RJBAhz2Z2ay00pmW5FY0EXHastl/mBzH3oAsRScnuXDcU38ZzPcAJyLw6aJh+79 dY1LEQRO8QQar9y5hj2v+rkO/Q9/AD/oyoQIkTfvV9yEb7KHrwuUUP/uqHzQswidecqV E1lQ== X-Gm-Message-State: AO0yUKWNG0ocOYImKhnCArFSnv+KnMbKpIkrxUqWhk1BlarQxK1gdvqk Zn9aCgG/kJmrqVPFmlB4hgpG8PF4YODP/HX14k9h1w== X-Google-Smtp-Source: AK7set/FUAgI87tFNNLhJZFSXdaN/kovbwZHdnYf5yKup5e4N/qypccb6AKWoAdOtbNUDb8R1j717jLKUK47g7y7aF4= X-Received: by 2002:a17:906:309a:b0:925:c396:b1b4 with SMTP id 26-20020a170906309a00b00925c396b1b4mr2704985ejv.5.1678847870057; Tue, 14 Mar 2023 19:37:50 -0700 (PDT) MIME-Version: 1.0 References: <20230313083452.1319968-1-yosryahmed@google.com> In-Reply-To: <20230313083452.1319968-1-yosryahmed@google.com> From: Yosry Ahmed Date: Tue, 14 Mar 2023 19:37:13 -0700 Message-ID: Subject: Re: [PATCH] memcg: page_cgroup_ino() get memcg from compound_head(page) To: Hugh Dickins , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Naoya Horiguchi , Miaohe Lin , Vladimir Davydov , Matthew Wilcox Cc: linux-mm@kvack.org, cgroups@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: B30BC40011 X-Rspam-User: X-Stat-Signature: x4udzbhxxmyoftayx9gbm3t9m5rz4pst X-HE-Tag: 1678847871-311363 X-HE-Meta: U2FsdGVkX1/zXRl6zdEk6uTdRw/81hMOza9QKBW7P7bMR/sqAWkLSM24IWUn5LQKDBVSU/Lxzx7S9yxlbS6O+diT/rJBv3r5L3Jd0JrF7P+bjKHd0kwtwLrzIbeYIRjy32HK7SO2hv2myEmk2gO4eKsIwDQ1UN4F3tKzzRXMDvU7d1XZTW3v/vsMdE9ulQv/eHcDbu5X0LzQlV+StZK0HqZjwetvhEPUKWQ6Hta0Hg0VYfBXHWPGk/HQ1liTM0rf1+cT1F7bZnLVq4ZZ7e2yLNhtPqqOBEqOTu9ynBgCoHCrfxiDl/gjMmp9We9JOJkS7nCldBchk3TrzRWXLVFWacqJ3x41VDZWasvL/vD2hStemUJMpatPhrVxMdvcywHzSsIxp4boSmfRQRSc7yuYNgB7hEE1aYZ/Fc8RzhLnR+x1ZsCwL6Hvm2FC7UZkrDsTo1epzB8yyB9vOFBPi2lOuW9j9o8DXYPsokCzqBEbHY7lFQpC8a3RbUCVCA57ymFsJWg9Ek7XAbfGlgkolaAN0SLTYhchJPyhNnSofkB0+p3aR5Ay+EHeJwZUNDuCpufw+qh6/gHhevSERzxLfjKGTV6oVO8uEocTr0Pg8j79vyWXjTDCmCGcgQibEmf1S9xuhzBIPNq0PtGNE+r1jB/M+BjM+QatRN8iVzs0DoU5IOZSvsLWMqjO3Bh1ZlZP7Ce/6iCCpXxZhA7OP9RwWY/feKj/DZ5ic4KjLXVRaAiobtCifVwB8TCePpRPrWUlYGT4385KWtnx9DJRXdsI6/w6hxd/TX3LuCXnVsTuSe8M7VNg3IGcoUIdxTahhn1Kf/6Qf0GeOJj4H/yIO+RngiANLwkvuW/a6nCA/OvcbMlLzOpUl1cgq7JTvjhpMEe7Wqs32THUS73aFd1FY6+cTsiQD7Ck6vV8DwF4L4+qg5v7hhl9rhyan7PYRaqNgy5bsgiKq38/utiDyNjTaPWee3n ygNMEcFO XwPLv8TbdMn6IvOUrCB5EW4hfs8B77YuxDhqDKYnZgVHkl/rc/IdwXSpj7eI8USiIHBRq33Bb5tk9/6Z+U/U4uf52zkUnm0Oc1K/mtXedunWwBEYJBsFI21lFfD8Py5gkxPqxAxlfNB621eMW5st1HY8aU2PlFMeYGn+nLKXcXQb24wfZRigdS/OQdCX24iLC/XdwYbOUhVotfeoLfK906homNHLbtIuuDSayiBIv6ASPSICyL7eCHjEvZfZXI4YFKadwUmus0gIfke4fHN16X7S2s0OtkwUo2hlyEqHV4VgiR1LEEhyCdC+EQ/xyOJca9lWVFPZt0fy/A3Eylkuu51C1oMmg2BqMjh14xRd4IuaZvLDwf4ynt1PDW/KfCfM2H7v2Yc1KSF22fB8efM0NTLKS0MRv0b2yPzHrFpAmeTSfCEo= 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: Somehow I was stupid enough to forget CC'ing Matthew :) +Matthew Wilcox On Mon, Mar 13, 2023 at 1:34=E2=80=AFAM 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. This warning was added to catch fragile reads of > a page memcg. Make page_cgroup_ino() get memcg from compound_head(page): > that gives it the correct memcg for each subpage of a compound page, > so is the right fix. > > I dithered between the right fix and the safer "fix": it's unlikely but > conceivable that some userspace has learnt that /proc/kpagecgroup gives > no memcg on tail pages, and compensates for that in some (racy) way: so > continuing to give no memcg on tails, without warning, might be safer. > > But hwpoison_filter_task(), the only other user of page_cgroup_ino(), > persuaded me. It looks as if it currently leaves out tail pages of the > selected memcg, by mistake: whereas hwpoison_inject() uses compound_head(= ) > and expects the tails to be included. So hwpoison testing coverage has > probably been restricted by the wrong output from page_cgroup_ino() (if > that memcg filter is used at all): in the short term, it might be safer > not to enable wider coverage there, but long term we would regret that. > > Signed-off-by: Hugh Dickins > Signed-off-by: Yosry Ahmed > --- > > (Yosry: Alternatively, we could modify page_memcg_check() to do > page_folio() like its sibling page_memcg(), as page_cgroup_ino() is the > only remaining caller other than print_page_owner_memcg(); and it alread= y > excludes pages that have page->memcg_data =3D 0) > > --- > mm/memcontrol.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 5abffe6f8389..e3a55295725e 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -395,7 +395,7 @@ ino_t page_cgroup_ino(struct page *page) > unsigned long ino =3D 0; > > rcu_read_lock(); > - memcg =3D page_memcg_check(page); > + memcg =3D page_memcg_check(compound_head(page)); > > while (memcg && !(memcg->css.flags & CSS_ONLINE)) > memcg =3D parent_mem_cgroup(memcg); > -- > 2.40.0.rc1.284.g88254d51c5-goog >