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 26939C3DA63 for ; Wed, 24 Jul 2024 23:43:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7E8DA6B008C; Wed, 24 Jul 2024 19:43:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 798CA6B0092; Wed, 24 Jul 2024 19:43:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6874A6B0093; Wed, 24 Jul 2024 19:43:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 4058B6B008C for ; Wed, 24 Jul 2024 19:43:50 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id DADCDA0C69 for ; Wed, 24 Jul 2024 23:43:49 +0000 (UTC) X-FDA: 82376276178.16.6CB3254 Received: from out-181.mta0.migadu.com (out-181.mta0.migadu.com [91.218.175.181]) by imf12.hostedemail.com (Postfix) with ESMTP id 1075340016 for ; Wed, 24 Jul 2024 23:43:46 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=en1q0hKd; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf12.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.181 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721864588; a=rsa-sha256; cv=none; b=F9muXbs3ce/ngcf4CbLCeGubfBUS36ZTp8MNvXR+jeFYb0u42jr3kQenc1sOKWg7bOpjip sy/efTIakhWn4c92STPLhmh5wbxxXLneGuTx1DMQKfixnqLNEcn7tynHwJVnCbN/Rvk01F 7f8sjAxi4lioGsSNhmdNDttvjBpHUL8= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=en1q0hKd; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf12.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.181 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721864588; 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=CIPcIIxxy9z4+epxsP0r2wMNd2Sp+GzWaFR17pD0fGg=; b=59BrgVfuow7N29Qo4MbOXblzekRLthOQokCdh0Rc5s975p6+W0XyeuyrP6I+U6a9lvWz9i bRthamf+bjpSXWtr5PIV0QRdaVQ+x54btJqLAmDnXpZ1cbhRwtGz0yMYsxJCtVog3qU8fC 360vH3doAlXDaAuioWDrJ8f415Tle/w= Date: Wed, 24 Jul 2024 16:43:39 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1721864624; 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=CIPcIIxxy9z4+epxsP0r2wMNd2Sp+GzWaFR17pD0fGg=; b=en1q0hKdbKM1ZUVuiv00Ks+fozZGUtfMf/tbuwhw6l3thhi9LSnkOSKW/Og+dBdxaDndeK JelQBUgHulWV1N+pJ0cb6fRNHMrluVR1IHnHCE6LlweCpu8d+7XUqdoGaw/YeRN3gc5PwD zUtyWJVSfiGuSR/ttEDOxv62fEZBUSw= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Roman Gushchin Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Johannes Weiner , Michal Hocko , Muchun Song Subject: Re: [PATCH v2 3/5] mm: memcg: merge multiple page_counters into a single structure Message-ID: <7bm2a2bwwq3jfmdazu23tie3uajvkfzfsrmaeujv4maz4cxvt7@sdth2ybkn4k3> References: <20240724202103.1210065-1-roman.gushchin@linux.dev> <20240724202103.1210065-4-roman.gushchin@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240724202103.1210065-4-roman.gushchin@linux.dev> X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 1075340016 X-Stat-Signature: qw5k1rc54kr87kdza5nknz8dr7jty93u X-Rspam-User: X-HE-Tag: 1721864626-618323 X-HE-Meta: U2FsdGVkX1/YM11jEc9/FzuHe2HqIXDTv5eENqa7IPRdjhSC9QHMqf9+wiztEu0zXMXWBiT1t96cDI+bnlCGqAjbTjkYrtEzuvK3pICCpJmqVxrcZc7pDfxtypGrTJO72ss/tIZH1QopOM3lq899pQP1KhYLI5yfv0O3ib4rLl/vgQlrOk8hzjzAtoPuoxnerPVuFjW6WjqEYuR42JJZIgt5AMqZiEAy9t6xKLGyo4xQ42AG7bII8rgYcjVzGjK2W+jMr4kghrJBtct8mddfDRPmt5+Umj2/swDiXjxGr2TPfkS4/kbM+M6oVxCkIQaJ9rOMUiYXmj9Zx0SIFgA1A+jzRu57Vf2yQtffYBFHOAUyDI1CFvzUX+YuwFhVHowNvJaCSVMR4VOChqSPvuYb0L3+y3HFX3GGM4/tPIpoErdI3grruWzRz1A/r7tDcPCCHHCA47GYnz0eJcLD1xeumsPyKg3KxxN1KYbeaqMx77vVbMwJEQy8fEV9k+eAmxSYFB7aIG9oGP8aW8SRf9pBRNja2XKgkiwWEamvS4d23RFUuYe6xlnJnlBB6PAAO8m0ROkiAQtcZswZ7XALQiCupWJrdNcsN0LIriHiX4CebkkuLs3jmAkBElgguCN0g3JwRFqrM6sXogFo5L9IEHdGZ3tmB6bisULogACRkJkHxOyxyjovrjwH1lCTdxATgkYhNb2LqKgfwLcmqSW84DuYm54q7zc2K6cFv00ZGJDzWcSV/ehFPohUat+UWFH3LhKGFpqVY2Q+Xi1xHtkhukWevLp3bHID81vRRYX4VmS/ABkZKIbEABV5EjX21U4z5+FlYJIBX0K4AC68MGtxJY51czI6XxxC41Tt+vtPb3C771nIuKUV2LmwvABd8rmH6FB2D/vffTsvvG+C0PeYlm9+g1tSin+gt2RTFbnMsxsD7FgK5dPU+I6y8JeADaEqa/qEG7zGTGb7yM5zbhigWzb JbGr9zhC CcDsZF2Z5inKy/ljMQ9UCEo3p4FKDoHijayO/CPgVvbo1df9HYxClQ8MZOK4ysCZCCPzgQBCHO1rubmWy+SVr/JsOXVwJJJwF8EHuK83Hhu7HzBpJulrcBbPn4mAImSR48IeYKQXEmWyJf5SXT93zNmAvEzflsYkb6RPziaVFcVVUdfk= 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 Wed, Jul 24, 2024 at 08:21:01PM GMT, Roman Gushchin wrote: > Struct page_counter is used by memory and hugetlb cgroups to track > the resource usage. Memory cgroups are using up to four different > counters (on cgroup v1). Hugetlb cgroups are using 2 * HUGE_MAX_HSTATE > counters. > > Every page_counter structure (except the one belonging to the root > cgroup) contains a pointer to the corresponding parent structure. > It's obviously wasteful because for each cgroup there are several > similar chains of page_counter structures. It's not particularly > cache-effective too. > > Also every page_counter structure contains fields required for > tracking the usage of the memory protection, while it's used only > for the main ("memory") counter and only by memory cgroups. > > To address these issues let's make page_counter structures to support > N counters and use a single page_counter structure for a memory cgroup > and 2 page_counter structures for a hugetlb cgroup (to track the > actual usage and reservations). > > N is determined at the compile time depending on the configuration and > HUGE_MAX_HSTATE value. HUGE_MAX_HSTATE is relatively small on all > existing platforms (max is 5 on sparc), so it's not too far from 4 > memcg memory types. > > Memory min/low functionality is supported only for the first counter. > > Memory savings (on x86_64): > > |-----------------------------+----------------------------+----------------------------| > | | memcg | hugetlb | > |-----------------------------+----------------------------+----------------------------| > | original, CONFIG_MEMCG_V1=n | size: 1600, cachelines: 25 | size: 1280, cachelines: 20 | > | patched, CONFIG_MEMCG_V1=n | size: 1472, cachelines: 23 | size: 1024, cachelines: 16 | > |-----------------------------+----------------------------+----------------------------| > | original, CONFIG_MEMCG_V1=y | size: 2176, cachelines: 34 | size: 1280, cachelines: 20 | > | patched, CONFIG_MEMCG_V1=y | size: 1664, cachelines: 26 | size: 1152, cachelines: 18 | > |-----------------------------+----------------------------+----------------------------| > > So it's 10-35% reduction in the number of cache lines depending on > the kernel configuration. > > Signed-off-by: Roman Gushchin Acked-by: Shakeel Butt