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 EE2B0C10F1A for ; Wed, 8 May 2024 02:07:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 46DF66B0083; Tue, 7 May 2024 22:07:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 41DDB6B0085; Tue, 7 May 2024 22:07:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 30C536B0088; Tue, 7 May 2024 22:07:42 -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 12C4F6B0083 for ; Tue, 7 May 2024 22:07:42 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 86E121606AA for ; Wed, 8 May 2024 02:07:41 +0000 (UTC) X-FDA: 82093592322.25.E794C99 Received: from out-185.mta1.migadu.com (out-185.mta1.migadu.com [95.215.58.185]) by imf01.hostedemail.com (Postfix) with ESMTP id B827240003 for ; Wed, 8 May 2024 02:07:38 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=JlbXxUzg; spf=pass (imf01.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.185 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715134059; a=rsa-sha256; cv=none; b=QLgckab6vBwbPDlvxhTp24I4Yv4AtYaIgcMwPVRJG4wrqt0bEOpefEt4LsENfPCI04NzyL Xme1fUlMAvfZr9CaIrlVM+k8oyNrDPDkSmzEEbXqVmpDCkGTop18IFJEPgNB5+UA4Mscjf CgRipyqcj5BGnnQRy9wK+haq2w/Q798= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=JlbXxUzg; spf=pass (imf01.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.185 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715134059; 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=myhEc3khl50YDvFOAmyYij1qxZxNkPC/dutCYABfHhY=; b=2psP0v34ES9jUzf8rOxSC1BFPJlkOwFWLtzGTUdcAE7UCBWrBsMUCgFfCwGhp/eFIXaFR6 ZzZzZ6NSUsydwamy6VYXWseX9Hfo8jJLFuwXfspjothm/YJ6LM8yqQX3e38EkBFoP7shIj /CeJBjXdyZk02JcuI5lcjRpxluNqhCg= Content-Type: text/plain; charset=utf-8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1715134056; h=from:from: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; bh=myhEc3khl50YDvFOAmyYij1qxZxNkPC/dutCYABfHhY=; b=JlbXxUzgjqqYTerWZS/GPmhGKjo52/oU15rnYqI5XqQhu7RoSrNjEgmrSjwUiPj8RpUq11 3j9LEJCvi0RARl6KQIytc5AVg6kAssPFHKX1OzCSlfYSCs6fZP3ojpFAkyorkIGRCgdCKd A46X5sZKCjpdVu8V28W0q3PrLgg8YPc= Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (1.0) Subject: Re: [PATCH v1 2/4] mm: memcg: merge multiple page_counters into a single structure X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Roman Gushchin In-Reply-To: Date: Tue, 7 May 2024 19:07:22 -0700 Cc: Shakeel Butt , Andrew Morton , Muchun Song , Johannes Weiner , Michal Hocko , Frank van der Linden , linux-mm@kvack.org, linux-kernel@vger.kernel.org Message-Id: References: To: "T.J. Mercier" X-Migadu-Flow: FLOW_OUT X-Stat-Signature: gxdpyrydnfzt8kfa345kffjxekmdeibp X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: B827240003 X-HE-Tag: 1715134058-216272 X-HE-Meta: U2FsdGVkX1/L8YAVun4BnlE1aacDnXAMRAyc2NQJCR1EJ4HR6YKVB4YNWO0VQYvmEWGl0OOGoPqNukLGbzTfMM64D69oT/2RWhqrVwz+JVxr1YLUfe72tVUcP9g3x8rzEkdGjsxiwDYzlWxEHXzC9yR2NGQipRzQikqjIMBDqLCKvs+fVZ/4e4YMR7+tlHCGAF2d3hvQBqpBKnC6ALpE/+276GU1m9z3kbmY9+h4oE8ZI5+nG2la1PL6lstxujmJgPzU2i4elmns5CXA9JwM5OeT0YEfqdWvbUUXv/48WJAoCyZzsZ3WhC7pQD7n8lzMawGzamy6mRr4FTEPkkVuMORXFBCaron6SFp7/D30k6iojbvt4kByNwroV2Jryt7vvKA6iaLH4OQWwZRRT1Xl6vIV6IyThEMZNNiU/oTjIVOBKVnKLg28aWC/gVOlXA8n4xniia2jCLaCSE/YRzKgqTiyszf8EY6eSnIQY30oaipEV1zo7zZRC0TtNWuoGdlGRFvnFDriJBvqd751AWJteBk88Lg6yHo6NsgBPgaMVxyKlEcvpwCeKTcCcvUrQpZO+1ELq8X09729634Oudr2XypH4XIf8KnQi9PSH4FuLaS0vjXiVdcOQarBJKt1mzYCCN8pRn+ZxwqddAJJlyJC3xaP/R0EdEgNv5FKp/+SIrOG2ZSPNy2WnfOi/oOTyOvuqAAGUghRcWqTUYtAHOfPXu69hPB81klaGhV7kXV/pCpOA0IVcUv9pPWj8eOaOrTEi3je7rjADMZ6z0/JHD4xdhYDlUrNcyVML4WFFtbV+LPfC37nqvNDeJAJ4+KtJRuoomS1D6utog0ovjuLWgdzBEtMuITW18NKnFDnCLooNBL2HkCGvz9bXb0uy+TRsi/IczuVKSTu1pCbg0LEb7/S4tTurQ60RJYmaB+sDUUHmAP23zuPzKAVtUPH1PAt3S9cTsMusEt2gmzCKx264Vc j8ylFMie o4S8RK3RacK5DgcJzf1jOEqux44tPTn2ZJKryFKoFz11UHyBVONsWFbh2rHGdYl09FdroV2SoyBmWhJMliKujQG2qZiCzRYxZVWPhNLJTdPWUho9cnw23GNFVkUgoHut9cqj7zFbtlk/TKkCh05f3frWfNQGob13fHjMTJ5y9x+BU5uDvoIz/ZwuPdA== 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 May 7, 2024, at 5:26=E2=80=AFPM, T.J. Mercier wr= ote: >=20 > =EF=BB=BFOn Fri, May 3, 2024 at 2:18=E2=80=AFPM Roman Gushchin wrote: >>=20 >>> 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, >>>> }; >>>>=20 >>>=20 >>> 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. >>=20 >> Yep, sort of. So the page_counter structure supports N independent >> counters, where N is sufficient enough for both memcg and hugetlb cases. >>=20 >> 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. >=20 > 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? >=20 > If so, what about: >=20 > 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) > }; The page_counter structure is not shared between memory and hugetlb cgroups,= so N should be big enough to accommodate 4 memcg counters __or__ 2 * HUGE_M= AX_STATE hugetlb counters. Your version has enough space for both. Thanks!=