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 568CFEB64DD for ; Fri, 23 Jun 2023 22:19:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9A0678D0002; Fri, 23 Jun 2023 18:19:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 950EA8D0001; Fri, 23 Jun 2023 18:19:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 819D28D0002; Fri, 23 Jun 2023 18:19:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 743F18D0001 for ; Fri, 23 Jun 2023 18:19:24 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 2BC73B0EEF for ; Fri, 23 Jun 2023 22:19:24 +0000 (UTC) X-FDA: 80935429848.16.40313C0 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by imf20.hostedemail.com (Postfix) with ESMTP id 293421C000E for ; Fri, 23 Jun 2023 22:19:20 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=fromorbit-com.20221208.gappssmtp.com header.s=20221208 header.b=lhK6GKfD; spf=pass (imf20.hostedemail.com: domain of david@fromorbit.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687558761; 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=mD+HWl2aEG73j6Ak2J3eZjmDfUV1ZAzR4FiFGaQDP6g=; b=dVJYhUpt4sAyp7k9UjSjhlcqwjMu57Wt/GgxKxXufBWwbMTrSTp6rNPvyYGoelG26Sx3Hk au4N2NbRd5HMomLZM8juWVZRHnhMsP8v4G9yL+pJ4+5dFxGvVtLN1uqEYdaBoQCyoxrqGn xrU5Pl0pMP4pV7hbb4svzBK16bS8rwY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687558761; a=rsa-sha256; cv=none; b=1Ir5K7u2+UybVl88StWRGplF/SPWEZAXHaey2Hm5YnkYyHScxL7fpQoWyUQpETG3hP3spM SBJrgSgeC7lkrk6AQMN9V4OC/I37c+G3tFsQjVUtpp4BfHHb6B6xmcfGBox0313Zm3GjtA 1Qu5VrwMa7tbxC4jWb/w8enOx7RSZeA= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=fromorbit-com.20221208.gappssmtp.com header.s=20221208 header.b=lhK6GKfD; spf=pass (imf20.hostedemail.com: domain of david@fromorbit.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-6686a05bc66so780474b3a.1 for ; Fri, 23 Jun 2023 15:19:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20221208.gappssmtp.com; s=20221208; t=1687558760; x=1690150760; 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=mD+HWl2aEG73j6Ak2J3eZjmDfUV1ZAzR4FiFGaQDP6g=; b=lhK6GKfDyI3S2QEkidlKI9Ek7fIdf8s37/5sqH0oYikZjcY7jput4UDyCpFr2NTdT8 zVyRwANCpkSqZtLXi737KASfNRL8jzfb+T40RkB84q+J2KMVe792KQuGyG75zUe1uU9/ y8KvlnU3EwX/2kXOOlbwtshnDERQlNsq270xMVedNytpu7Z+d6cUbBidgJ6X6DjHIzPN 7j8fd31lnOvF/aMkMY7bUu4o0IY8LUCtjYfDI1XbfU7cyMWriXOuApAvFBa9TAUUYDHZ fQEMipnVJ6GJpcYxmPtjY5bvv9Ob+7MwsmiucWVnjVO5xA+M617znVGuQZS0X5eWOQ0u zyUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687558760; x=1690150760; 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=mD+HWl2aEG73j6Ak2J3eZjmDfUV1ZAzR4FiFGaQDP6g=; b=QNKaiQFnX7Xzt9NnLpJkO86sD4u5rOhzsuvzrgYN1/0jUD++i1kDao/yNDEJDnWEcA 7a9F8JAnUFEnOH7jLndiw+C8K6oQk806sSK1TEmOeUpWHXs6/OURZ/xlofrIgtyWLYLt vIGe/+tULHTTeBBjcDRR5Ix//InMSRMOTMqsQycA23S6p41hjGCtY1fw5l42M/xFxjSx zHtUPzxU0IwHoUAzOqKC7YFwXaspK/E7Bav4D/UmSdOfXk6zue2cKXvdbxIPLQFvV00X PuEId6+gEFM+5onAXoSwaHKvujexI2XibhQ9fbj1tqwu1DNjEOW2mBiu/mCawM7C8hqU JzZg== X-Gm-Message-State: AC+VfDxJiOuSjhfIpqIlWe9nxZP9FBFfaDNwmOZUW0CI2b3d5rreq50b OwrcvL6Bv6FPhJMvpB3BR0pbag== X-Google-Smtp-Source: ACHHUZ6Wu9ky21UYgtgHUmTHayjznwHVfcTzLH8QgkKVoWewOSRi12/4tLQSsphqEkidSt1h32qo3g== X-Received: by 2002:a05:6a20:4410:b0:121:7454:be2a with SMTP id ce16-20020a056a20441000b001217454be2amr17133223pzb.45.1687558759759; Fri, 23 Jun 2023 15:19:19 -0700 (PDT) Received: from dread.disaster.area (pa49-186-94-37.pa.vic.optusnet.com.au. [49.186.94.37]) by smtp.gmail.com with ESMTPSA id b17-20020a170902b61100b001ab0672fc1fsm58552pls.105.2023.06.23.15.19.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Jun 2023 15:19:19 -0700 (PDT) Received: from dave by dread.disaster.area with local (Exim 4.96) (envelope-from ) id 1qCp7a-00FP7U-2k; Sat, 24 Jun 2023 08:19:14 +1000 Date: Sat, 24 Jun 2023 08:19:14 +1000 From: Dave Chinner To: Qi Zheng Cc: Vlastimil Babka , paulmck@kernel.org, akpm@linux-foundation.org, tkhai@ya.ru, roman.gushchin@linux.dev, djwong@kernel.org, brauner@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 24/29] mm: vmscan: make global slab shrink lockless Message-ID: References: <20230622085335.77010-1-zhengqi.arch@bytedance.com> <20230622085335.77010-25-zhengqi.arch@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 293421C000E X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: x1hesokez7oqi675y1brumxduot933ed X-HE-Tag: 1687558760-623057 X-HE-Meta: U2FsdGVkX1+wQKcDzLajLr+cg03VW6cwHg1akWT+xoqDOmoc+6/V5yaK3stulEsWyZJNrGqerkDvJNWcR43dfavgamEkNoUWHmKLCrIzcJcabQMHGyrpqQE2XVFApApcFtqhx0SKKgKnusR4rfS/3i7/OQt2m9kKywW6+hl1cTIAMfQZaUAnYL5fc7FHOU9DHy/51LX+txxxp3A2vyfDA8A1aXdhVG1HOVggw1T0XW064Q2PTWf9qIQvvsEfVGEvtGUbE6uGZPYwdASW1dzsJMiRslO+35p4zGnNn8SfgsDVuNtJTwLbJ7cWso1lCeL7wcSIuhUFzmycbm6vYFe4lVk4/7jipxzlUWJ36Gye55KZ/SFUQnqNO7tyG4ueORsJR4ySMZj/dvtv1nc8ImYP1ERzvY2lFZMn8qdDwnELj3RkFILgyf5pCrBmj1NsyeCZ0WDBucPi6UYmWu9zTmdhoLjMv2iuv+DXpEPtVTw7Icio4XmyJotDdzAcpSjZWmY4/62mJHRJIzCSMIP0uJIMna1hZAaIo2UnTKdZWiu4Lqw5I1+FiYEZattWzQgvybvtwuPKm7Ofsn1+4du+eNnJAGpmIHkS5r4yU6gg9UbvNSG4S79yJSbmKHcRi8u1fbK+hK3g4JLops9j0OqdCA1LQfY7m8cVQmF0Pqnm5IwWnT4jtTcrVeZqaf721K29W7Hhe52LO00+CedVq8Xk+kgnRKQ0n5l528ToEyORQHAFCI3BNW0oBdOYF2cem2qmDpzr6/70iC10rc+noBzEvS8xZw6JerASpW0pzDv95J3kEMfbL/zF1QWLTfOEKYfmml4UQkYouR/GzmZuE9zJaFoQX+sZnMAnJhx8+RLyzWtMo7wtJ0KAsYnfw9lB+FSFh7H0m2ldJdpt051Y1aW8P2RbpNMpz9kbdUwnZrR4gkPiaSr+IEUhrTzPAGFdFwALOjSg8kPzYY3qP3mfS5hWfHg mCLI+zWO pGCgqXqNreSyEqfrXldNb56zBL+0Coe9JHorUiDmNb3OpdCdPyCiom2hmFfANGQzj7DVecLmwrbdGYwS0/cR0jUz6hm1zJQLS0CovaTJcSpUJrWElTTO5R7hAMsEWjl7rXpGijry4oIhiTk//wn9pg2A3VEBrcXETvTl6ENpESCT3oNZfs62+HpVhgL8w0LehMvRP/Rg6ULiR4AJgqGfQRGcN8C6z7SaycfLtSQHENMMl6mec0ckfLsRHc0UTNvKEXyoll3WuAQbnwFWG1uhza4XFPC8D7jjJjK0aHxtcphg10IBDSWW//wfPtjTfpRn3YBMVw0NpTwx6Kgda44RXxnCfKxhpljMwWUpWWS+8G4+LMn7fINox7RZCyGh9ALbT3xQD7O7Nr/NXr/Lwb1m+pXgT5UKF5VTRf+38CnkT57cvHbHEf7CqV94b5bt/fa44f9Cb 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 Fri, Jun 23, 2023 at 09:10:57PM +0800, Qi Zheng wrote: > On 2023/6/23 14:29, Dave Chinner wrote: > > On Thu, Jun 22, 2023 at 05:12:02PM +0200, Vlastimil Babka wrote: > > > On 6/22/23 10:53, Qi Zheng wrote: > > Yes, I suggested the IDR route because radix tree lookups under RCU > > with reference counted objects are a known safe pattern that we can > > easily confirm is correct or not. Hence I suggested the unification > > + IDR route because it makes the life of reviewers so, so much > > easier... > > In fact, I originally planned to try the unification + IDR method you > suggested at the beginning. But in the case of CONFIG_MEMCG disabled, > the struct mem_cgroup is not even defined, and root_mem_cgroup and > shrinker_info will not be allocated. This required more code changes, so > I ended up keeping the shrinker_list and implementing the above pattern. Yes. Go back and read what I originally said needed to be done first. In the case of CONFIG_MEMCG=n, a dummy root memcg still needs to exist that holds all of the global shrinkers. Then shrink_slab() is only ever passed a memcg that should be iterated. Yes, it needs changes external to the shrinker code itself to be made to work. And even if memcg's are not enabled, we can still use the memcg structures to ensure a common abstraction is used for the shrinker tracking infrastructure.... > If the above pattern is not safe, I will go back to the unification + > IDR method. And that is exactly how we got into this mess in the first place.... -Dave -- Dave Chinner david@fromorbit.com