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 8DE89C4345F for ; Tue, 30 Apr 2024 17:41:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E52306B00BA; Tue, 30 Apr 2024 13:41:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DDB346B00BB; Tue, 30 Apr 2024 13:41:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C7BB86B00BC; Tue, 30 Apr 2024 13:41:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A82B86B00BA for ; Tue, 30 Apr 2024 13:41:44 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 49972C08AF for ; Tue, 30 Apr 2024 17:41:44 +0000 (UTC) X-FDA: 82066915728.12.57A4087 Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) by imf12.hostedemail.com (Postfix) with ESMTP id 96ED24000A for ; Tue, 30 Apr 2024 17:41:42 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JI66IthX; spf=pass (imf12.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714498902; a=rsa-sha256; cv=none; b=DmNNzxmlptXnTumV/GhZ0ManFz+eQ6wQUhK1h8lg11WyGCU5z5n8WwRpyC76kjSWdF5jvX 4sKzF3bBDtYwRiywd7wisNdczMUIFg7dKY5TrdPNN598qnSnYdhMCFmeipc7kAFiamJJpz tHmVuSmmCb5Cg4lbMNUO+IdXdET2bDY= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JI66IthX; spf=pass (imf12.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714498902; 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=oZ74h5LHi7baPDY6W1AyYYfznl65M9Axb+eFJNRztRw=; b=nzEd/LB3/RUalTX32NUgqqeLerot4LWGjm3hKVskfv8oHlX+rqo26tr85h35ci5yekuD6N GlLDZpClPd1TQh0aI4OarpWX3ebxkt6w08EzUO4Ws1omjPK37VXS3blZJifqrq3R269GA1 EGvoVEt6oxyT7yrFdCE+Su1P603cxEI= Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-571bddddbc2so7113590a12.1 for ; Tue, 30 Apr 2024 10:41:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1714498901; x=1715103701; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=oZ74h5LHi7baPDY6W1AyYYfznl65M9Axb+eFJNRztRw=; b=JI66IthXAGotTqUlEVCW0ajBmzk2OH/qhM2cTcU0OqFRiBF+N8SXqUH+5gbz9/myUU lk2vJBYCbCsmWCBKgRYt901wuodN4zPu9HfewqoP/OL7wInzu5YrcWQyI1IKH2rsXgIt OZvC1ivBxw1jr+ID+GUeY5TjrqG2dlsusdpDUq0cNt9WN3eULN0p4uV0ldyFs2w3HhmS mlPpECdwCTkPF+RzJncrGQQTy4ydqNIEPXgYA6+yIr92jOwh7PwnYySl3nLxxPODmkEQ adIb4KdZKNN4M7CUWOHpsk5cqbS+1dCTvC7POcWOmlMOc8MAICX1v7As67PlVAoDH5Az NI0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714498901; x=1715103701; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oZ74h5LHi7baPDY6W1AyYYfznl65M9Axb+eFJNRztRw=; b=P9bXDF4XsoqxMLquJv1ZydO3NDVSSS8/OAYMZlkRy5vfxXn/0HE1AE8qQeVErQzS34 Gkq3ngcj2523MLaOTiGIltYy8fT+Wf2pRFe+Nrx8fqtVjYyuxr5FhMgxAwOBiy6ATaFY SzmGOEnGzyQ51G/85nHIlTEorrpUSisJb8sfGoq/XjDhMIIa62M4oh3p1QJ6BPbSQWuB u5tpcVF3gNjnYK87PUMuiIRWQMZI5ZxClw9BNNNmjjKTMeSqjeFFZeiOs1J+iLs9oCPR a0YcCrMyX0NElCyLgPPbImaGmUy99D3ypr9Fm/lMi4XXTz0IjhYHM25kzhOqTBobKalO MKdA== X-Forwarded-Encrypted: i=1; AJvYcCXzb7apexoJM0+ZvHjy1VOyd2gbPH4RzW5LMm82ViAH80AivJH7cuqBFZVhZpDvqgTK9fPEeg4mpgrnbBAOeZXKKJU= X-Gm-Message-State: AOJu0YzXs3GcFEbg5sjK5bQjEgylt4z3XZ620qvHIhOwLHC+Aqr91EuE WPcSH5p8uJNopJIGRFj1CrUFfqtj6Bzp43EhIrJ145QcgzMWdf5A9i9dqqfkb+FbI8xdbXYign2 tyTUfulEzKue9goQpXdr4I180dN707KLAY2XM X-Google-Smtp-Source: AGHT+IFyc0dDWDKpEZhiJHkKFTiLS5ZalTfSl0iDvjRFvqGrKJKyM2wd6xsG7YEzOa7HHXLpL3cYIYbxICWMfD1zYpA= X-Received: by 2002:a17:906:880e:b0:a51:8145:6877 with SMTP id zh14-20020a170906880e00b00a5181456877mr282005ejb.37.1714498900595; Tue, 30 Apr 2024 10:41:40 -0700 (PDT) MIME-Version: 1.0 References: <20240430060612.2171650-1-shakeel.butt@linux.dev> <20240430060612.2171650-5-shakeel.butt@linux.dev> In-Reply-To: From: Yosry Ahmed Date: Tue, 30 Apr 2024 10:41:01 -0700 Message-ID: Subject: Re: [PATCH v3 4/8] memcg: reduce memory for the lruvec and memcg stats To: Shakeel Butt 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: gk9hzn5otxrcjsiq9fj34sz7xicuauza X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 96ED24000A X-HE-Tag: 1714498902-731369 X-HE-Meta: U2FsdGVkX1+tme4VuggcvB9bHtEwBC0uWonrLcB/9RPcyF1IarM7hgbrccouW1MGSj+Gjef4GvCnfBTEFItszf2CvttSFvEoPPCCE20cbfAy1tqKhIBJPa0GNiaIQZI7D9qPYG5tHQrCysW/TcLa1GBomGPFwhofW3sJTD/SYruia/wsRT/JvWhmNbFfZhv7ADDd6SBmKntwppZEdOdG+OXPlCTyAtrcRMYl+3Ln0GGHWQTeXP0Pl7oxpmPXvCEKgAgYhcJ5t5Of4GSGVPwskEWzq7+308mkiAjDEJkbQ1E5P2X81VQnJQcU4SitDV/4roOA3JBn5tgDRLjl7fE6TnlDLc32Y0sXL/bgK+az5HjXszAwdwxgrIPnsZJwvcRdQC4k+yrjha1VHIRDc6Sh24ltWPq7tlASG6M4JE3TUNxYLFOO2MfUoFfHo5+HKzKoaYj/P2YVjgWvYCOxhdLZUWmMQIclIZ4zhs4PWQtav2ADhK0dMWVIsuJNPTzkBM0akDauFe4dgeYVjF/pqNqF3ttHaWKxuGOB002m17o7/Ykzvn2JmyKkpKggp5k+z3P5WilwUAphCFamOzzBnFkWX9kxvevxiIyyBTnlYhjbRm4LSXOgB9QPCsd0io7F0UN33SFepd6wfRpkyRwbwVI61Bmwa3drxYc0VmrHjRhyzblqIyeQ7r+Ina9Y6H2KJCbFeylhyd/IZoe7mhk2+S0cd41t4KGZkwTsfAYEdgQd+3lnkQoYGESHi42RnnNoeSP4ozEEDpgAvp7iqylUMgqpefPW1TTO16IVzXX7EPd9nXlSxCN0aGIBODDNigbOtKh3FtbSFZ8tR2F1YJxyQPm8gDWGKAmqBK+2a4q54mta7ORISkse0sA6OI8lQ2i52jmL2pl7ZUhPeQHNrUoSA/3328kHtpPGF2TqtjbXmUx1cnrRgf4jOk7KFv65e9h7ISIbbrg2Upz+vyVwDQC3ZYw AXw== 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 10:38=E2=80=AFAM Shakeel Butt wrote: > > On Tue, Apr 30, 2024 at 01:41:38AM -0700, Yosry Ahmed wrote: > > On Mon, Apr 29, 2024 at 11:06=E2=80=AFPM 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? The comment LGTM. I prefer renaming them though if someone can come up with better names. > > /* > * 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 =3D 0; > > > + > > > + /* Switch to short once this failure occurs. */ > > > + BUILD_BUG_ON(NR_MEMCG_STATS >=3D 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 =3D container_of(lruvec, struct mem_cgroup_per_node, lruve= c); > > > - x =3D READ_ONCE(pn->lruvec_stats->state[idx]); > > > + i =3D memcg_stats_index(idx); > > > + if (i >=3D 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. Yeah I saw that after reviewing this one. FWIW, *if* you respin this, fixing this here would reduce the diff noise in the patch that adds the warnings.