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 46514C4345F for ; Tue, 30 Apr 2024 17:38:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D171F6B00B8; Tue, 30 Apr 2024 13:38:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CC6F96B00BA; Tue, 30 Apr 2024 13:38:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B66616B00B9; Tue, 30 Apr 2024 13:38:07 -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 97A366B00B7 for ; Tue, 30 Apr 2024 13:38:07 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 1601840918 for ; Tue, 30 Apr 2024 17:38:07 +0000 (UTC) X-FDA: 82066906614.04.F82BF07 Received: from out-173.mta0.migadu.com (out-173.mta0.migadu.com [91.218.175.173]) by imf19.hostedemail.com (Postfix) with ESMTP id 1269A1A000C for ; Tue, 30 Apr 2024 17:38:04 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=rDrUoMeL; spf=pass (imf19.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.173 as permitted sender) smtp.mailfrom=shakeel.butt@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=1714498685; 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=Sr9nAHajNUvj1PVNKEpFomcU/dFMtEZKQEJ8f6m4Zfw=; b=lV2cLFC7VFLR2rwaHcB+9pboCTn2KIB6GPJF0Bajfr9WQQSLjqFkobZOGiKhTyb8mQPxBF 2/teua14jiQiUsogS95FM9TE5ub8yXwu3K0B77yyZ9YqNel5z4+JW7iQvfdYZ4uznszBbp x9uubnj9/o11+bXrwVTwqf6X8d2EY7o= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=rDrUoMeL; spf=pass (imf19.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.173 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714498685; a=rsa-sha256; cv=none; b=DNngUv991Xd5br8LIUYVR1gIxduLkpd4Ozpx7TL/jGIrKAew8mxZBl6rOyYMROW77O6eds lpStrx5ouZG94NVL+vc6HQKMoLOfdEetNMfdeUPkIz8KUJ7BBGPBoH7mpKDTO+bvPByHAD GzH73wD/ONDveUdCZ9/IvEFmd8qCv3U= Date: Tue, 30 Apr 2024 10:37:56 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1714498682; 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=Sr9nAHajNUvj1PVNKEpFomcU/dFMtEZKQEJ8f6m4Zfw=; b=rDrUoMeLRwW5XtWb2NqmZp0dC97hSR3bbGx2xYGI39cSLga69nPg3LpplAl0w+cJxThFx6 WI1A3VQgRrOsw5bnc/FxOyfo65mOpbXHHZ+EBs+BATV4HwfB15BkyCHrop8b9mqQbIcK/E BreOvq9mKhCanQS2tkm8jD/prSys/Hw= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Yosry Ahmed Cc: Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , "T . J . Mercier" , kernel-team@meta.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 4/8] memcg: reduce memory for the lruvec and memcg stats Message-ID: References: <20240430060612.2171650-1-shakeel.butt@linux.dev> <20240430060612.2171650-5-shakeel.butt@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Migadu-Flow: FLOW_OUT X-Rspamd-Queue-Id: 1269A1A000C X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: hyb8pu8anywtpjz9htenfazx5hpermy6 X-HE-Tag: 1714498684-187039 X-HE-Meta: U2FsdGVkX1+zRwXg4YdlFq0n/cRceKSKXJVj/gAhplf1CuJe+pCgHGnYm2EQ6wVgzwSieatlFk0eF5Vuh8kW6Hg440GvTTvC8eFoX0hq1Fv2LJEPoVXerGBu6N6mNxXEHcT/BeZFNVr/YWrq0oAT6XLn/kyhExWA105qNyzHyPbION24vsofWNT1rfZRClNJdWUTgSmwRF+6Dcf1F3rfV4pSZEpOlXbYUVmnr8+XEaySRM3/IDSsqArZ9jtn0icv16yCp0n5ZFFPas4iwNbiIiXr8CUreoQOBlfUDwNVCyCdI9hhoCCic2EwfPQeVeAwzy8PnWDGOMU18UjlN8YleBTsUpAdO2yRruSsi5uS1vkbePdQHZFpomr68IdZknWF8ubuOox8erhfBcn+IeIpOmzTGvzVPx4EA+q75zCgDan3RNyZ4F9tDAWnE8OodnpbPFqltiLPKC7FOg+BaGYwZ+Mo75HuRrSmrndzmykfpxpGK7I3zqRgiIy/J9eGIuCZyutfHbnVryfvUws5W6Kht2Gw8eWwcMzOmlKMcn23jCH5axdrgjQD8mnWq9tujlZmgRuN1eu/Ahb0b8qv0R/29xg0yucL6VoZJVlmGrjTK4kmbynDoP+7XWvcDhOB1XAiaoCX50AL8+IJnCBHBg8IiQmxn6Xo22uRw/ytx0Wj8Tnn2RMORDGMiE4r2q3AscIP0tid/tLiOHYcmLoUKilX2usiu8TOpXw6AE/uQxfcghchpK4IXTmGt2J0MI97nTM6KoiGglpeHCxGVw/cnn8z2BAj5pth7AfEnsmel1Gru1MGOV64hA/5cFttzgBMcmVCmFHshoOjvo04TJ+wTa8ccFs6iuGTyYg3pzJoIZ78rEDwVWQZaI26jLa99Y6bOAA9cDWYMmDl3ZHxlOLWUO+tNqxCIpM7YnoA0Ux0tLLEbKJ1YpAbipFuStqA3asn4AGBj5IDuY3I9HjDyBlbi3g p2BOxzka P+RN19K6X7Tj1oYSwC3HIS5m0qqzUCLV7FEjnHeCiH1PR2c/p9jWGspLtkhYZ+ZL3PX+qJnk0/LmfjiwXw/kGjkenPVeNRj2db6QVah/97QrLPJBeHhmxoiFJJw== 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 Tue, Apr 30, 2024 at 01:41:38AM -0700, Yosry Ahmed wrote: > On Mon, Apr 29, 2024 at 11:06 PM Shakeel Butt wrote: > > [...] > > + > > +#define NR_MEMCG_NODE_STAT_ITEMS ARRAY_SIZE(memcg_node_stat_items) > > +#define NR_MEMCG_STATS (NR_MEMCG_NODE_STAT_ITEMS + ARRAY_SIZE(memcg_stat_items)) > > +static int8_t mem_cgroup_stats_index[MEMCG_NR_STAT] __read_mostly; > > NR_MEMCG_STATS and MEMCG_NR_STAT are awfully close and have different > meanings. I think we should come up with better names (sorry nothing > comes to mind) or add a comment to make the difference more obvious. > How about the following comment? /* * Please note that NR_MEMCG_STATS represents the number of memcg stats * we store in memory while MEMCG_NR_STAT represents the max enum value * of the memcg stats. */ > > + > > +static void init_memcg_stats(void) > > +{ > > + int8_t i, j = 0; > > + > > + /* Switch to short once this failure occurs. */ > > + BUILD_BUG_ON(NR_MEMCG_STATS >= 127 /* INT8_MAX */); > > Should we use S8_MAX here too? > Yes. Andrew, can you please add the above comment and replacement of 127 with S8_MAX in the patch? [...] > > > > - pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); > > - x = READ_ONCE(pn->lruvec_stats->state[idx]); > > + i = memcg_stats_index(idx); > > + if (i >= 0) { > > nit: we could return here if (i < 0) like you did in > memcg_page_state() and others below, less indentation. Same for > lruvec_page_state_local(). > I have fixed this in the following patch which adds warnings. Thanks for the reviews.