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 2094ACF649A for ; Sat, 28 Sep 2024 05:46:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8CA496B0192; Sat, 28 Sep 2024 01:46:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 87A386B0193; Sat, 28 Sep 2024 01:46:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 71BE26B0194; Sat, 28 Sep 2024 01:46:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 522E66B0192 for ; Sat, 28 Sep 2024 01:46:34 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id B2A461410D0 for ; Sat, 28 Sep 2024 05:46:33 +0000 (UTC) X-FDA: 82613062266.24.1DFAF15 Received: from out-184.mta1.migadu.com (out-184.mta1.migadu.com [95.215.58.184]) by imf19.hostedemail.com (Postfix) with ESMTP id E119B1A0006 for ; Sat, 28 Sep 2024 05:46:31 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b="kbxfk/Zt"; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf19.hostedemail.com: domain of chengming.zhou@linux.dev designates 95.215.58.184 as permitted sender) smtp.mailfrom=chengming.zhou@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727502292; a=rsa-sha256; cv=none; b=Ve7ttzmZeBcPhqOXqYa1A3DesL70ICVfD0OfG4CHER/R9TudYSNaJtMPiZsl1OH+b/tjYb pIW+8ZkHLcgXfU+fHO+M4RrBOdy2gEEJMPqvyFfGSEprC3RZspCa+d2P5Lu9cbSD5XkI8s xsvJ+GBAe4inGxJx5LF4w1anluIWpnE= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b="kbxfk/Zt"; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf19.hostedemail.com: domain of chengming.zhou@linux.dev designates 95.215.58.184 as permitted sender) smtp.mailfrom=chengming.zhou@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727502292; 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=Mk1SsERiMfzZUP/WYdMOG+cu1/pOuygaFFhk7jBMFPc=; b=I5DJ5G5pzcH8tw4RqKL6GLugJRrkRCa0S/D2gJymtc+bT6MhJfz/t3UXK5jHhIDuwi/t0w /ZQZGc4+Tc6lY6ErcBpbQ/igqXFsbmKCcHG8sGRXO5zwwYMD23Ayw3cOcq2Aix181xBB8Q C0Ih3DOM4aMZgFMjjm3x9v38Zwwd7nc= Message-ID: <3dd5dadf-824c-4a28-a133-9967027c45f3@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1727502389; 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=Mk1SsERiMfzZUP/WYdMOG+cu1/pOuygaFFhk7jBMFPc=; b=kbxfk/Zt+n9+SSu+hDo0hkxjsgXipMmqqXF1ue20TMzbHf5gV4CnMSfn5jGBo/KMDHu9tY aOAGRD3s2rqHPcyaaKpVryBmCaXBkvuBDhfyH+xLooeQxNRqsWOVevCtXAP9Qm2Mof+u74 piVTIZPfzOSRU3pM5ahQ9uIN+bu6tKc= Date: Sat, 28 Sep 2024 13:46:04 +0800 MIME-Version: 1.0 Subject: Re: [PATCH v8 4/8] mm: Provide a new count_objcg_events() API for batch event updates. To: Yosry Ahmed , Kanchana P Sridhar Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, hannes@cmpxchg.org, nphamcs@gmail.com, 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 References: <20240928021620.8369-1-kanchana.p.sridhar@intel.com> <20240928021620.8369-5-kanchana.p.sridhar@intel.com> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Chengming Zhou In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: E119B1A0006 X-Stat-Signature: hdmz1bhga1zk5qty3w6n4fcgrh7ad7eh X-Rspam-User: X-HE-Tag: 1727502391-580625 X-HE-Meta: U2FsdGVkX1/Bvv5quZwfIznqd3Pet787ohU+x9CV3PjQUEKKokpQp18ypYnbg0kziYZOhtZgmMYznAOgHWRpHlnTxQUbJ4/SDtNvrblXwCUdgdl2n3vdp1E6rGjKmW1YsH/p3g7NgXlzxTNGrlxUpbOjYv6u4QugrRElmDLvVdwz6WkYcawichArbibBo9zUq+fpWC6Lii9I4SYr7h05Jw408CUYBFxGz1QT8KJqTox67GaNsd2GPk51Ano5hAvW3Wf5xwpdZEJevHRpDxg2ArJL5KLm87OtbEiv7ePIVVX+PN/XqbBQa+16IKGU0z9bP9wpwCu8OjFWnHzFccPhuRECQvAZpROaGk5WeXBrIjvlRo4tib7l9SJpaGmBKy40FN2t7vM7HuvMwHQHbpbqFDHA4c5f2rVB4/qVfTgsjndOcqf5lZwf3MYwE26ua4x39KAQuyXNBn5vudh5kDjvZ2kLOnZaA3ABLeCwpa/SBm43H91nHK/zHu5+hp1mfgF9vVz5j0ZonxZTUN+n/gh/3TtZlvuix8W7n4PKixYHLBvXBfLw315M1pyELkhfmAIpNNqw3gW0admltUR3uwwOU3oRdxEkP/08/mVLPrb1xv5nUfW0mkdgjwDKH6NMES3iCRCNvv7fI9gao5PpgCT3LbEX8haTeZ+o/C2lpPo6rQ3ecGQp3aHcymO5tRLkj7ZOAKa38eLnbhr4zU9We4ZWdcDwB6srfzOjighnHFsQtL3oxB0W/lCOeIFN6Zx/F+6keQWq6t1MHtZHDR6X5QgA9UcZVQGTRrcG1/FiikHBh4I9L/7zfTC9ADxPhT0Erh5gtsy32KATQIwJphSw/JnYc6ZbhRqxpmN+UVpbIpK/FtGT+K4XHGDb1AE25R4flNHCQpymKXzm+lt0TovFR34PpNgkwriJqZNUGCRuxXI5Fhm6glDFofg9FgTtoUj7SmoxoJB0v0YQ2wXQZXP0NXi ihqlwHWB euLu77HYeahz4PnSnCvVAkbPgDmuVJJYM2hW6DotAjQbz0D2WZrJcEX+Jm8FMgofQlMBvN3QIjdmSYv7RPJyMcdriMqCl8uv4bF8UChk6IWF0qFn6dZ5OTLugwZwaLuz8l/DmIdMZkATObMD26WrnpU72sq3aWlywN1LpibFuCznsAugsU3V/beqiUZ4mSON/M/2nYLZeD9BI31NrsQEFAYhZy5RXx5eyceUnXz0GpCql5o/yGdrChZ5RjA== 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 2024/9/28 11:02, Yosry Ahmed wrote: > On Fri, Sep 27, 2024 at 7:16 PM 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_cgroup *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 = 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. Right, agree. > >> + >> #else >> static inline bool mem_cgroup_kmem_disabled(void) >> { >> @@ -1834,6 +1849,11 @@ static inline void count_objcg_event(struct obj_cgroup *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 >>