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 8DD68C10F1A for ; Wed, 8 May 2024 00:26:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1F8B56B008A; Tue, 7 May 2024 20:26:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 183056B008C; Tue, 7 May 2024 20:26:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F3E046B0092; Tue, 7 May 2024 20:26:49 -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 D0D846B008A for ; Tue, 7 May 2024 20:26:49 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 5579C40EA7 for ; Wed, 8 May 2024 00:26:49 +0000 (UTC) X-FDA: 82093338138.16.E1482B1 Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com [209.85.219.173]) by imf15.hostedemail.com (Postfix) with ESMTP id 93A3DA0002 for ; Wed, 8 May 2024 00:26:47 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=gbeg49Z1; spf=pass (imf15.hostedemail.com: domain of tjmercier@google.com designates 209.85.219.173 as permitted sender) smtp.mailfrom=tjmercier@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=1715128007; 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=8/Y8YSo0UflOIrS18HGguXJLlkQlOMDLO/RmzBToNLE=; b=CtrUODN/jdhzSaUkZf9j5ArMzbZcq6IA9tyXZ1x82EKs9SALX3evu9FPmff1ZnduEinu6J n1v5vidyyzgth72fS70eH/GL6FMFlMDGMLDUf9VuT3PWIMK9iIyT4Iq+WQSqBslThK6KBC S1Bm9jBvwz1eyzZlkDLtXodso5J5adA= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=gbeg49Z1; spf=pass (imf15.hostedemail.com: domain of tjmercier@google.com designates 209.85.219.173 as permitted sender) smtp.mailfrom=tjmercier@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715128007; a=rsa-sha256; cv=none; b=P/ytTtY2GhBoK+5P6Tq3ZtktWwUgegjKqU+ebSlAQ95BdJMLfiBOVLIHpl5P7JSeLfxoqr rKfYPKe+dT9jzSoJBCMJrm85yBX+Nc8nwas6lGsG0wgczu78y95f2BvQ3pKUOW+3XseD51 w6F4gV8Swq9/tf78R7cuoszYmKeCXaU= Received: by mail-yb1-f173.google.com with SMTP id 3f1490d57ef6-dbed0710c74so3291979276.1 for ; Tue, 07 May 2024 17:26:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1715128006; x=1715732806; 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=8/Y8YSo0UflOIrS18HGguXJLlkQlOMDLO/RmzBToNLE=; b=gbeg49Z1y39fulOLzifCK+f2JjwyY+o/A6ZkBrQEsw1NJd//SYvJgeIfibyltI0PWZ h+ImxSO1Rv35g7ff4Sjp5+s2VyASMxoT1mUXw1rPsu2627GtIWVl5l/jT0xQqJsQbnsl ptuI+Jv+qmu7TheOR38JT/dpMgtRS/dwtLO5vlIBdLSW3oWknqUpY2vJcLKgY3aGXqV2 5dJbUWMkDlWgxJfK5n+1+lZB7REuxs+xg9/P+09Dqx1zHFs2l4vcN28SGVfXXXP/K1G+ N9/HCUC1EHiNYWM4PinG3vvf5d+lA8diVhAB9Z/DHWaJnk/tja7bxX/3G9MKaGpRyTbF z4eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715128007; x=1715732807; 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=8/Y8YSo0UflOIrS18HGguXJLlkQlOMDLO/RmzBToNLE=; b=AR0c7yQ7PjiSNp3kZPQ2+1oZGl3rQL1fcVL9xIXVAg2+7nEBd7xSuOmhhLVUzHJS2r YkMe2kOI1uXEx3nD6/XmWIJm1kmYbdmJ49zE7GbEX4Aylvo1GY3Ov5NWPTvPJsDXAVwf EBA1V86YZviFnMsz2k62s10xiRGW5wjJgwZbg+wMXEmEFuQ3iA3PUckIsuzYoeP+mY6J uCtdbDgG9AAC4Viid0U1z0st+4ksA4yUCcxY599Yhd1HlYww+seFxYHl9L1GnvaO81l9 brc/vzCnr7VgOTc/n9txFytTe1KUxBcIClti4vSB0+7y4AKjWOWZkO0DgWFVmMOBHDzL SXcw== X-Forwarded-Encrypted: i=1; AJvYcCV9X2K8U4bJRYiF0HdzgW54DEiCDneUgmPA+IglsxOTOKrfjEHhyeoYoho47XulEGOtqky64EWTb5Aeo1AtmKPcni8= X-Gm-Message-State: AOJu0YzVKDDm+ek1HRpzyBMJm+O7UJ4a5L9ICMrsk9VtfvE9hJ+0tLOf Dugu69EQWDHkCgVZCl+J3lrzer8WOFogxfb+qFyBi0ag8s1g5qoCc2XmMuQTZ1QXuDqoUKmfBaa KNo6LqBb8UOKbm5tpmaL8ubSQSgok5OU/QERX X-Google-Smtp-Source: AGHT+IEPDVdLbXgASH8Qh5wJ5EWC6SznW5aoq47djjlHQ6ksP/6baMo2OjF/edDMy4kh1QUdKV71GNMk6bIKXAHJdPE= X-Received: by 2002:a25:2650:0:b0:de4:7816:e7b9 with SMTP id 3f1490d57ef6-debb9d89b4fmr1346687276.17.1715128006478; Tue, 07 May 2024 17:26:46 -0700 (PDT) MIME-Version: 1.0 References: <20240503201835.2969707-1-roman.gushchin@linux.dev> <20240503201835.2969707-3-roman.gushchin@linux.dev> In-Reply-To: From: "T.J. Mercier" Date: Tue, 7 May 2024 17:26:34 -0700 Message-ID: Subject: Re: [PATCH v1 2/4] mm: memcg: merge multiple page_counters into a single structure To: Roman Gushchin Cc: Shakeel Butt , Andrew Morton , Muchun Song , Johannes Weiner , Michal Hocko , Frank van der Linden , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 78sf7phs9rrt39g85bsha9nj8e6s73j1 X-Rspam-User: X-Rspamd-Queue-Id: 93A3DA0002 X-Rspamd-Server: rspam05 X-HE-Tag: 1715128007-99038 X-HE-Meta: U2FsdGVkX1/yudoFnkJHX7bWc5ndIBohlyh3OmWg34eI0egSz+hBVC3kizCQmdQ37eNNtJdxtY7ARtlNQ/enB0wcbsnj6aIoNFTnWQuscqx2EPGuY2wd16Kxb54dsl+H6vo4NrPu1BzJYyOvxqOYPqHV+heeK31s01N2bQH8zmjzkj885BNBBACb4eEx6S7DfBik8XoLGan/R/VFDGXRZ5M5lDi11MXJBR3VHr3v4n4NRADUqvNLEMdsVbu5sv47/KNuK3K/p8EPe1LaxACrZL7swBFL0k5fhGenHMkj8UxlX2Ztfuq8Df/4DgPnrRv2qsp48RJBtSJ6B7Fh+pEtvi0FWMFcWWB2vUae4NIotVIXU+xmURKIzICjcPQiCUdSKxPrwSrSQwNH3e1PnVfzKORBk3/lt0LtNE1DZTfSU5MJ5ftyp57y49/gzSFk2rtnXaSyzfIN2sncR8XjvWfVzSE8ALUN8n5ziUI6fZUKeqdMcMxtiojbpO8ApZaNsu9lV3wkX8sPdHYLQS9fwqZ0ylbq+J2eLkflA+D0alZB4X84Z+EUgYP7cpv61zRKQq6QSqSfMeFowuiOFFLH4oTS3CHHyP3YHshatxcmg2I/h7yvxw75eUWVUmg7QhcEVkJxtoQxOFog56jN3I+n4fdjoKp2YAeTy3+ekDcCoaovlFZNBaYfg4MZksvBmjxDWKXBDfUbh4ZjD82Doom8MZU/vfZtzVsFO57Qzv4DCH6Fl9Z7rVrtSHyXTSwArHr72hU6jHYkmndY0DJKjQ90xIsykjlHTfSCbSdZclFkPlJUy4uiJRynzSpnXEbtXtc2pBzcuIbK4bC0rHrg6mZ2/1lZRmd8Lp5+5gIli3hJL0DSsGXlU9N5V836t8OosoibvhBxbsNuqEzj0HR+muPYR0EPnv6efLntXF+hZFQJiv9VdmPB3ffy9Ubk2JyIlDYp43yX9kcvs5XOBL45yYSAHM0 fl/1b40T FMGzBTFByB31drIQkS0F4MplSUKWJ+ayPtt4eAhrzlcHxlfwW8udpcD970yLKe/+RhIt+B2Fg4LlkV4U7CUrLOnBghBNVUsuHlRDC5Ueo87i/ZEWllkAujx04xiHVomOZU6Wo4zP9VYsz1CgyTzELg2xlC1mNt13VYNPfR4m8/f1PVtU4rsT6Dfx1rsoFdiI0KxAKpZiYASjnGOcejH+VrvqhnVV60gQvwIBashVeUr8IwKNG4MPGdS21XPQZYYOns5TXBqibciS+76o= 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, May 3, 2024 at 2:18=E2=80=AFPM Roman Gushchin wrote: > > On Fri, May 03, 2024 at 02:11:17PM -0700, Shakeel Butt wrote: > > On Fri, May 03, 2024 at 01:18:33PM -0700, Roman Gushchin wrote: > > [...] > > > enum mem_counter_type { > > > +#ifdef CONFIG_MEMCG > > > MCT_MEMORY, /* cgroup v1 and v2 */ > > > MCT_SWAP, /* cgroup v2 only */ > > > MCT_MEMSW =3D MCT_SWAP, /* cgroup v1 only */ > > > MCT_KMEM, /* cgroup v1 only */ > > > MCT_TCPMEM, /* cgroup v1 only */ > > > +#endif > > > +#ifdef CONFIG_CGROUP_HUGETLB > > > + MCT_HUGETLB_MAX =3D __MCT_HUGETLB_MAX, > > > +#endif > > > + __MCT_NR_ITEMS, > > > }; > > > > > > > Thanks for the awesome work. I haven't gone through all the patches yet > > but wanted to ask a quick question. In the above enum are you trying to > > do a union between memcg and hugetlb? It gave me a big pause to > > understand what you are trying to do. > > Yep, sort of. So the page_counter structure supports N independent > counters, where N is sufficient enough for both memcg and hugetlb cases. > > MCT_MEMORY, MCT_SWAP etc are used directly in the memcontrol.c code, > while hugetlb code just indexes. MCT_HUGETLB_MAX magic is needed to defin= e > N at the compile time. Where N is __MCT_NR_ITEMS for all the counter array lengths? That doesn't look like it works if MCT_HUGETLB_MAX is small... i.e. there is both CONFIG_MEMCG and CONFIG_CGROUP_HUGETLB and (__MCT_HUGETLB_MAX =3D 1 or 3) since MCT_HUGETLB_MAX would be < MCT_TCPMEM and then __MCT_NR_ITEMS would be wrong? If so, what about: enum mem_counter_type { #ifdef CONFIG_MEMCG MCT_MEMORY, /* cgroup v1 and v2 */ MCT_SWAP, /* cgroup v2 only */ MCT_MEMSW =3D MCT_SWAP, /* cgroup v1 only */ MCT_KMEM, /* cgroup v1 only */ MCT_TCPMEM, /* cgroup v1 only */ #endif MCT_MEMCG_NR_ITEMS, #ifdef CONFIG_CGROUP_HUGETLB MCT_HUGETLB_MAX =3D MCT_MEMCG_NR_ITEMS + __MCT_HUGETLB_MAX, #else MCT_HUGETLB_MAX =3D 0, #endif __MCT_NR_ITEMS =3D MAX(MCT_MEMCG_NR_ITEMS, MCT_HUGETLB_MAX) };