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 0A14AC64EC4 for ; Thu, 9 Mar 2023 09:40:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9B597280001; Thu, 9 Mar 2023 04:40:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 964686B0078; Thu, 9 Mar 2023 04:40:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 85428280001; Thu, 9 Mar 2023 04:40:29 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 768AB6B0075 for ; Thu, 9 Mar 2023 04:40:29 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 535591C5DBB for ; Thu, 9 Mar 2023 09:40:29 +0000 (UTC) X-FDA: 80548864578.07.C2AA07F Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by imf18.hostedemail.com (Postfix) with ESMTP id 47C111C0004 for ; Thu, 9 Mar 2023 09:40:26 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=m1ybD+sg; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="IT/oiJ0O"; spf=pass (imf18.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.28 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=1678354827; 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=SvWQ2PVUQBGEt3Okq0OQm74K/a9Nj1kICx/Tp01CsfY=; b=pSXUtuWRNY41mcrSDP5aCGovB56NyknP9qCUMTDozdmsCdecYqvIVL79iEdTca8vdiVqAX CIqwPOz9aMYBi5vscCeVZ0g4AhOykr8aUfTiDIEJxG4jxSLelLKH7SSEwhunDsq0Sj7ihJ XsWMjSuT91aiDtUlIB/zmCXEAdKBg9g= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=m1ybD+sg; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="IT/oiJ0O"; spf=pass (imf18.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.28 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678354827; a=rsa-sha256; cv=none; b=2MldzhFX0EgH96gbxVN7+Hl0Vy0nXs0Yy6lDtfd0tsvDPj8HT3Vq/Gvzznbd/p+4ObELL7 l7UlXzhiyWGSDo6hOJE5Zbu748G3pzLkYH4sTqP+UFlql58EjOFk+KHsNuXvraYymx5oM+ CkgdItMp08ujU5lAXZ0N1tn4HEmkhkY= 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-out1.suse.de (Postfix) with ESMTPS id 0F46421D96; Thu, 9 Mar 2023 09:40:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1678354826; 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=SvWQ2PVUQBGEt3Okq0OQm74K/a9Nj1kICx/Tp01CsfY=; b=m1ybD+sgyfl5MzrJqgQzJ74iON6UP1Qx4LCdBgakX8JVqAMnDblmYq3cWLn5Z79rheuMqN aYGbP8F2BX/x9mxdPLnM5cwx1yBIAB02tWwWt7phkOlOlOs1GnAzyw2hs4KreDmI0x1a20 afell2zym3CtJsOdTRU4l3Q1QHDDKGc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1678354826; 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=SvWQ2PVUQBGEt3Okq0OQm74K/a9Nj1kICx/Tp01CsfY=; b=IT/oiJ0OhkIkm7P+/XKsXrvaWEJc/2UnwwHuSZiwg8TbV30vfBHvqWP7ZmzqVNWxe06kTj gdT++hRwFNJkS0Dw== 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 C7A921391B; Thu, 9 Mar 2023 09:40:25 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id K6cYMImpCWQVFQAAMHmgww (envelope-from ); Thu, 09 Mar 2023 09:40:25 +0000 Message-ID: <80d8df29-8077-9de7-c304-9029375fc877@suse.cz> Date: Thu, 9 Mar 2023 10:40:25 +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 7/8] mm: vmscan: remove shrinker_rwsem from synchronize_shrinkers() 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-8-zhengqi.arch@bytedance.com> From: Vlastimil Babka In-Reply-To: <20230307065605.58209-8-zhengqi.arch@bytedance.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 47C111C0004 X-Stat-Signature: 7x8fb37esbt4y6a8xnieami3xtzepf45 X-HE-Tag: 1678354826-518165 X-HE-Meta: U2FsdGVkX1/nAfYO4cQotf5+UA5lR6bu8x0EiOlJz2ylFjMMZM+BFpWihfDvq/P7tye4bGQnu+x9VTQyF5DWD+f7z2mW8GZZ7+YK+w+VeyhYI1F3ivTtWALf/ElPF4452HiW8ScR1hC/cBS4Ij57C+Z1c/ZhGKlxCRizH9TRiFF5c6OVTVXyzB3XBtZ2JmN9Nzkbfmw7nQt4KTIbctlRTZyPt9O/3+C2aonVeqybfHrcVR9Iv1KNRRNfvjtUMMHpd6El6f0S7VG+OCcd6rEr3PU0+1rt9q4QAAEQ10279rJ39KeQcrKYS6iSk/RW1D4245zzHSx+dvKa5b+rygWFC9T23mCoZ3zhFo4PKaYIhnhK5lgC+Dy8hZdia/xJo4IymnQf1hG9fubQrULu/zRS9Mibu+uDh8eQpdAUSyrI5bRjN24u3q6vZjC9A5EY2+9NWT0sn8k/UDpLkYXvVe+4loTGSHFkrJwSFLfEkHUZszvluBsYgOPuar1fHt838uH04p07NVDhMzxmGbtIpJVSKCBpkQUUmwWQy7//8I0sKpDB3ekIwAq3gGTVQX6r5s+SgroqMzpqx84KKhc5RBv9Ce7tQjKIu1XBbq1hoErTzGlDpt0OUjtYeMu+NXyk4ZNgNGWUIdTjyyvdLhHEU2XSliAAWcupSqD5xX25xAeLHz5TYU0muVYSZvqw7H9JRg0hUQVbLwswly/d4Gf8eo2RZvniJHaL/CKKI7WVqppT+wXtWhXwJynOC0FGCJ+cryLhA7d2INhSqpQrytRsmrn4FSpP3dxvonHoUJLM/zWumXUqzpE6ve5OHM4gMyGENdatYu9/ZqhUhOT4oYEsEYno7sc7SSrnm8+YCxNW2DfQWHgkGxsxTXxdk1HHkxRW9aN2P2aYGhZBdB4VBDnOL3emhM5J66CJMbUv0mfeB8dZohpq8B5O4GVZIgxPzgjt27pgIwGzt5K0+yME1alfzz1 szw00DYQ 3pnLyAu59u6iFyzGeoI9fmFJlOYlOtYYlJiPGaGms8x5zS51M2oPUGRcyBO3tqweqdulz3h7wwO4BgFYp1VpNgyOzMIspGBC9fbqxH6NsYbX/Pj6pWoIVGEJ9ah9v3pWeSl3kjFcW9grsABV/vu9W/XkQMpikxvfiIYFdkeCD22UUlAxmxvMP6ZsdoK13ANDyMQi2jE/q8v7/EfPo6u3Obw0E9xYnqVbKdu9zVbkUTjseF6cldzAFqr34NolJqdsETEbFyV6py/R2VgVn+5JcAlo9wA6vpViiph0bXnhsakeoGw/SRR4oXC7OKUWuFf4EGiRx 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: > Now there are no readers of shrinker_rwsem, so > synchronize_shrinkers() does not need to hold the > writer of shrinker_rwsem to wait for all running > shinkers to complete, synchronize_srcu() is enough. > > Signed-off-by: Qi Zheng Acked-by: Vlastimil Babka > --- > mm/vmscan.c | 8 ++------ > 1 file changed, 2 insertions(+), 6 deletions(-) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 7aaf6f94ac1b..ac7ab4aa344f 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -796,15 +796,11 @@ EXPORT_SYMBOL(unregister_shrinker); > /** > * synchronize_shrinkers - Wait for all running shrinkers to complete. > * > - * This is equivalent to calling unregister_shrink() and register_shrinker(), > - * but atomically and with less overhead. This is useful to guarantee that all > - * shrinker invocations have seen an update, before freeing memory, similar to > - * rcu. > + * This is useful to guarantee that all shrinker invocations have seen an > + * update, before freeing memory. > */ > void synchronize_shrinkers(void) > { > - down_write(&shrinker_rwsem); > - up_write(&shrinker_rwsem); > atomic_inc(&shrinker_srcu_generation); > synchronize_srcu(&shrinker_srcu); > }