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 76357C6FD1D for ; Wed, 15 Mar 2023 03:41:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C4E008E0001; Tue, 14 Mar 2023 23:41:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BFDC76B0074; Tue, 14 Mar 2023 23:41:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AC57A8E0001; Tue, 14 Mar 2023 23:41:27 -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 9CCC16B0072 for ; Tue, 14 Mar 2023 23:41:27 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E407B160FF9 for ; Wed, 15 Mar 2023 03:41:26 +0000 (UTC) X-FDA: 80569732572.22.17675E8 Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) by imf22.hostedemail.com (Postfix) with ESMTP id 26692C0009 for ; Wed, 15 Mar 2023 03:41:24 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=iSEoWq8z; spf=pass (imf22.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.52 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=1678851685; 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=HqjNzfEl6/soQ303j8VicjxqLu+8Pdbe2K2IwqybTZ4=; b=Csnfb6F1eqOXee3f/OJGXNxgrzTg0242mEX1jnCWoXo/sYV1lIDTfxqpnLAzxk9yWg/PZ/ BKxyTAT9I1LkMGPdKuxCsG3HyHHJrADHFwY/vDVy9BUpb4iQ0H+rvZ3v6SM6sFaGJrbU4K O79p4ppYo5BMuqv7mhZCifNZPrjpr9Y= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=iSEoWq8z; spf=pass (imf22.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.52 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=1678851685; a=rsa-sha256; cv=none; b=G7/PU44uIOfmJVPYhbXmiBlfUgN9MoeZLlIhCy6VYPCysHDf2y/d32VtNtC8ko2JklMfVh rj5rWAQDY9zk8ClGdluY5OWAXj0OByDbDDGunyKzJl2k9In7fFlWuuM9BHV+r6kKlW6bzg wDcTCAHb61HLe0YJynMYs/tl0qQrXnM= Received: by mail-ed1-f52.google.com with SMTP id x3so70270317edb.10 for ; Tue, 14 Mar 2023 20:41:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1678851683; 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=HqjNzfEl6/soQ303j8VicjxqLu+8Pdbe2K2IwqybTZ4=; b=iSEoWq8zG/XKNq2+fbe3RXpE91OOk3YVSEIyPM9ABQM4pahRYJI1NL5J/hoZgboRLw hGhGQ3Y/QRowLilPx+6Fi+usDRlxoH51Be9IiwN8Dkjk3xJTZ0VQ6zYyGff/FbyWRiYd 9FoM7TjRgazH8K2U7SloDG4bIphe+Cx6Z1Y1rPZz3DQL0b0U79QAwbOkP1T4Vx9+7H0e PHrx2lp5Ks7Hv3AVICtUx/K1/gE6hfODeDrCe2+Dyn+mG4Y07GO0AeuQ4oW8ptay+pXK DPSjPdAWw40PkNKCdbyojegoUrV2sZJ6Ezuvgi4CDvEVfsMncfzHDbxCJQ0Y7LJwdUhm TW+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678851683; 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=HqjNzfEl6/soQ303j8VicjxqLu+8Pdbe2K2IwqybTZ4=; b=2bZnYViLSqWJP+cHKzs3uNToZivGwpx9uk5BUevKA5iTlriTUFEWRkNdlHM8OYx8W3 zJhQ3wrIlqWZj41cOt8Lee8PsELCyNnAcGhrdjvgnmrUbkhP5ntvNGDlN3+HoWsChQKJ R6miwrGsl+UEC+4iFjcZpqABCr+Uzdd6+H8+47hv1ZYnVUs8tFAdVpO43vB51F98E/L8 Z4QQi+JoNJEMIhrCWqQY2uWLW7FDvIvVx4r5GGHOBnHK1T9MONPywS58q00/i2yjtExT 0t5Q8+VoewJ9nmTZVrX5tbvP5+l6dwhCpvKpHwatOm5mjIZ8J/PJA9KiOA6HMQTI3ZcE CA/Q== X-Gm-Message-State: AO0yUKUMiRfa7ER4uWT9ynkKYQ7L1QWmB6e1ZAwGuZCTRbhj6B0G4V0p yjfqXlqPADVHKe5nk5VT9ZzCNpNP7/UCXVMA6hle2g== X-Google-Smtp-Source: AK7set+9l7zC23IDId6r5OFXoHMsftuP51Uxgih67PxLxlFV0R0nTazODh0I27/MWJEDeS4jnrSpmSkmVBAO+koIwAE= X-Received: by 2002:a17:906:57cd:b0:926:b9dd:38f8 with SMTP id u13-20020a17090657cd00b00926b9dd38f8mr2457635ejr.15.1678851683321; Tue, 14 Mar 2023 20:41:23 -0700 (PDT) MIME-Version: 1.0 References: <20230313083452.1319968-1-yosryahmed@google.com> <20230313124431.fe901d79bc8c7dc96582539c@linux-foundation.org> <61e8e6d3-697e-f9a5-a1fb-45a3448ee5db@redhat.com> <84d8fd38-f05c-73f5-ef50-fcac524097f3@redhat.com> In-Reply-To: <84d8fd38-f05c-73f5-ef50-fcac524097f3@redhat.com> From: Yosry Ahmed Date: Tue, 14 Mar 2023 20:40:46 -0700 Message-ID: Subject: Re: [PATCH] memcg: page_cgroup_ino() get memcg from compound_head(page) To: Waiman Long Cc: Andrew Morton , Hugh Dickins , Johannes Weiner , Michal Hocko , Roman Gushchin , 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: rspam03 X-Stat-Signature: qcuqo41gkhntcnx5qfqwirgk9mxgb5zj X-Rspamd-Queue-Id: 26692C0009 X-HE-Tag: 1678851684-598540 X-HE-Meta: U2FsdGVkX19PNkGREMeJjYUSCVKTh/jpxFtlx6/EyNbCpUGpdVLL/b5vd3dHfegQFUf7vCB9G8p4QQ76HX1UNq1I6XOpsXSOxIVGFbfT/KOlo7y5ahSK0N+xrABKsD3cOMUq94TZLIIkzfQxDlEwmGweXMSw/5+MQVHmh4sVPBRYZKH2CncRXhOiD8Dml8DBF+JzIoj+AheV6TQEAFBDRIrrAM7owAE3nxDiC7oV+vOOF/ghtqqhWNCtdt5v+S5BlXu2Gtdk7K0kYbxgzgzLQ19eNiONkedbJspsDlFlT8IKDBYkptOOW+8XPkbzIhFBeaYlzpi8rbMeJkItYA1KD+71KrZBB3UvchZrPzlqKofDdAWcuJg99SpHqO/xdFlwuyQRsGDOdsh0avdnesthbMUj/RMDEJDKyJWPI0JfyqAUcM8MNfpfLbLWOBiKADaU3I2vBpk57Z37pnZE7ox5SozT3/NZ8B3xUDGAeqBPXBuhK3Sj6ghHKi6bARAV37JjxazmR8jh3HX19xlw2+OucVOyiZ5kkCB7Nc7jHS3satiYkcFUYvDbnEbh5mIt8nYNf/X8BFTk/s9mlyDETvqoYf+hTPWh+4awYSg3xfK9htC4HVtV6XiNEpEjYyWYH5bOKqw1IUOQ/BdaV1VgTpqB2SW1klQUHFz2BauL075gWLyxcYrupTlSJxRVo4qnOrF0w4Kjd7yPZSV5FpdkbYhxBOTvzsNJe8FnNv5XjvsxS7P+gSC/MFgdsC6aIA7oPJkZl+vnbBLCioVk5yWZD6NVsCD3XwScZl38E8s/CSutcmXt7g9KCFsPsP0oeQKXwxO2jEQEZJVOHff4v9OLNL0UzoeLY9wfKIyWtbumx7g1lkzJj1OI4P50XBLWz1QKu2aiiE/M9UnJyzH+b2dqtl2aOQMeBLnhNevfrGv8sSxFso2kONfU/lJN8WhcPCw/ZY6VmGGYHmhNTWQFzoEL5lu 7A6lO+E4 0lKAA/UpXmOnoYptPf1koK+FyOoMHa9Rru27nntDgqpK4wZ4+iGq8qwC1kOTIlsvsTc8q9PM+thQtmYl6JpLJNcsS1YpP3V2+QRW0exEV+oIyOcHKe3a6LIjcJRHzTq8Ig0TtA6+c3UbeNmuwWi5gM/k/yqVpijM7GqUe0t6Y8o59gcCPgxah3Y6oK6zhBfoB/GE4lwNrweNclgibYfhk9gRuoyoiJZ5nbJ/IdjBOqUdhNm45m+HkQZqFUUDaKXyW14AWaMNO2CuAKM1+KR3u7xWipg7w2YtyoBjB7bOKtmW2CYrP/B4Vks8OJkxEGvHrF0tm17pveMQS9GkIRV6jc4TkSFmCCwlqTzyGXKAiG9W19GNjqonlysHkfHzq1Yukgi4G 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 8:33=E2=80=AFPM Waiman Long wr= ote: > > On 3/14/23 23:10, Yosry Ahmed wrote: > >>> 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. > >> It is reading memcg_data directly to see if it is slab cache page. It = is > >> currently skipping page that does not have memcg_data set. > > IIUC this skips tail pages, because they should always have > > page->memcg_data =3D=3D 0, even if they are charged to a memcg. To > > correctly get their memcg we should read it from the > > compound_head()/page_folio(). > The purpose of that function is mainly to report pages that have a > reference to a memcg, especially the dead one. So by counting the > occurrence of a particular cgroup name, we can have a rough idea of > that. So only head page has relevance here and we can skip the tail pages= . I see. If you update the code to not check memcg_data directly, and we update page_memcg_check() to return memcg of the head page, this will stop skipping tail pages. Is this okay? If not, we can explicitly skip tail pages in print_page_owner_memcg() if we decide to check the head's memcg in page_memcg_check(). > > > > My 2c, we can check PageSlab() to print the extra message for slab > > pages, instead of reading memcg_data directly, which kinda breaks the > > abstraction created by the various helpers for reading a page memcg. > > Someone can easily change something in how memcg_data is interpreted > > in those helpers without realizing that page_owner is also reading it. > > You are right. We should be using a helper if available. I will send a > patch to fix that. Great, thanks! > > Thanks, > Longman >