Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1435272ybt; Sun, 14 Jun 2020 23:25:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwArzRWHPeEFN5sO6QGiNggVf6d5nlRh7JmAWHy4aKR4zispZ43kk24hAiTBAxuUu50yjS1 X-Received: by 2002:aa7:c71a:: with SMTP id i26mr22236154edq.149.1592202335559; Sun, 14 Jun 2020 23:25:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592202335; cv=none; d=google.com; s=arc-20160816; b=0wk+httuIIC93A5faDBWQIE5s9OMq3umePc1mFVUv8Zqx7Y5LNLW8u4VDFL7W+w3D3 KT8VX9xCMCsg1x6oSx76brJE//6bU08zXtFTLq8/FCQKKnN19GAfUDHKc4Fe2F45eUrR GROB5Aww4gyyrT9Lv/LYHj97Zmv/+GSp17cWKxDkjTp+arFv2TnybQ8nqkoARprqjHoD IXkdaZpQqGnv6Hr01oMd9EimVObJa5SCREdtcSn5RPivtK+G3LcLyhT1VXfzNsjX2KUs j2T4zcJ6wgg+VBTe7K0aoL0yL4zs5vwCTkOtMVHtsneu8y2RtZdsa+1GtWy+jGy9waGe JLfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=u1aMWbf91EME1dQ55dwYmEZLJPJcrTDI7r5Xx36ru2E=; b=T8Yzo14F+qF2AcJua/w5gMPbTDC5uqmztVV1RFZMg5kfe49HaJWoEQNcfky5ueGbgK QyqodHUPJ6MVGwEyIC4TrDSs+E/y44QJiUn8FEBgXoz1UqQ62j6a5H6m+S0Tz7MK5Vl3 LNTcgZu+nGn+Sofj1173lguuOexmNTwLsvD/Ayg0Z5ylEaxWA3RjkRsYRCNH4SWEExuu V3KNa6yplQxJ1nUjiLnk71Tf4vgv020o9utq0Od/yVsLCkdW/x5pa8k4D4xgq+kC+eXS WTrsx8kPEg/d+qys8G1BqbvcpM6BDT1bnXDh/gEQfYiZ/9GiCYVT1AQhEykMtQi/9qo3 8QaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="tuLq/owq"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id fx23si8574648ejb.22.2020.06.14.23.25.13; Sun, 14 Jun 2020 23:25:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="tuLq/owq"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728415AbgFOGXM (ORCPT + 99 others); Mon, 15 Jun 2020 02:23:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728303AbgFOGXM (ORCPT ); Mon, 15 Jun 2020 02:23:12 -0400 Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB364C061A0E for ; Sun, 14 Jun 2020 23:23:11 -0700 (PDT) Received: by mail-qk1-x742.google.com with SMTP id g28so14754114qkl.0 for ; Sun, 14 Jun 2020 23:23:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=u1aMWbf91EME1dQ55dwYmEZLJPJcrTDI7r5Xx36ru2E=; b=tuLq/owqSmSJaSBZ4l9Dt2wlgk2I4yQ5LI0bpu+aIXLb4ixIBhf/e44oRIk/ewJ48U yjPeb9jvqzG/fhWVKf5PaPKJxQ6zq3+tG2DUJCt+R78jDOIzz86TjP2gILlp7YemfrKP eKdf72e1cP9V3bRS4ZkVtKhI1ql2y3WQAa0NTSNRVi2DpVje9SP45YOxf47jbMN7yCiC Gxbj2APayCxKpGtlXV1myMKNR0ZESC1rcTVklf3hfriaWgDSvQ7qqw/J7b2EkFdhoAv/ IOoS1rO248NufXvgqRwPhCcikLut9p+j2SUkWPVC43C3C+O83/e2P6IVnXf67xqemAUw dczA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=u1aMWbf91EME1dQ55dwYmEZLJPJcrTDI7r5Xx36ru2E=; b=Oau01sv5U386kzTkSzbSKjKqwSBwmwSNIIaXXjTFG5YDxg3irAcST1TC3khj6DXWXT A9DryHe0nrZFp0xCmDzMYm7nAim5PsWaIEVS3eODktDjLRbnf5UN31Hz5h41s8iPDnEp b99XOVA++9PSd9NVfEUkOMSVDvGjKMRjt+NQfFcyF2Dsg3CI48ftYtGU3O8R/DasHImL pcXEaVg25x8kt3+racPJYJTGni1EOdF+1EpRkVzSdrKoSjmGYdTtg8zEpnXIp/6oxU1/ QKp3NO4rP5UQu/7CXwASFhw71BgXKLz/Mwm/BVVlj7lYmK9GGjCnO9Vo03TJOBv2uQnz Kqsg== X-Gm-Message-State: AOAM530Zxfsy2BJ90Wo62AGP3Mp/d2RgrEoqx8UXM2NPPAfx3VYBJU1c r3K0Ser1Ikcg1eBnyKCIA3NO6k4c6SvGdib//cM= X-Received: by 2002:a37:624a:: with SMTP id w71mr14168388qkb.452.1592202191135; Sun, 14 Jun 2020 23:23:11 -0700 (PDT) MIME-Version: 1.0 References: <20200614123923.99189-1-songmuchun@bytedance.com> <20200614123923.99189-4-songmuchun@bytedance.com> In-Reply-To: <20200614123923.99189-4-songmuchun@bytedance.com> From: Joonsoo Kim Date: Mon, 15 Jun 2020 15:23:00 +0900 Message-ID: Subject: Re: [PATCH 3/3] mm/slub: Fix release all resources used by a slab cache To: Muchun Song Cc: Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton , Linux Memory Management List , LKML Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2020=EB=85=84 6=EC=9B=94 14=EC=9D=BC (=EC=9D=BC) =EC=98=A4=ED=9B=84 9:39, M= uchun Song =EB=8B=98=EC=9D=B4 =EC=9E=91=EC=84=B1: > > The function of __kmem_cache_shutdown() is that release all resources > used by the slab cache, while currently it stop release resources when > the preceding node is not empty. > > Signed-off-by: Muchun Song > --- > mm/slub.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/mm/slub.c b/mm/slub.c > index b73505df3de2..4e477ef0f2b9 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -3839,6 +3839,7 @@ bool __kmem_cache_empty(struct kmem_cache *s) > */ > int __kmem_cache_shutdown(struct kmem_cache *s) > { > + int ret =3D 0; > int node; > struct kmem_cache_node *n; > > @@ -3846,11 +3847,11 @@ int __kmem_cache_shutdown(struct kmem_cache *s) > /* Attempt to free all objects */ > for_each_kmem_cache_node(s, node, n) { > free_partial(s, n); > - if (node_nr_slabs(n)) > - return 1; > + if (!ret && node_nr_slabs(n)) > + ret =3D 1; > } I don't think that this is an improvement. If the shutdown condition isn't met, we don't need to process further. Just 'return 1' looks okay to me. And, with this change, sysfs_slab_remove() is called even if the shutdown is failed. It's better not to have side effects when failing. Thanks.