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 DEAFDE77182 for ; Wed, 11 Dec 2024 05:06:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1896A6B0175; Wed, 11 Dec 2024 00:06:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 13A656B0176; Wed, 11 Dec 2024 00:06:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0009E6B0178; Wed, 11 Dec 2024 00:06:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id D67B86B0175 for ; Wed, 11 Dec 2024 00:06:09 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7EEC580E92 for ; Wed, 11 Dec 2024 05:06:09 +0000 (UTC) X-FDA: 82881491154.05.B077D25 Received: from out-183.mta1.migadu.com (out-183.mta1.migadu.com [95.215.58.183]) by imf16.hostedemail.com (Postfix) with ESMTP id 6620D180003 for ; Wed, 11 Dec 2024 05:05:44 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=nRHMXtVh; spf=pass (imf16.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.183 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=1733893552; 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=JPb00wfkIgOVCDhI/4b1eMraMt3MwKHLazM/Qku2T0I=; b=8B3mcEMlc3e0b9kYJwArOlMyDaKin117jN5qGTl1D7ih3kS/QE9d8ZtWLhYbUE+IdZh6uP yZmyeRnKaoibC2BGzz+cRz/zmZ3oiQT5nQGAzQbSGyegmKbL5zoZYBsbONnvnE1J9T1cqv 6z/rhYvnjGmrzztXFKiZ3DQhYc6nPnM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733893552; a=rsa-sha256; cv=none; b=AJWuC0OeF+KygT2wsFQ6gaJBaKAZzVghrYqTBZ1fjn+5WOu7zC8I+/ejZVNXZQ7+c0/oGa Oa7XRoBFEh05a14iZqLLUN88GoTIhD+YL6aOLDLYIC3llpcfVEb5FqDu2CCIlHNbXr9PPF hcI9QY3HOsZto1T50aZCoCC6k4EMopg= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=nRHMXtVh; spf=pass (imf16.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.183 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev Date: Tue, 10 Dec 2024 21:06:00 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1733893565; 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=JPb00wfkIgOVCDhI/4b1eMraMt3MwKHLazM/Qku2T0I=; b=nRHMXtVhDX2vUhA8f9Nf3P8o6/Kz/krM6cQoAEAksxbK8dsoKeNimZPA3sTZ9CEmQerwsY ZMw2aGYVh6tZSyWjTzON9uGhSH8zSeHkpBclvaHQuWchKv/F+mQ0ZzbIF86pY9aJWbh5U6 9ZT2kecvbzmllwqqCm90pG5Hyrb7y6A= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: "Matthew Wilcox (Oracle)" Cc: Andrew Morton , Christoph Hellwig , linux-mm@kvack.org, Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , cgroups@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH 2/2] vmalloc: Account memcg per vmalloc Message-ID: References: <20241211043252.3295947-1-willy@infradead.org> <20241211043252.3295947-2-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241211043252.3295947-2-willy@infradead.org> X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 6620D180003 X-Stat-Signature: xaicewyuf3e3r5qdxy4puqc5mpfnipz3 X-Rspam-User: X-HE-Tag: 1733893544-865933 X-HE-Meta: U2FsdGVkX1/VHBqlPgjyNvUazBNJbIS6SZyJ0obUgNRIVLZh4CBWX1wIAl70cBOv91EEpkjatFa4MjErvFd4mUuCJgwATxFMX63UJcd/QsbAHOV+OhC/ILIxbhw0fMI82C8LBNKPIuTOgZP0lMbvnZ/XK7Ov2P0qVeegjflTJmK8lvq+To8GPAfaN2+Fu72OCTd/2D5crxT0k/d5FuLqqNqAuBQ0UTHDGBfeeZ4WYiponYxN1YcX2cYWxduAe3NqWOCcgGEFd5LYurXd0ndsqdN0JP9Gh+h+2lTNejV/86TY855llnM0T+rxiF5xrCX2kwALFsfEkmX6SSoYvO/B/n6OkvVlh3NWBzDZrjx0PJKmaaiAjXaZ2/u6+bPArsTDUC+h/Nra/knKmflvDRLzgIz/1qtyH5Lisn/ZXduXc+NG4gi0YClzIAQMLh9nbHdICTNJJyXrT3gOtpbKw1Y09jHqNQCA1GSG15lNIfMetHbsi04EkJsOo1pkWH990E5+KO2Mp1rM4/TQswOi82VV+H7BdOWmrHUDWRoeiLVW84sWujsQ8M9yfAcQHco6eJdeB5FtfHHroQP9BRtI5k3EZFx27esolMbiANpDuaNpssVcGTpGp084jsXsQ1VBk7aOKjtBJpiYqZ9NxbLpM+gQrZCIRBZz1MxdsDhC0sfRivf3utbTe2e/nOKMJfzREMMIA55P3Ds+Gudwkaybrax5D+Z8m+dxf6zPsXSlaP3JGIvzQMK5EeRUOH9ZxBqjWMGp8VDP3ioTeepL9ZXRNVPi2nAPqHwq2YeBPeVIzSH8V86DU+IIuasm+CJD6J4lWCqhH38/gY2BQxCG6dfLSP7ZVbT1YeFNjPMyLkQYCzrt4roUGWJQY1ZXA7s8Q2zlU1mL2v0kT4w6psAJVQouL18KXak3vE2EaKeZSncPGnweJ6EScilm2T6YNTemBeo8xVAB5UtkL2UHkaFmyGFZwxG j91vKHJJ Amo3Q1jG3NH5OxtF8vVCzL9Gfi8bizjvSmE1xedn7Dd14d2VnP2a1L8DJp5ivFPmv/uhaynZH0saga0yNEaFKsZev9+V1oFyZVLbLrC6yOcQLP8L5EIHWGJaWoDtkXCgQL/sV4mJd5Y1YpwCTwWEiomElGg== 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, Dec 11, 2024 at 04:32:50AM +0000, Matthew Wilcox (Oracle) wrote: [...] > +int obj_cgroup_charge_vmalloc(struct obj_cgroup **objcgp, > + unsigned int nr_pages, gfp_t gfp) > +{ > + struct obj_cgroup *objcg; > + int err; > + > + if (mem_cgroup_disabled() || !(gfp & __GFP_ACCOUNT)) > + return 0; > + > + objcg = current_obj_cgroup(); > + if (!objcg) > + return 0; > + > + err = obj_cgroup_charge_pages(objcg, gfp, nr_pages); > + if (err) > + return err; > + obj_cgroup_get(objcg); > + mod_memcg_state(obj_cgroup_memcg(objcg), MEMCG_VMALLOC, nr_pages); obj_cgroup_memcg() needs to be within rcu. See MEMCG_PERCPU_B as an example. > + *objcgp = objcg; > + > + return 0; > +} > + > +/** > + * obj_cgroup_uncharge_vmalloc - Uncharge vmalloc memory > + * @objcg: The object cgroup > + * @nr_pages: Number of pages > + */ > +void obj_cgroup_uncharge_vmalloc(struct obj_cgroup *objcg, > + unsigned int nr_pages) > +{ > + if (!objcg) > + return; > + mod_memcg_state(objcg->memcg, MEMCG_VMALLOC, 0L - nr_pages); Please use obj_cgroup_memcg() above instead of objcg->memcg and within rcu lock. Overall the patch looks good.