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 CD844EB64D7 for ; Fri, 23 Jun 2023 13:24:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4C8DA8D0002; Fri, 23 Jun 2023 09:24:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 451AD8D0001; Fri, 23 Jun 2023 09:24:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2CB088D0002; Fri, 23 Jun 2023 09:24:42 -0400 (EDT) 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 182658D0001 for ; Fri, 23 Jun 2023 09:24:42 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id DA659C01D8 for ; Fri, 23 Jun 2023 13:24:41 +0000 (UTC) X-FDA: 80934082362.09.03CD4B0 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) by imf03.hostedemail.com (Postfix) with ESMTP id DB2C820012 for ; Fri, 23 Jun 2023 13:24:38 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=gIWwtDXx; spf=pass (imf03.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.166.42 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687526679; 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=gz92l7DBmLTrf6935v1JTyj18AL7FL04QRL4qQAWqJU=; b=ZwrT9Yy2cKxjrgvhlt53ycRmudCY/p02TBfTD54+FF6QOTKAGUDmS3NPxLEMw7shp3WjqM DNGvGvEbPMleHuD9RbPDeMJBMq4Mi1jQJ45UH1UVesIfJYBeQHdwapzNPfFjXVcISAJE0t upbGC38HGMTK5BF/uPYBxe55e5Szmng= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687526679; a=rsa-sha256; cv=none; b=vZDNWOfewC34+ftfwnZ57Cc6F4L/YRTLDu+X8Ec34CgiAUrou1u8PfjbmgRCnYRZZg0yIC ghKqFIhLZMbKiZX4rtXbu7X/A/nzFVarkg8eEEyYw8upjGn6odLmzHucchLuEA59DszwM2 8h7XA0izua/7n2yB+ZndfSz2jfkwdN0= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=gIWwtDXx; spf=pass (imf03.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.166.42 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-77e3c55843cso2503439f.0 for ; Fri, 23 Jun 2023 06:24:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1687526676; x=1690118676; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=gz92l7DBmLTrf6935v1JTyj18AL7FL04QRL4qQAWqJU=; b=gIWwtDXxJuivuEsWsn7sqCZTBLYzZCSIZH5HGE4qZ8EWB5QUXMWkTscVi5K7m3pLUb AWoNDhJ8ESx9DRpn3UGCp2Uvm2dath67lulczhMMzXUHSfw+KuuuWZKZ5vDu4lXfHnd5 hQR/vcg8QKo72hHneWZ3miZE29ysHMJmApIFRQ1SzZroa/a+qdV6Dpe2uLtETWZSf5Di DwUbZUrml+/apF9HoV5pAAcN8e5k4Mr7obMwZugAwGAvvUEtH2WFBgfX4jOKDMjPri+A N84eYclRTYh7THW7IcSdjB8iFp8xE+GCdJYVPjGEA03gXDcctC8fDrc4P9qjfAoL/G9z jxWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687526676; x=1690118676; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gz92l7DBmLTrf6935v1JTyj18AL7FL04QRL4qQAWqJU=; b=ShFRjQZEH6LesXgMfjiAxv87FsAdSnhTq6Qv9strjpNVIbZ2CiPpdE+2/xrTTI2pph tFHlTSsxPVkfIn9ikCKssV0rxd/ZzKvJZM8E7ZRrpWs44ewHMWaHX5tvrXy4d6qSKJ9Y 25DoK1WOKVOXN56j+buqxbFh/U/aIJQfenptKQ1PWZVj9/ScGUqcl6c1Qovvs95jkAqB zNb44h0IEJzLmYhQwo/uUTDrGGLW2WHtu1/4WyP9aoDPaVUMm9TGlDWBVUgTDvTmPqvz uwaHQ4lipP8J5Mdrl3RkBqA9deUCDjJn+LfnmwT0ES2aQeUmzk53M8uzogY0X+M/b2qi /S3Q== X-Gm-Message-State: AC+VfDxsiHCDKDleHENnN3pTjA/bSU2DgiCSZeppoCEOA/m2YOmieGgB YyWyIfRgZu/+U2TMmO1ujTklkQ== X-Google-Smtp-Source: ACHHUZ5gEbRKgAaE+N8YtReVmyo3V0rllQa6wCPNTx2RvtSftj/ir5NFrmfS2AckYJcn//Bnc41ZpQ== X-Received: by 2002:a6b:1581:0:b0:780:c6bb:ad8d with SMTP id 123-20020a6b1581000000b00780c6bbad8dmr5508761iov.0.1687526676020; Fri, 23 Jun 2023 06:24:36 -0700 (PDT) Received: from [10.4.168.167] ([139.177.225.254]) by smtp.gmail.com with ESMTPSA id w5-20020a17090a380500b0025bcdada95asm1562852pjb.38.2023.06.23.06.24.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 23 Jun 2023 06:24:35 -0700 (PDT) Message-ID: Date: Fri, 23 Jun 2023 21:24:25 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH 29/29] mm: shrinker: move shrinker-related code into a separate file Content-Language: en-US To: Sergey Senozhatsky Cc: akpm@linux-foundation.org, david@fromorbit.com, tkhai@ya.ru, vbabka@suse.cz, roman.gushchin@linux.dev, djwong@kernel.org, brauner@kernel.org, paulmck@kernel.org, tytso@mit.edu, linux-kernel@vger.kernel.org, linux-mm@kvack.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, dm-devel@redhat.com, linux-raid@vger.kernel.org, linux-bcache@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, linux-nfs@vger.kernel.org, linux-xfs@vger.kernel.org, linux-btrfs@vger.kernel.org References: <20230622085335.77010-1-zhengqi.arch@bytedance.com> <20230622085335.77010-30-zhengqi.arch@bytedance.com> <20230623052554.GA11471@google.com> From: Qi Zheng In-Reply-To: <20230623052554.GA11471@google.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: bkkebhhkxk7emd9gzadx96gorkjk798i X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: DB2C820012 X-Rspam-User: X-HE-Tag: 1687526678-211698 X-HE-Meta: U2FsdGVkX1+8yKfsyZ2kVx/uzCHSxYh/WmPSM2F05mFNFZfClnD332KW+KtwDUuKG2NVqS0CoBUvcGnQ5ufN9wIs3eaAL+GA/iyDc+jMut8iTwK8dqdBjTq+chil9HCySLn5npnLPlXJ3NDoft95MpCAGVKT83puMDF4fatJKldSdgBhsgNaaUC9Ci26g3XP8hD3OVeKpqRRdbM7rElCzItdcEZro1hoaNkhOH3bMbdWSqANVaRHjhCgeibKJJwjFoS3j1GGb36a5FLnQPAJgcjvqEIEfdd0ycIyM5mxAsMygBdONZ9tuiVHjR6cl6zwFxEmO1xqZKqOXbGIY8r9/81XekbC4MRsTAdi/41vJaaRuDSK59lPvbAGtDu5UW8wfY2CXku/b+Oodc96w8qagd4p4V3KDwcayOhKARPzztJ95pJ2q/zUV2HTD4ZYv9H4Xt/UKkDY6VHwU49FknGzWWKOrwHYcOqUrIk5TcuGMNw6Rm6XtNb+N9/eGk6j4aQJG+soq+L8MSndlAW0kIwCZHyGSktT/cajJAz8seHgMfCLNl4zLxYngIfK24JZsaBjYhD5uhGsJmRWztV4XBFK6ws0VBU+5Fxe3LKps+gDdxasIE7OgeZYdOLYfqseflTcn8+V+vESqHnmIM4GUMzC5A4tW7B+5eqXS6JRE/jenwaIXUgdA5NsGdvkI/tRZ7xhTSFOfOYLcZs5Rykg/ruf0BoN3l0+K14Ta4ZPw7LZuVIonjau5ALhJ8dEE481bRRhv1ToPWTTAI0IMrXpzn3PQ3R3grwb+EnQZKDhsdPKQRZqiTv4rwL1t8iwpgS5YMpm2s++24PPOC6zS4bPThCEFykcwm/WgOoaKsmawClV2Tzj0mkG8Iw3cGmNPV5JZYmPeAXgBdUthd1kupgvuF2DNZ4ee+nH8KOUiPE2H2pYbbmE+LPV3UKQK3sQHXYVbNEBXpW30JeryJRzidjWrfn t9hf9iT1 1PHLfCsJsbzRx0lH4PjAEFpLviAPfhHaYOkcKPENCTCEEkSHFnLih2AfRMYHeZSDIfB9ucNYANHhTwmykw8LWvuinBeU97GDZJQnHpukfFztSZSiGbiuvnN15g319kgvpx3jJeyrcdrADaaPU8+2dSwyuHau7+IErjvDc9zk1We8B/nsU4iThRoBxWWJfxJ8143m1gz73CUzUsbcKHdXL6vUMVBUXjdSSwKgSDWNzrR3zoJLHNBlbPUvPsJiAdM5/mpW7X30Mz74tYIQYbXx44fVVM5bf3EmUT0KQvWusiVmHiK8zWkKGDXqVIAf8G3Sh/ochxsY7Mm2ktwreb2sWfA5Gh/EOls1k1MAEf/wtY0gY5DmjaZev98A9WA== 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: Hi Sergey, On 2023/6/23 13:25, Sergey Senozhatsky wrote: > On (23/06/22 16:53), Qi Zheng wrote: >> +/* >> + * Remove one >> + */ >> +void unregister_shrinker(struct shrinker *shrinker) >> +{ >> + struct dentry *debugfs_entry; >> + int debugfs_id; >> + >> + if (!(shrinker->flags & SHRINKER_REGISTERED)) >> + return; >> + >> + shrinker_put(shrinker); >> + wait_for_completion(&shrinker->completion_wait); >> + >> + mutex_lock(&shrinker_mutex); >> + list_del_rcu(&shrinker->list); > > Should this function wait for RCU grace period(s) before it goes > touching shrinker fields? Why? We will free this shrinker instance by rcu after executing unregister_shrinker(). So it is safe to touch shrinker fields here. > >> + shrinker->flags &= ~SHRINKER_REGISTERED; >> + if (shrinker->flags & SHRINKER_MEMCG_AWARE) >> + unregister_memcg_shrinker(shrinker); >> + debugfs_entry = shrinker_debugfs_detach(shrinker, &debugfs_id); >> + mutex_unlock(&shrinker_mutex); >> + >> + shrinker_debugfs_remove(debugfs_entry, debugfs_id); >> + >> + kfree(shrinker->nr_deferred); >> + shrinker->nr_deferred = NULL; >> +} >> +EXPORT_SYMBOL(unregister_shrinker); > > [..] > >> +void shrinker_free(struct shrinker *shrinker) >> +{ >> + kfree(shrinker); >> +} >> +EXPORT_SYMBOL(shrinker_free); >> + >> +void unregister_and_free_shrinker(struct shrinker *shrinker) >> +{ >> + unregister_shrinker(shrinker); >> + kfree_rcu(shrinker, rcu); >> +} > > Seems like this > > unregister_shrinker(); > shrinker_free(); > > is not exact equivalent of this > > unregister_and_free_shrinker(); Yes, my original intention is that shrinker_free() is only used to handle the case where register_shrinker() returns failure. I will implement the method suggested by Dave in 02/29. Those APIs are more concise and will bring more benefits. :) Thanks, Qi