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 4BE09C4345F for ; Fri, 3 May 2024 21:18:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B9FBF6B0082; Fri, 3 May 2024 17:18:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B4FE26B008C; Fri, 3 May 2024 17:18:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A3E7A6B009D; Fri, 3 May 2024 17:18:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 865186B0082 for ; Fri, 3 May 2024 17:18:36 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id E57931A0EF3 for ; Fri, 3 May 2024 21:18:35 +0000 (UTC) X-FDA: 82078348590.07.AA3A324 Received: from out-186.mta1.migadu.com (out-186.mta1.migadu.com [95.215.58.186]) by imf17.hostedemail.com (Postfix) with ESMTP id 29BF34000D for ; Fri, 3 May 2024 21:18:33 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=iguv4xY+; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf17.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.186 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714771114; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=xT5+RHaV8lJbYffD5b71+c1F6rsgkHI+a5HvXT+KXN4=; b=nM9W1F8NNYfJOPx80mOZ8m/OkKRmKndNGC+ERl32Q9HhykFdiGYyWtgQCax3pMK4Eg5Bi2 UnGdvb4CGZVMnd35Fx9GqBcSYychNr/c9oGhYmiNX+rKlHfMK3g+kX8bQbO3BX2XNDCUZ+ 4vNS4k5rq7oN23soib6TCpsa7e9D4VY= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=iguv4xY+; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf17.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.186 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714771114; a=rsa-sha256; cv=none; b=lsQOeIWeEVHG4qV7t5zDAqjbkNehAwSKx2q6D9nYyO+UmegsJOIMjYtcBreHI0nNnqH683 +49BYr5FxouGoBeTVQGAtzW+pUY4W9oGhgmt+UdnNtVk1QU0WUwMUyVJ17aPUZ6T18yvFN zxO11Q1fUubLC9+JYOK2B2+o4415GhM= Date: Fri, 3 May 2024 14:18:27 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1714771112; 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: in-reply-to:in-reply-to:references:references; bh=xT5+RHaV8lJbYffD5b71+c1F6rsgkHI+a5HvXT+KXN4=; b=iguv4xY+X9y3LbAHrYmlYQ4CCe81hj+hATMgtNbLvxsXVxOAP0vB+qGk/0iXfHHeMqPCeX 7BuZMFBeQjl3pqpbfyffdEb/l4j1oCcMeu+u/w531AdW6YdoD+2z6HGyyVyTq3wk9tYGcT m04RDqDWguTtVNheBYxTg0W/p2Wq55w= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Roman Gushchin To: Shakeel Butt Cc: Andrew Morton , Muchun Song , Johannes Weiner , Michal Hocko , Frank van der Linden , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1 2/4] mm: memcg: merge multiple page_counters into a single structure Message-ID: References: <20240503201835.2969707-1-roman.gushchin@linux.dev> <20240503201835.2969707-3-roman.gushchin@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Migadu-Flow: FLOW_OUT X-Stat-Signature: nko9hxqwq7b4ny8qsb7eq7s77od1sezw X-Rspamd-Queue-Id: 29BF34000D X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1714771113-14341 X-HE-Meta: U2FsdGVkX1+RaR7kqPlRjVYobz08EqvQ7h6L14WCm+p5YxDItIC0/4K0xxME1Gkrcc0rvmolF/ssW0grjlw9wzAekepX7S20/HR6/LcUWP4azDtwyvLZPRJYMNtQSgfIQqfU8ubZHMHO/OI8TKiRybZjweCKOaSErPxSHu/b8aF4q68PpVJtLmTb79+bxhOresa0EI1A5UpyPtAQU8caI/V0TDAVkadZY0UnzA8459PrGdq2pVlnLmjC7Qsk4yFTMSkNh/wrETsQXnuIEZ0vZqZRylVj1rF7bNZ8929ooOy0hO2+jIsjaMI4mvTM6j1M12SWe5zRzeyGNn1D1yzWO8k+owPPdOxG8YB72AHR4WxAZwkNFMK3tATpqKwB9+ro1rXYfMUCs+c2MU7TwM5KhNEoxx6Qrf21UVTK25HSsVNAeDb374KCKyL/2hAslQZqyY3nZOBBa1Hgw5ZopmCdhoBITXBMvHJ7crz44qg8/II8emfBuwpBdIB4pXAc3ZiwHb3CTaIQY7Ir6ftDpRF7Hdp6ZkpDgWZOrMyTv4seL9VVI4MV47EOSZvMKG1h/vZkwerWQ6As/WWbL/Jg3KK+fdNZYt0m6s5cutTlz3iXzwwjWqFfKV9oBxqoNQ5x05OEn4Nw8/29Ytchekk2rdjnKU1N8aTktINbDhG2SqCVGYoaUs/IwrU4cHwT8KzC/bp+BiaJSht82nTd3iucdbIBLvQytnEwGzcVb8YA9eqerItB+WlZV5GF8m5Ew5qqL/Ml9XQdzF+YELyerOcyjGI2yHbY7m4F2NmfJj+PoOjBW+rNywINUBWe6R5QbHAqiOScDqOJAk8T7nhV+mcwbhcZro2LHIB8612yMrR+ZSXCv2RvqbP8d/yHYnQck7Q/ZI4EopNhmvq4GqpvpwhyDkjaZVbDqqhiRoaWUsX3hocN7sOF+qx8t7esRlA9bjIggo8w1rARtf3WM4DXETpIvfm dfmp7dAx eHoGIKtl1C6H/M1bj/sLkd0ilZRd9X1AAU5M4gZje/0V7ttruaBeohkdyd0Muhblo1JA9/LGOocMsGzL+bSBoHwn3sbVO2HgJtFl0IRZk27NfzyP+igcfYi730kiISBn3ZfXD 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 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 = MCT_SWAP, /* cgroup v1 only */ > > MCT_KMEM, /* cgroup v1 only */ > > MCT_TCPMEM, /* cgroup v1 only */ > > +#endif > > +#ifdef CONFIG_CGROUP_HUGETLB > > + MCT_HUGETLB_MAX = __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 define N at the compile time. Thanks!