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 EB004C282EC for ; Fri, 14 Mar 2025 09:57:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DAB6F280002; Fri, 14 Mar 2025 05:57:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D5AF7280001; Fri, 14 Mar 2025 05:57:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BFB61280002; Fri, 14 Mar 2025 05:57:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id A492A280001 for ; Fri, 14 Mar 2025 05:57:35 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 9F423C0DEC for ; Fri, 14 Mar 2025 09:57:36 +0000 (UTC) X-FDA: 83219704512.10.AC559F4 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf12.hostedemail.com (Postfix) with ESMTP id 2E7C440004 for ; Fri, 14 Mar 2025 09:57:33 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="2/62s//9"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=mgypt9p8; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=DGppLy05; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=TW2+obsf; spf=pass (imf12.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741946254; 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=MsN/mrowEbNJodAcOeGHFarYdWv+Z/b+EuUwOOk18+k=; b=ezZ7g0rCDqvZVQlCcrVDJy/d0BFIGN0AGEddwO/WlOhtr/2jSuueYNUgvq1bFCQCTbtULo /q3u6lVPsfOliwrsEaw1s/OH2ntnApSbtaN3OmbaiudSOaSaePdTFrcAz670kdNvfNs1u5 +m44WYkKdbmjjtAWxfxpnucNkNTLh6I= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="2/62s//9"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=mgypt9p8; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=DGppLy05; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=TW2+obsf; spf=pass (imf12.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741946254; a=rsa-sha256; cv=none; b=0Io8/XOBcipgvv+iBrhwqh5eq6F+b0G4QO2K4AoKJmsg2YgMwdPJXKkCRQUqusSlB6hjh7 ylcWLK467mlOoRPM/5ffD1N1sjWO7cM1rhiwkZWBnHHMJb9HDgHc36oHPGS1NCu12o7spP 0FvE3ziYrFfWAHkzlT4+zrggBLAKRxo= Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 5C1B71F38E; Fri, 14 Mar 2025 09:57:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1741946252; h=from:from:reply-to: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=MsN/mrowEbNJodAcOeGHFarYdWv+Z/b+EuUwOOk18+k=; b=2/62s//93UWmVqOxlia+fAKbl2JbnM65aHwoQAYyGGl9oMZLBdNc967j8mK7HK7fxNHfcG ez3GIAku9XzGfHrHD9dnePQG4dlTyO/CTWlGOqjhKxuiCA7fDFJH1WTW/ZAhH3kBFY5/l+ u5HDf9xEi0R3hyHXhjhqqYXA4qj811Q= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1741946252; h=from:from:reply-to: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=MsN/mrowEbNJodAcOeGHFarYdWv+Z/b+EuUwOOk18+k=; b=mgypt9p8WlzTkYZBbjG2TpZtaXIyDMv0WrifLeqpq3sBcrs9ArjlxgWrRjPUgoJSDjF7Mj YypQBGaPKvkB3fDA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1741946251; h=from:from:reply-to: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=MsN/mrowEbNJodAcOeGHFarYdWv+Z/b+EuUwOOk18+k=; b=DGppLy05gr0pEIF6+ykLh2F3jdWKWVt9en/wkmltfuHL9OxSpmwxLPN6KwumWA4UZc1tdW SbxJtyNmVXGpUgGklsdwUmxxNXF75LyIqOqce67ehz0bigIskOXOeSAmTIZxuk87pIKGI0 IYHqF39+GqZcRbNfThjR1T/Pg3KK2/M= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1741946251; h=from:from:reply-to: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=MsN/mrowEbNJodAcOeGHFarYdWv+Z/b+EuUwOOk18+k=; b=TW2+obsfWG7kUdL2gqSV3S8OUsRQCo4fi88gyhypRuH7kfV51YEilWKPdVwY/auuwgtSs/ GOZR+w2Q0mOKqDDQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 423C813A31; Fri, 14 Mar 2025 09:57:31 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id qJ66D4v902ehWwAAD6G6ig (envelope-from ); Fri, 14 Mar 2025 09:57:31 +0000 Message-ID: Date: Fri, 14 Mar 2025 10:57:30 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 02/10] memcg: decouple drain_obj_stock from local stock Content-Language: en-US To: Shakeel Butt , Andrew Morton Cc: Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Sebastian Andrzej Siewior , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Meta kernel team References: <20250314061511.1308152-1-shakeel.butt@linux.dev> <20250314061511.1308152-3-shakeel.butt@linux.dev> From: Vlastimil Babka In-Reply-To: <20250314061511.1308152-3-shakeel.butt@linux.dev> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Action: no action X-Rspam-User: X-Rspamd-Queue-Id: 2E7C440004 X-Rspamd-Server: rspam03 X-Stat-Signature: ngyno16c9rh5rpeuhsuqasp8tmkpdhxs X-HE-Tag: 1741946253-621692 X-HE-Meta: U2FsdGVkX18uZbziXiqsSO+5nAplYNUdDNdS/A0Ur1KfxB28jJAYaEkOgSSokGJCS2a3+lO8I4NXj/me5JqtNsbpxHEAdiz4/Zgvy2ZDprF3C4pvIE+TJPIQ9kwf9sqTKSAoWFBZcZ2WX1L/8+/KApUXRH3/kbiwEgNFd8SDi3GXohf77PH5mDcCcQFJR0fUU/t6HfRjtypG9r0rqiEc+JPA3t1FAe1TO+RnO9tdXG2Zx++XqSeoJO+eYLvcq/uTa10Dr9ekE7VN1E5nHONK2agDuDannRh2hcO7fWJHB3117940xOoQ2j/t7i1jceTWlsIusAMLymktY6qKAwt2TeBQHon5pr6TgeESppklp7ptcByWCNIjMYOyXe5kIQVw9XUk/8Sv1rMFVGwdm2YKfwbUrMwghX4H6SGbU4+caoLsGepIAt6JiPmvFqIsVqvPbYk2udqI4js99lVw+QFoYPzVpy8kW2i6lSsGKJQtHXpY49lkO5LFi4uV9TYjN+cQ61lAg/XNSD9MO2IhaPMFwAkFqHz2srJd7Tc/L9l9N6F09cfbN4nLipFwXcXOUpJnocb0FCLm7v6IIVJ6TOOpuovQIP0KztEuIpBkkyJ/b+9Y+bU7lbIk2zkWzR5b0FzbXZCKkvEM++KElbtZdFehI7RBt4SOpCaW9kGm1Jwui1bfQfCtL1QQPOMowdeaRg7g4FJLK0PfS6OP5SCsrfy/P55msfBbiauh5vw4vHGTml1ntcQEnhZdrt8SEPlKMdMMSx4YYR76MNgFBVyTRK4fk0aP/xG+rmiC3yfJRji5xseiOY48gdhGFDNxxH910WFyPHq+VE/xq5R8upHlRvdgzfluGAD9MD3KrR7C/rim2FSiaeekoFOtW2totkUEaYHdrXTavPmcKgi3Kp0Rh67zGHEBqHz5S//TaixkqVaaiUo2TRMgAl+Gx7Kb/RE0TBQMNuhqoTi+OmEjCYNDcM1 aZoejSmr +bXT5yDPbr24Q40xmkCv51S9Wh5rP99BO/wdFw98PES/FszNxv5rbyHaQwja1AySwigCAj0nH9WxBsycjQbF8IJPdmKAh+8Ka+qOVMQ39zdCV5290rmx5x6ZQb3hnymAihHcZP1RFRbuzuNw2lILGYWdd8l681YAmPX1lPYI6pixMk0QewEfcueG4F2YotBpylnVr6LXi0e371im47UfTfQaMYkZ6MyzrkTYeQT+5yedb926uyMsDwGLVi5Gfv3Zexl5MHk+RoPao7SIIyPJ7hKH5gKpY0ozXpTV2ShhnF0ogbOmpVTp6AT92mKGXlJ0K8iM/FSbZLEaowhM= 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 3/14/25 07:15, Shakeel Butt wrote: > Currently drain_obj_stock() can potentially call __refill_stock which > accesses local cpu stock and thus requires memcg stock's local_lock. > However if we look at the code paths leading to drain_obj_stock(), there > is never a good reason to refill the memcg stock at all from it. > > At the moment, drain_obj_stock can be called from reclaim, hotplug cpu > teardown, mod_objcg_state() and refill_obj_stock(). For reclaim and > hotplug there is no need to refill. For the other two paths, most > probably the newly switched objcg would be used in near future and thus > no need to refill stock with the older objcg. > > In addition, __refill_stock() from drain_obj_stock() happens on rare > cases, so performance is not really an issue. Let's just uncharge > directly instead of refill which will also decouple drain_obj_stock from > local cpu stock and local_lock requirements. > > Signed-off-by: Shakeel Butt Acked-by: Vlastimil Babka > --- > mm/memcontrol.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index c09a32e93d39..28cb75b5bc66 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -2855,7 +2855,12 @@ static struct obj_cgroup *drain_obj_stock(struct memcg_stock_pcp *stock) > > mod_memcg_state(memcg, MEMCG_KMEM, -nr_pages); > memcg1_account_kmem(memcg, -nr_pages); > - __refill_stock(memcg, nr_pages); > + if (!mem_cgroup_is_root(memcg)) { > + page_counter_uncharge(&memcg->memory, nr_pages); > + if (do_memsw_account()) > + page_counter_uncharge(&memcg->memsw, > + nr_pages); > + } > > css_put(&memcg->css); > }