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 F37EDC61DA4 for ; Thu, 9 Mar 2023 09:37:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 941DB6B0078; Thu, 9 Mar 2023 04:37:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8CAC56B007B; Thu, 9 Mar 2023 04:37:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 76C3C280001; Thu, 9 Mar 2023 04:37:02 -0500 (EST) 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 608076B0078 for ; Thu, 9 Mar 2023 04:37:02 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 2B74C1605C5 for ; Thu, 9 Mar 2023 09:37:02 +0000 (UTC) X-FDA: 80548855884.03.8B0531D Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by imf12.hostedemail.com (Postfix) with ESMTP id 18E0340018 for ; Thu, 9 Mar 2023 09:36:59 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=yXqExYf0; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=qPZnRRNO; spf=pass (imf12.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.29 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=1678354620; 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=Q8NIcv5780RRyRa6ne8YnEdCf9uS/eBiHg6F8AAKbOI=; b=Ct4R9EKuRnqVgg5S/VuPhPVrDdVNeRA6IsDHtYPDlGPuQ++GGKi96ifRXeS7h+Dxn6/ma8 lY1mJBi9Bvy83zOEIlNYHiIUmRZmH133SQvdY5CLO6goNTfp1SlpuIvUQxT9x8TDwJ8miM vhYrFM8g9LVp00DYdhwjzTVEyjHHn7o= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=yXqExYf0; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=qPZnRRNO; spf=pass (imf12.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.29 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678354620; a=rsa-sha256; cv=none; b=aDBCkc2d2SRyvBFFIzhtk1Uca3pvlBom78YAI8x3IYMnh/91VwHva9xagFtqOOyMKpA/HC n9OEybaXw72pHlw6Vo1+4h3nCLboClknQYeZY4NicdGKYQeJQon0FBLhruqmSyxiMYqHI/ J5DROWDFyW2zGl8MbKez0B+Tzf3ZYmA= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id BA1B51FFBE; Thu, 9 Mar 2023 09:36:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1678354618; 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=Q8NIcv5780RRyRa6ne8YnEdCf9uS/eBiHg6F8AAKbOI=; b=yXqExYf0BlKo63vBhA2lInCQg4qzbkCFiaAiC6pEtc81vMNr3juYfeAiH41/4YZbjatpc2 Um43Y4Upd/HfPvbYKongEHtqEYieJhz20qxZjSTpho2mVSjjBve4dOJEDbAzu0OLj0IsVo ZaCfU9QuEhBfSl34dzU29GZ0EroXkNU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1678354618; 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=Q8NIcv5780RRyRa6ne8YnEdCf9uS/eBiHg6F8AAKbOI=; b=qPZnRRNOgVpup3KvPXxpNTZB/ovzlS7e6UsH+HxPCfYp/mWeBHmOyTUhHSKV+xbIKqEBW6 rXcJCJmtUjFwMlDg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8556E1391B; Thu, 9 Mar 2023 09:36:58 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id U/LwH7qoCWRYEwAAMHmgww (envelope-from ); Thu, 09 Mar 2023 09:36:58 +0000 Message-ID: <3056542f-5598-9c60-30fe-4949400dd39e@suse.cz> Date: Thu, 9 Mar 2023 10:36:58 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v4 6/8] mm: vmscan: hold write lock to reparent shrinker nr_deferred Content-Language: en-US To: Qi Zheng , akpm@linux-foundation.org, tkhai@ya.ru, hannes@cmpxchg.org, shakeelb@google.com, mhocko@kernel.org, roman.gushchin@linux.dev, muchun.song@linux.dev, david@redhat.com, shy828301@gmail.com, rppt@kernel.org Cc: sultan@kerneltoast.com, dave@stgolabs.net, penguin-kernel@I-love.SAKURA.ne.jp, paulmck@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20230307065605.58209-1-zhengqi.arch@bytedance.com> <20230307065605.58209-7-zhengqi.arch@bytedance.com> From: Vlastimil Babka In-Reply-To: <20230307065605.58209-7-zhengqi.arch@bytedance.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: x7qtzp9or7asrrfdd5f9a3kgqfatrjt4 X-Rspamd-Queue-Id: 18E0340018 X-HE-Tag: 1678354619-170462 X-HE-Meta: U2FsdGVkX1+F1h6aw/or0G9Gkm4l6akkdlq5UFVkAmTqLqQPg2qEo7nQmQubulEheLfMpZpT/WHwd8PWfuTy0LLntxQJAVHmsNt9KLQhE1XadcB+BnUVs240i9nIHabnOkXhhii5BQ0NCh6//2cznfw+3f+vEIQraY2H+TgJ8nox8ir+3/DcYyZJymdSj2I9l4OENYrQcbehLpGul3CmSgYi4MvT4eDnGW4ldP03TZb68CUd+uQIwE9pM8MbfO7p+CyOB28mST1S8lLeoTDuIHNm8kCGfrc+t+hN8ykHm+z+O1QawLbDTlpAoHN2NucSqMhsKPN5bzxmklFnnHTJ3s94JGRUWZCTYILyF1IVT1U8phCVlY3sz/4aRasHm6YvNof8yc1i+ZrVRVgZhvFZzoSkuyPw7uCYLuqI7pNpNE6Q+k1Etd5HJ2jdqGpeZEVkiP4/aa2uKGJb7dQTACncd39Kqs82tHgn03w5Kt/Wbz9Agy+AxvTtt1KsqHYkk4BJE4IVDQ1jPITK04Dzb6Ex0Ew7jhZjcHRTArXY6CJJoyjsc3+B683UiPjBBxnQI4pJGO5Z3eVBKafI8lHDMVrr835X0JDfF3+dO+OagOlyRq7EPDLhTCKAyjqtJlYJPsOUNttOdwUBwCb1Ppia9G4KZsWfUKy5TcYw75AIoyXo7H3x4+lV94evvVRhOirHJy0BaXZgq6JKrfHTO57UgFX45tjuB9jCgnaDKkWotU8S8JSeaRM/n0DbpWwjxNqa/e1cgnJYTn++9JGwjdOtVC0JfuO1jG7aRsNqVcGbsnG1nx+NAxW76ABYZBPP73cUuQeLUCbppdPSq06+dTELpDtlumTUfG3vHcadZbgHts8Rrk0mhDjU3gKVRI5zM2eKpUeEPsW5NkJbcKksuW5HScGER9bHNuse1RTIeZGPnDmA2v7G3VKpbK3fP0DWrz08Tsr16Qm5+hPXqIcdWZK00IR qrLAZ2Nu BnK0nFyeWRg1UHjZhEgZjr+569BXwfIine+asyS7nVtyIXeD+o68GQBTfVqdqI4s0XaEr78YaZoMtm+i6zDdmKNVGxLHgjKynjcu3jbMzlBo2CpiA/PsiLl+BY8spE1ZKAu9OmFR4Tw0v9XxOa33Ncf6ot5Q8GRV2kbJpDqh89m4UtmKyH3oShEO0MvuJLL5ow47EvMu4dFCHleCJp00gkxzsSHcqDjit94/FOGpHp8zt+kd7eIp5M8AUUuJs3NPk5aHCxMuzcIXng3cztFZYlIhhD0kj1ZUx03r3JiAE5DVsVbFSnOV7GHuMpXxZS96Gi50x 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: On 3/7/23 07:56, Qi Zheng wrote: > For now, reparent_shrinker_deferred() is the only holder > of read lock of shrinker_rwsem. And it already holds the > global cgroup_mutex, so it will not be called in parallel. > > Therefore, in order to convert shrinker_rwsem to shrinker_mutex > later, here we change to hold the write lock of shrinker_rwsem > to reparent. > > Signed-off-by: Qi Zheng Acked-by: Vlastimil Babka > --- > mm/vmscan.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 9a5a3da5c8b5..7aaf6f94ac1b 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -451,7 +451,7 @@ void reparent_shrinker_deferred(struct mem_cgroup *memcg) > parent = root_mem_cgroup; > > /* Prevent from concurrent shrinker_info expand */ > - down_read(&shrinker_rwsem); > + down_write(&shrinker_rwsem); > for_each_node(nid) { > child_info = shrinker_info_protected(memcg, nid); > parent_info = shrinker_info_protected(parent, nid); > @@ -460,7 +460,7 @@ void reparent_shrinker_deferred(struct mem_cgroup *memcg) > atomic_long_add(nr, &parent_info->nr_deferred[i]); > } > } > - up_read(&shrinker_rwsem); > + up_write(&shrinker_rwsem); > } > > static bool cgroup_reclaim(struct scan_control *sc)