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 7B0DFC6FD19 for ; Mon, 13 Mar 2023 11:30:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 15B9E6B007E; Mon, 13 Mar 2023 07:30:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0E5436B0080; Mon, 13 Mar 2023 07:30:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EC8316B0081; Mon, 13 Mar 2023 07:30:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id DF3676B007E for ; Mon, 13 Mar 2023 07:30:24 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id B7C671A04A2 for ; Mon, 13 Mar 2023 11:30:24 +0000 (UTC) X-FDA: 80563656768.12.B824EFA Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) by imf13.hostedemail.com (Postfix) with ESMTP id CF5DB20026 for ; Mon, 13 Mar 2023 11:30:22 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LueY7xOn; spf=pass (imf13.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.210.180 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678707022; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=0Z4Tof/PnwUFj5i0NNzN56+j5kNnB7gWDICsVdyoruc=; b=BtZGBfPownkHrmPFEmN5xLuFNV/St/M/akaqPSOz8LNlNlVQ64kDS5yYecJpmjfWeEx1MG hxKcn05+GE+eJ/YaHA8SFWVDzCFeM7n6CEeonp+EGZrZQJreBulEgg6AXOd85fLNkO03NM Wu7nOzSFo95QRG4njGMHPCUw+PXcLCo= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LueY7xOn; spf=pass (imf13.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.210.180 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678707022; a=rsa-sha256; cv=none; b=3VX9s/BiAD+FuqCetWIacH5/TTr9P/HRlfQqR5uhq8tjLOoXq6ks8puIp4YMgQesW/GaNZ K1wkxJIfDIG1shf5RQKkCrQiPu1UCMS1rkJa3qAKv/e/2VjGfvuWcgSB2oWYoW81JBvpFU h7JIG1DrRSjt0n79+G0HGsfvOgHVJ30= Received: by mail-pf1-f180.google.com with SMTP id bd34so7390980pfb.3 for ; Mon, 13 Mar 2023 04:30:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1678707022; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0Z4Tof/PnwUFj5i0NNzN56+j5kNnB7gWDICsVdyoruc=; b=LueY7xOnIXHIbNor8k5oEpAk+tX93l8rCkl4eUPXSjj/FR0coKA+VxIcbga8n7x+3/ UVYQ+xwM5v7aAKibviyLXFIf9yfA5DqdUrbSgL59K0+yWXOscDZ9kE0PPEbSKSAKGOeW fYdcX0uAb27i11e16ubA0DvK2mQmR+nk8oZAtv85shH1l8grZ50ghPaV1UKNldaTWetj vt+eouSQMr0HwGA/8pBbk59dg1Pgdhd0cKvtaYLaKLCdPxJ8k+oWK21Mgq9NtpfoT2OG W0HAgtKswNDuPDIH/Ey2qVGkFfAIGkpwaECFhXVuXnSl/4V4k4XFXHrDTRlXi/isujEx xkxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678707022; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0Z4Tof/PnwUFj5i0NNzN56+j5kNnB7gWDICsVdyoruc=; b=EZ8exOAUf0OC63ucP9ILP8+iesI0ovdNwJqRi8H9cQqvOlUTC8lw8w8b/vxpK77Du2 8TgciJdJGbYeQsTFmvrkPQImG6rk4wvNAfciXGcTfkd0Fd4Tb/ktvMGtvpQuXb+Fx97g 1w0H2+d8I9sVpQhYx32JGVb1rS0CGhjaRqrVy74Gg4Pr3PVle1Yfksi5vl+JVhlhFzvm LqM17D3xHNvXdZfbdD4m9vyiGWsz/qTlRkMNqC53Wn1j/2L3NVMuCoPDMgfX2ilGDvkP l5RQOsesCcS2oBiyEbB4XlYfVYxvAZbsG+w2X4mCOD0mEoUHaLekqJmlZWMtTkGMYZAp B25A== X-Gm-Message-State: AO0yUKUvqfSMJpG35WnEtlHxaAPGU2q0uWjRToCVtDaWyftHdjXoHVUn YFmTZC32aGWS2ZxttdrNWR2Dbw== X-Google-Smtp-Source: AK7set/YWnhAf+YFhv2OXt5fozTrmg2G/24NbjxXRH9lebvV7mE5dh40UrMVfpfJ10aHjkOkvNuTfA== X-Received: by 2002:a05:6a00:2148:b0:606:d3d1:4cc4 with SMTP id o8-20020a056a00214800b00606d3d14cc4mr10844065pfk.3.1678707021778; Mon, 13 Mar 2023 04:30:21 -0700 (PDT) Received: from C02DW0BEMD6R.bytedance.net ([139.177.225.229]) by smtp.gmail.com with ESMTPSA id n2-20020a654882000000b0050300a7c8c2sm4390827pgs.89.2023.03.13.04.30.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Mar 2023 04:30:21 -0700 (PDT) From: Qi Zheng To: akpm@linux-foundation.org, tkhai@ya.ru, vbabka@suse.cz, christian.koenig@amd.com, hannes@cmpxchg.org, shakeelb@google.com, mhocko@kernel.org, roman.gushchin@linux.dev, muchun.song@linux.dev, david@redhat.com, shy828301@gmail.com 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, Qi Zheng Subject: [PATCH v5 7/8] mm: vmscan: remove shrinker_rwsem from synchronize_shrinkers() Date: Mon, 13 Mar 2023 19:28:18 +0800 Message-Id: <20230313112819.38938-8-zhengqi.arch@bytedance.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20230313112819.38938-1-zhengqi.arch@bytedance.com> References: <20230313112819.38938-1-zhengqi.arch@bytedance.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: a6f37uqo8jy3hqqdzubdi5dx87n4641f X-Rspam-User: X-Rspamd-Queue-Id: CF5DB20026 X-Rspamd-Server: rspam06 X-HE-Tag: 1678707022-362590 X-HE-Meta: U2FsdGVkX18KzHd694Xqcf36jrR0388YIjnjukaivzS1Ho3F6s6rx4q7WW63FY7NVaxV9UA/9rGqEXPXM0cwQOD9HBKfxhuUU57SasMBC6I+W16jTaEOGkMgCufzKOb68XNqrQpnuU6MwT4s0qwwwCJC4nzUvviZmzqilKoBuCAjfS9wl8orZ1yfVWc5ptLwa0ulNFHoOo9//k3sGw9/VLlAwlov8EHoQMN1hQVpPg9hTE8y3TUUu/20WT98b1RCmuDClq+US/HDV/Q7+uZ3PSUgACoxRpXvnbESr4b/a8kU3Iro/0Mbthw30kZzPU62kaQMpdDelm3C0gzcRTCZne+BgdhfUz+VtgAo0hDaaunmhAs/2Liyv4DWmfz8qA33Y3/WXZAyKgToCKXedOhRZadpIk2dcAt9o0TfBAD9+PeOr55X/20aUZAOUa7QdjHodJkNmnmKJOYvNtT5qNkloj4arAcY+gOz6/W98MypyEb0SnoZzS8EkTBP719hgAgufELloe30meLSVXJoJ3Q9LcyfJHRuZD/5l5NxaAB1GgRU6PtrSZQVxlcZ6rgJS/jbOywvsgp7lo3iy7aHAw7Jfj8vIixND1+ltE4qGKa4J82Z201YvrbMbmqT6NGmqgWCAccoHdsv9ecN+rPS2kmADoadHxV2FzwNvTBOH+nIUn3aliApCNVF8iGXN776YR3ez015NNjQm9AxcuxKafzm9+H6u2mL/iMCsC/5vkAIQXzuKtqiaClQ5VSqBSCn8lw5/yvzOvjxEYTmBhFnQ1TzjB27deqi3P8DrfH+enHkEOBtlMQw/tWNlJZS4WEjL0IEAbfImQGxpyxR2hYGVAII6wvjLf7FsNNLq2I2xi3/b569snPC8pFQULmS12LtpGwxmWBEAKQgTH7juIh4QBDA8qXID919NvdK+RwanR1PGBxH5oREAfSnfl2WPFzSqm0j9kvnH5h5OEOGNp6dpCX A5R0WGFV mftqHl4CLku1JT2Aq6fN26W+6R3Q4CgBQXKCUkCotMrM9iKXzHHW6sgKVRmtUhq0NtemKXHx0wlKTzSKWSM2k8Lgi9O/7mEz8Nu8rSSxP1Q47GHcSn2uzVW8RrFzsPegekNauag0FuOQVukCZRYPk6rraUGvtILsLK89TiURCGwYtIi8GsP1EVyEwMuu75d+YHXrS1AENfRk61uz/l27WGrLYst2SlGxcq5xcNJQ20krLXrHQP/M+KyZO6AAtuS6BgjsnoUAv9tRphlWhf3DsWDoQijpchb60kJsFxDxDd+eADsfDR4gtVqI7SgMwbIKeGCOSURqBKp6sqyu+MRPALeMRjBYwLym5Rr9tesKvg17YTX+2er7wvieqceESORj1MSMjCHh/wsXTTvmCNfudHMWNuMHxk9znq+tWgFDMWPXayqnBDTK3TLp+ajh46itGGQJcoszbcf2nssrJyChR20CTwHSqWHVcg6iDUwnx5CIhHjENTuaceCehtQKT9fTQyudRXXPsRytte1x0iP5ek8TlWw== 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: Currently, the synchronize_shrinkers() is only used by TTM pool. It only requires that no shrinkers run in parallel, and doesn't care about registering and unregistering of shrinkers. Since slab shrink is protected by SRCU, synchronize_srcu() is sufficient to ensure that no shrinker is running in parallel. So the shrinker_rwsem in synchronize_shrinkers() is no longer needed, just remove it. Signed-off-by: Qi Zheng Acked-by: Vlastimil Babka Acked-by: Kirill Tkhai --- mm/vmscan.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index 8c1ae7ea8dea..2b22a42d83c4 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -790,15 +790,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); } -- 2.20.1