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 D08D2CF6494 for ; Sat, 28 Sep 2024 03:02:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 632DF6B017E; Fri, 27 Sep 2024 23:02:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5E2196B0180; Fri, 27 Sep 2024 23:02:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4D1186B0181; Fri, 27 Sep 2024 23:02:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 29CA16B017E for ; Fri, 27 Sep 2024 23:02:56 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id D6235AAA1F for ; Sat, 28 Sep 2024 03:02:55 +0000 (UTC) X-FDA: 82612649910.22.CB24801 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) by imf03.hostedemail.com (Postfix) with ESMTP id 1322620002 for ; Sat, 28 Sep 2024 03:02:53 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=yFZDgZEd; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf03.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.43 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727492438; 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=cp7MtRyqEGb3AtDPUyaqzq2eMSwplE2bfAUsUtMCVxA=; b=A0adzuzNzLIhn5stbufqOV0jVEBCBOn/rLXRN+BooylBys+NFqDdYQsx3M4UfHYgAay/AN 0NbIbIy6stRmDvMcQih0iSuxM7Q3lI0WwmJ9QcRnUl6xdraaJFi2RL580V20s8WZSrJL09 ylArH1MP4B++5cAe4LkhzADioQkvEc8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727492438; a=rsa-sha256; cv=none; b=JSddcmiS8VBVyir4NNBX1GfqjkeWcgizG+er5CMclVjzc7+wkC7ED4oKt9JX2DVmKFc4is YLeqPIBw0N0hF96CEDiUFos4esj1n6nJcNftk+Ebd4QzP25s8FSSIpuH7lEVjl7b4o4t0d Qf3hCTk7UhZ/9sEcxdNJCV33M/aJ7jY= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=yFZDgZEd; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf03.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.43 as permitted sender) smtp.mailfrom=yosryahmed@google.com Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-a8a789c4fc5so644816166b.0 for ; Fri, 27 Sep 2024 20:02:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1727492572; x=1728097372; 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=cp7MtRyqEGb3AtDPUyaqzq2eMSwplE2bfAUsUtMCVxA=; b=yFZDgZEdOX8R559XazmLxw7KtsZ5T4BydBODPnNMfvQCfFRSa+7yLNYjmCSiw4Nm8V f19RyDZ96wJLSCVcsZNjPUtBE0lYQVGW1GsQPvTn4BpPX4hOPZKamnxTRkivJMu9tnl3 veaSk/SfobWDRKSpcZFMV86NIbAdtmqTOXDR7Bh5XVBr5HWa6HMCOl9Dfrkqy/4DliZh EWL+m9pexgfufrHqqiLhXAPzLUJRU9E89rIbW0Mut1OYtuRKvVJwUoBrVIuCvp7yIP0S CHInaOA5tN2/t8Y0bHwAXpYWOGQjJcFGMBm4P4Xd8Vcf05rKsqKuz4CpBrcR/7uxT28y 7ojw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727492572; x=1728097372; 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=cp7MtRyqEGb3AtDPUyaqzq2eMSwplE2bfAUsUtMCVxA=; b=C3cs9FsPcXrBa+65RQZNkJbwN4gfC9IUDhMMcttAtnuvpS3XQinavwu5Lsjw5Wbt45 NmlyvSRbM1aG22kd0mye/g55zxmhHlqI9yHVakyHYzBcUoNycbrV0XpOGVsbeKUSKHje miyBg0yK/2YcB6fTgtxGqUTdWjgqYQw0XJ/vNodrnO9n3R6KoypjRXqo6swfII8yfPar 4uv2natgDu0qTdL9I9RSU7j7d+y4KPlV0FfRe/w7B4ZIzDlaapiYWZDoV+1Om+2eM+z7 8a9tus0fvN1mSeTMC7kz83bpoyX5crV88QkQf6PyCEPEQa/OLwQc+SfAvhiO9zUbVaB5 M8rg== X-Forwarded-Encrypted: i=1; AJvYcCUDO1wWMf5GBpmLRkOf1FxGuokXHzyshQIhZ5nzOKiBIqR/0uPzqgHu4fZXFvLJ7R5HtVRi2FY0dQ==@kvack.org X-Gm-Message-State: AOJu0YzDWvMCd4xZoAKBW8BrbqGe9pTb1Ran2bIsd78jmR7zqcl9NYtx qrkVnS8j7m1LG6Za8wZR7sCpiJ9Sl3/5+Nf02iKg9/y3ccgVePXQvRe6KVTENIoczdHuGxLAtph +DJinlzV+N9WygkciDyot6I06ugWy+gHLkY3L X-Google-Smtp-Source: AGHT+IHd27XmqwWu/zJtZLehBsRs6tu84k8OpJ2PNiaESRKdlCXR/BnJPbtRk6DJhBHTs4KrYcASvbbRtAWWipnYg6E= X-Received: by 2002:a17:907:d18:b0:a77:ca3b:996c with SMTP id a640c23a62f3a-a93c30f0cd7mr543625666b.16.1727492572355; Fri, 27 Sep 2024 20:02:52 -0700 (PDT) MIME-Version: 1.0 References: <20240928021620.8369-1-kanchana.p.sridhar@intel.com> <20240928021620.8369-5-kanchana.p.sridhar@intel.com> In-Reply-To: <20240928021620.8369-5-kanchana.p.sridhar@intel.com> From: Yosry Ahmed Date: Fri, 27 Sep 2024 20:02:14 -0700 Message-ID: Subject: Re: [PATCH v8 4/8] mm: Provide a new count_objcg_events() API for batch event updates. To: Kanchana P Sridhar Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, hannes@cmpxchg.org, nphamcs@gmail.com, chengming.zhou@linux.dev, usamaarif642@gmail.com, shakeel.butt@linux.dev, ryan.roberts@arm.com, ying.huang@intel.com, 21cnbao@gmail.com, akpm@linux-foundation.org, nanhai.zou@intel.com, wajdi.k.feghali@intel.com, vinodh.gopal@intel.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 1322620002 X-Stat-Signature: 1pxruks5otactb5pgsr7wtfnkxkgqwk5 X-Rspam-User: X-HE-Tag: 1727492573-623136 X-HE-Meta: U2FsdGVkX1+ynrmMpKGjLvU/F2iAz/WurRlhhETs8TRJ1z3Txzr1Bd1EMHMFGEXFSphPwsK1fB2GymaUbGshcjMUG2t5FQJEri5wMSiXykCf/iiBZF7JQc7lqoTnSMndxemiA86wlmGfgZbBAlXtMNviNLFBeRHfcYrNEXlCc7O67gKw/egKR9ZyLA4CGlt4ENxabbMjTYc41P823kJ/qv+ZcLr2nuxo1C89sbyCcCIvfrUKqbFZULSVWVKqTmJilJhijO2wG9lpXmt0fmtrZzQpM4qv59tbF93k/Tsc1ExuoRRF9YsmVlws+vHrCUe5GvRpFG4g5w/12S8PRLdxX7dwrC8Hs4fO+Zzu67Z80DfpJIwIJoQSz1SDEtTfb8zJ3EbS5zCPZdfcKQdcp288dd8OK19vQmVFho0+4U1rYswpPqnWKKdMrTMXJYi2cHYiekB8isREgXvvhtdOhiyV1YtJuY1rTq2/U+sWMDaQBaH2c+7TeRJA1IqXX/M4xroFIgQerBes1QccQCPH0JSkotEODFYXWt68gnH+S9QexIH95b/uSilVW0PbnXfd4hFIKSdlgox3pN5rQYSVy+tEtnwHCKlW34dO9t2CctoKn0/827KyreyUPgF2fG5KwTkyBbZmx02Jl0hyVWzQUwOKJ31lwPj13qArUxYescnsUJaMNXnp3bp4jE72MbRGIaW5H5GrvBngaxhlc/Of2VQkLwZvxQxUOJTnywcLFnTq46NNH/y4VEJFY4pYY+kHf/fem+8FtSfAw2cR7W0RXsZY04EXd2HgUL6AQPekzTbkQ1CFuZJV0Aj6iolXibm9GOpFHJng0+qNlCcLvK4XN6SblTY0jLNbkHgM5UuP8OnxVSJvakUhhvH4gZsQTLIlR9+k2vOYmTAjChMQaSGgmt0dHdLcl+JrTUMUZFZWVaMoc6RpEZZ0rtzaKAzBznPDNeNrIBqnzBkAjNNc8gVz4I1 EhGj4Bj8 dWl3+Aj9rbmz6Zjqft6SjfwUod5fV4NeDyRnufVZ1O0vYJpNGoDXVpmHybno5nkGUetaZT5wryTp8sUxElt5whITdHpp000V54gQHQJr3+P5dlB/Lt5MEOXxNtVXegApKs/St0Dw7u8zH/HI63o5lIZlPad38Pkt81Q3aFQ1rk5olz0t2eK8sifhySwA1gGBAkR+eR2F29jGGRmfarpYOFPqbHRVBSb/LkB5TbTScBi4rhfGZ6Lo+oxFGL1Ani1hNAFABdQWROOvzfhA= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, 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, Sep 27, 2024 at 7:16=E2=80=AFPM Kanchana P Sridhar wrote: > > With the introduction of zswap_store() swapping out large folios, > we need to efficiently update the objcg's memcg events once per > successfully stored folio. For instance, the 'ZSWPOUT' event needs > to be incremented by folio_nr_pages(). > > Signed-off-by: Kanchana P Sridhar > --- > include/linux/memcontrol.h | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index 15c2716f9aa3..f47fd00c5eea 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -1778,6 +1778,21 @@ static inline void count_objcg_event(struct obj_cg= roup *objcg, > rcu_read_unlock(); > } > > +static inline void count_objcg_events(struct obj_cgroup *objcg, > + enum vm_event_item idx, > + unsigned long count) > +{ > + struct mem_cgroup *memcg; > + > + if (!memcg_kmem_online()) > + return; > + > + rcu_read_lock(); > + memcg =3D obj_cgroup_memcg(objcg); > + count_memcg_events(memcg, idx, count); > + rcu_read_unlock(); > +} Instead of replicating the code in count_objcg_event(), we should change count_objcg_event() to become count_objcg_events() (i.e. add a count parameter). The existing callers can pass in 1, there's only 3 of them anyway (2 after patch 6), and they are all in zswap. > + > #else > static inline bool mem_cgroup_kmem_disabled(void) > { > @@ -1834,6 +1849,11 @@ static inline void count_objcg_event(struct obj_cg= roup *objcg, > { > } > > +static inline void count_objcg_events(struct obj_cgroup *objcg, > + enum vm_event_item idx, > + unsigned long count) > +{ > +} > #endif /* CONFIG_MEMCG */ > > #if defined(CONFIG_MEMCG) && defined(CONFIG_ZSWAP) > -- > 2.27.0 >