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 BBBCCEB64D7 for ; Fri, 23 Jun 2023 05:26:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 35A8F8D0002; Fri, 23 Jun 2023 01:26:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3095C8D0001; Fri, 23 Jun 2023 01:26:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1D20D8D0002; Fri, 23 Jun 2023 01:26:05 -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 0DC9F8D0001 for ; Fri, 23 Jun 2023 01:26:05 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C63701C9088 for ; Fri, 23 Jun 2023 05:26:04 +0000 (UTC) X-FDA: 80932876248.24.A581396 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) by imf25.hostedemail.com (Postfix) with ESMTP id B4675A0011 for ; Fri, 23 Jun 2023 05:26:02 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=FE8O7Vw+; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf25.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.182 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687497962; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=I74A3FzNlMiWSwenHJ0qW6K9Kk3RrnXa52gDQFbNI94=; b=7IR7IuqGPK9Z7ttEtni739betBmjP0/YgZnZGlPSgoRDIHGwZMQ24y7l/8L0BS+e5Xr6bb oJgWz6diqr524WxJ1HCfmwn4KWi1zG1p5UueCuWH3yBXpbrm5QR7JJvBSeTy5rkqC/eK3P 0EvXWhcJjsggxcYMgmLnxfU5BaTWK48= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=FE8O7Vw+; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf25.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.182 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687497962; a=rsa-sha256; cv=none; b=vvugdFC0YqET6gCBoKnITM4D6d1t9KrBqdltIdG3Am3BL+KYm12WEidzYl8R3EYnXW94J7 hXH51/IgtpqFbj7bpDoT6n4d8BVRws8sfAu8RU9Cx679RzrV9hhMWUB7V9BvrJGJGN6q0I qDA98ZNIu/iw3QTs5MkgagA0L1fqExo= Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-1b539d2f969so2332625ad.0 for ; Thu, 22 Jun 2023 22:26:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1687497961; x=1690089961; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=I74A3FzNlMiWSwenHJ0qW6K9Kk3RrnXa52gDQFbNI94=; b=FE8O7Vw+I3Rj3/ymdkfv8Bc+lpDZ080s6kF+VZ6KYuJ8IcvSDzEvJHrYtehbevzDKJ k39KSog3mD45RBSDswKQweqzUA8WL0SL0uOXty3tY4QBaCgZzpYfPiVwVN0bS3NDj5Wp Vlnc7que1gB/FOXny+Xqd3OrpA8296BqQ44lM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687497961; x=1690089961; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=I74A3FzNlMiWSwenHJ0qW6K9Kk3RrnXa52gDQFbNI94=; b=JHhwLLo0mVc3UP9RGM4z4nN7eTNLa2T7WPUO02mqOZdwIl31+IC4k60C+Ijq52c8Ps dO9G8qvtoTjX/6O1QBNz0Dg/2ZrnNL5Mq65ALgQU89/3PZrpOU8RWfkxl3zDVPGO5AOZ 47zDih6wD0J/KCYsGSJoAUih6uOZFFFCwUvaFJw9+kii5YGaov5UkEiAAuHn49yrSPGa 19xH7UilYjRBuaSMJIRk0lVqigX1lpx3HOodtcp2WPY1b190DdgDi+kQmrmvcsaA5W34 cYxApttZi6QdzvAYKaEKh+d9DQY0CGsoLnJIlJMHKKx1/SVINjowShWuBo5wQ+IvzCgU OpJg== X-Gm-Message-State: AC+VfDyip89kdNC+KROTEHtcaUAZrqxW6p7o19/LZqQoxkonXVNCtUoF AAc77GBldND7nve/BS1SCR2+Ow== X-Google-Smtp-Source: ACHHUZ5sPbLx4vVXAJjIGembGjCJJyMTydKicDo1snyQX4c1P9pglVj/z3vqORh1yZ2I9l32bGJbWQ== X-Received: by 2002:a17:902:ecc6:b0:1ae:8fa:cd4c with SMTP id a6-20020a170902ecc600b001ae08facd4cmr41235916plh.7.1687497961344; Thu, 22 Jun 2023 22:26:01 -0700 (PDT) Received: from google.com ([2401:fa00:8f:203:3383:b451:fa2:1538]) by smtp.gmail.com with ESMTPSA id c1-20020a170902d48100b00192aa53a7d5sm6288753plg.8.2023.06.22.22.25.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Jun 2023 22:26:00 -0700 (PDT) Date: Fri, 23 Jun 2023 14:25:54 +0900 From: Sergey Senozhatsky To: Qi Zheng 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 Subject: Re: [PATCH 29/29] mm: shrinker: move shrinker-related code into a separate file Message-ID: <20230623052554.GA11471@google.com> References: <20230622085335.77010-1-zhengqi.arch@bytedance.com> <20230622085335.77010-30-zhengqi.arch@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230622085335.77010-30-zhengqi.arch@bytedance.com> X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: B4675A0011 X-Stat-Signature: nhkcatq1wrbr3uzb88gbru38pxm8yugd X-Rspam-User: X-HE-Tag: 1687497962-37331 X-HE-Meta: U2FsdGVkX1/b/MG9G+Cz+yQO1XUzKnIdaCQq6j34mOiEz/QEuUwgW5U0MwUvym86H9aOVF7HHooDliz/F60IZQYm/CUUd+MgnlDaCm/3JHZ5Y8vc8BQYsa0LiD+Ba6X0222G9puBwpa1utGnxo1lyO3KJ3UPXHXnGYHKQFrkz6UXgPc7LdXlDqaicBJszMgp37Lpf7TbudH/UcKjy4RXcEN/T5qEHqz1kbss0x9xYHn5M8h0XF4p+zv3u6GwNcKdd6cWV+NUMtQTJConHfWs7SFthBf72m4gyYAS8cEQX+i2pOZ8d/VywoFK9YHZjt+ms5yo4Fefbl2X2w8S7HRGy+kz+nE19ir2Qn6iNnp/4k9xKE7lUY6Ad4Sp4SxrHsmvng6zzg7qyQ/obl9l+ZrqnbPgyMMIXoKKPTLjcJnEfgZ9GTC+Y3boiS3fIvA97bXMfQ6PwLFL83Y7Jj/o+Cm9/6ri3e0lxe1CmHWpxWndY3NxKw852PaRms4RE42RUB0BA12fmYVMRHNG7fQsZyqccgX4UKXnzBIyC7oxPEkjlrvuRf7TC5hKYxvGNeVTToOfkVhu2eb/LH0pfbnFr5Th0sJdYVVpvAqBQpml/1ZCJDJy9tBAq1VdGFyFES9r+IqJwy92z+lO/InOANzui/SEXdB2MlKrLtHLSSx0t+stUX4459sutHXr5b9lny0Kr3WnKrhF+91djLVdHe/I88IXbR5k541m3OATToxie1SQY8MwC7dKbEdXikl/PAvSwB00N114fdIGh8Qv82I8tCjsNzFQ3LXxLpd/qrcczVx7qJrtliSQtToyPf3eYAthmMYSDJDBvFuRiA4Q9gADuWsXPOnxbtveK+/N9QyaNxgczujlr6TcyPgnWmH5xaIlpN+VLTxJsGKcX0gq0KJzvohBipiFMubkK0GEWiyZDyPLpHK66cJ5XNlIDDKV3hti9vPni4el7jDAy3t4+ncvAq9 xbSGsn5z 0TyiWRFSu9WyZ3FGUKEuk6JSfcPw7r31Q3EsoymjT6qFEaYCna2UIIBnLuFT07eMjEyETbw7rUofziHN3sAUYyJvxqqTA12JGvmyaU45F1pHRBgSeGrxQGXJV8AFecOUd+Ymq2F6gtH7giHiNpMcdZaWc/+h2z6hC2ebyPurxr2mX9odL3+q4lNw0mG27/7tMt9rDaDNOFRM25tifND2aOJtBqTzYop9mtDhWY8hEBURYjEGSY71oyGYbBZr1AmjGy+Z46d8jBcvjMu5HZ8T9QZu0ZS06hh9O6wktfnQXy++O6g+zuP92zkCu4M6RR115xF9FfDSy41Ph2aM= 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 (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? > + 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();