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 01F63C4345F for ; Wed, 1 May 2024 23:20:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 81A296B008C; Wed, 1 May 2024 19:20:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7C9626B0093; Wed, 1 May 2024 19:20:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6B8476B0095; Wed, 1 May 2024 19:20:54 -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 4F37B6B008C for ; Wed, 1 May 2024 19:20:54 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id C9232A0F51 for ; Wed, 1 May 2024 23:20:53 +0000 (UTC) X-FDA: 82071399186.16.8DE401B Received: from out-177.mta1.migadu.com (out-177.mta1.migadu.com [95.215.58.177]) by imf02.hostedemail.com (Postfix) with ESMTP id 04F9580007 for ; Wed, 1 May 2024 23:20:51 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=S0228WRJ; spf=pass (imf02.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.177 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=1714605652; 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=xQGvBTiKc/Smn7PsXZR4CxTZ3TuKVJXHLFhqIG/ZgXI=; b=1BVyj5n+tWtzoZnXuKBiHMVKulLEQ+b6IO0AqNhLvoVO11ZdDoaYnLq5oD7Dphz7n2Tl9z oHX9E2YrcYCIExdFUBhCCxzOtWC0lZ4NvNbtIOfAfUfjkf2jPWMXVq3ovOnWAptnHV98rK 5CF6KzelyFGQGpmZGEJK07GkIZj2bUk= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=S0228WRJ; spf=pass (imf02.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.177 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=1714605652; a=rsa-sha256; cv=none; b=A9Lwws0+YKTaiSsa3KASpthL5cMKdFIS3JsEUyey1ghQZQ2LlPNxmIT4sHd1zSYEvAU8x4 RBzVTEBgyI5rwxrNUyyiVjrw2b+hcEZLLssoGDAK5cFzMRyAw7J5l+JMWiyb4J4wag+GGz q9XH8OnafV/HKvPV7nVrjmDn/1CmNdI= Date: Wed, 1 May 2024 16:20:45 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1714605650; 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=xQGvBTiKc/Smn7PsXZR4CxTZ3TuKVJXHLFhqIG/ZgXI=; b=S0228WRJ4hUXgrkaTPHAYSlfCkqUGGRa6LGZ27deiYvlP+6Wno6frVJeBzRJVNvaNmh0HU VEnYsj1h2SPc4qy3jvzRTuy14Yoz8xcdwamTdF0DMjhLOh/KWXO8QWBfjnXdyFzyNYXZPI i2+rsSTGdNDl+Lv0CXM+QTEoimO53ew= 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 , Johannes Weiner , Michal Hocko , Muchun Song , Yosry Ahmed , "T . J . Mercier" , kernel-team@meta.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v4 4/8] memcg: reduce memory for the lruvec and memcg stats Message-ID: References: <20240501172617.678560-1-shakeel.butt@linux.dev> <20240501172617.678560-5-shakeel.butt@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240501172617.678560-5-shakeel.butt@linux.dev> X-Migadu-Flow: FLOW_OUT X-Stat-Signature: ap8zdjwejgdbcusk9resbiqt8egywner X-Rspamd-Queue-Id: 04F9580007 X-Rspamd-Server: rspam10 X-Rspam-User: X-HE-Tag: 1714605651-550977 X-HE-Meta: U2FsdGVkX184wB62FmukUGxs4wd4ZPMEmXxu7ek/eGgBk8xzDTUoIs+bqr2RFKsj3kgQcCj+9pCxMFwzQeLAcj7CtabsgMJus6Ni7jAvN8dfY5RthQJJZ6X678fwMPtcALnsEkjlv08fjRvzxh0dO1IOlF0ZKStdr8ZBX/ant5ilVr6tYueeEIzj9oYGfdPGnFf/n8cUpy1E/MrPImitae1VT40Npyua+WEixvKuZPswjLE95nel0QJJeestpVFjQJy0tIKvIJxxe8w8Sxn5l1RJpBSA/wUefrbKxvL/6Boaiz0H3W0UeP9R4ajx+IG6ijPec6wMFLlMNJa3EuBCtZAJyvteQLWG8P3gjtXaVQGw4mojFIghJ6NqElBGh4Ftb640lb9g2Jy+yglcPY82Yn+gRd+zLpH5E+aP3OML7kFAH3uTb7xUFCVlDErtKVYgIA2UVeuEjF8GLp8qRP9rzSzJVwu1KucZOgOVq0lD7bWyV4QKB4QwAUxJlpddraIxA1kXIUqTnKWr/XO8r2imvKaRa3scA9AnltewXbQemX28vxIsecDI8DjkMRH0kuaWIH1gdjPPr9B5bSFuWd4U5NvzZSw8pUcV3TEq8viNKBy/slvkDaS3RV0G/NvWem3TUWcNGEu9bsX45MGUGoVe6wG2mIt5PweLsMV4NAjJwh0coUfR7/WUwIat4lnYLJ2kM9e6F4Xu7L2gFgGveNu0FgHAfotPFTVjDjQ2AF7S6VYkuDXd0V5fl4sqTVGpKF5pexo/5gPK9icwqQlvmpEGPSFCkKcwRjWGM1rEM7vZhEiob8AEWJ2P4fF61kgkV/rXsJK9U8ZkKUfbxw/f3iHCTkUO6rIYCtFmb688uLQJekKCC5pcFqknvhBJYk7t6YhMOO4UCGx0IQAalOTQt0WI+zy2R87qpxXPoCugsjh7FSelkclvlz4ArOCMcWRD/1lj2LtlPlRfkn+jQqP8d83 weYZ0Xkm VptTM4Pk3mfEHNjHBZEyxjWTSlP6WlqosEcX674AtiaIZNf/FbFzaqC/2x5MA2qTuAIKbsz8xJ4Vmn38HUMGROpVFHA== 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, May 01, 2024 at 10:26:13AM -0700, Shakeel Butt wrote: > At the moment, the amount of memory allocated for stats related structs > in the mem_cgroup corresponds to the size of enum node_stat_item. > However not all fields in enum node_stat_item have corresponding memcg > stats. So, let's use indirection mechanism similar to the one used for > memcg vmstats management. > > For a given x86_64 config, the size of stats with and without patch is: > > structs size in bytes w/o with > > struct lruvec_stats 1128 648 > struct lruvec_stats_percpu 752 432 > struct memcg_vmstats 1832 1352 > struct memcg_vmstats_percpu 1280 960 > > The memory savings is further compounded by the fact that these structs > are allocated for each cpu and for each node. To be precise, for each > memcg the memory saved would be: > > Memory saved = ((21 * 3 * NR_NODES) + (21 * 2 * NR_NODES * NR_CPUS) + > (21 * 3) + (21 * 2 * NR_CPUS)) * sizeof(long) > > Where 21 is the number of fields eliminated. > > Signed-off-by: Shakeel Butt Reviewed-by: Roman Gushchin