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 9271CC4332F for ; Fri, 21 Oct 2022 10:43:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 173468E0002; Fri, 21 Oct 2022 06:43:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1245D8E0001; Fri, 21 Oct 2022 06:43:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F2D9C8E0002; Fri, 21 Oct 2022 06:43:46 -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 E34818E0001 for ; Fri, 21 Oct 2022 06:43:46 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id AFD6A80287 for ; Fri, 21 Oct 2022 10:43:46 +0000 (UTC) X-FDA: 80044620852.21.085B452 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by imf28.hostedemail.com (Postfix) with ESMTP id 18B7BC000D for ; Fri, 21 Oct 2022 10:43:44 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 5A35C2271B; Fri, 21 Oct 2022 10:43:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1666349023; h=from:from:reply-to: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; bh=TA7eXrG7O3B23odrrkOkZeSr4Pfu3eeY9ko+Mp8d0go=; b=xUaaGYFVu0gPmo4L0tL7e2f/7X+LfimgY+c5ACBUf69XBQbcB02ILZ/tCQYZAgjM5UbdyG iCfJWI4RiCd1S/0BiNU3udYY8iRbJEbKOY0LW2ScOuS0wj0SqgX1CHZ0v4Vc/7j3XPvHsv 6eIZ2eiF1f0AM+0sBOpg/ZvebBQ9SEE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1666349023; h=from:from:reply-to: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; bh=TA7eXrG7O3B23odrrkOkZeSr4Pfu3eeY9ko+Mp8d0go=; b=OUEt6dx5IOWptug7O299I3fq+sUl422kxESBxABV83D15QaX2vFZpaGPgRGbKzzwPWNulT qEtinpFISPFgwpAg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 344E51331A; Fri, 21 Oct 2022 10:43:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id FIktDN93UmPAJAAAMHmgww (envelope-from ); Fri, 21 Oct 2022 10:43:43 +0000 Message-ID: <82e8147e-f031-6bc2-9395-56d2052e62cb@suse.cz> Date: Fri, 21 Oct 2022 12:43:42 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.3 Subject: Re: [PATCH] mm/slub: remove dead code for debug caches on deactivate_slab() To: Hyeonggon Yoo <42.hyeyoo@gmail.com>, Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton , Roman Gushchin Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20221014114322.97512-1-42.hyeyoo@gmail.com> Content-Language: en-US From: Vlastimil Babka In-Reply-To: <20221014114322.97512-1-42.hyeyoo@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1666349025; a=rsa-sha256; cv=none; b=nY0YfehRUN8bosFfG7N5xPQGXAebn2mYEtZCRq0SHuCXJNXD6lTmcrKC/aRCvqfHW/qtp0 5vrGGT+fU3sdYWgnus6TMjemybBqQUpq+knU2r7O8Z360zMJWT4TtBLB7wielEYQ4tjD13 P0nhjol/GqavdWLv0DXfB7l93fgF4DI= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=xUaaGYFV; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=OUEt6dx5; dmarc=none; spf=pass (imf28.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.28 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1666349025; 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=TA7eXrG7O3B23odrrkOkZeSr4Pfu3eeY9ko+Mp8d0go=; b=fDqp9BU2M4yEOJuKyKKKwnaHMmzc1SKCb7t/S46kb5qkId91tU2mQevcufMSwAotYEXASZ U1RY1CJ3fRiniON3bxHSjMxZoHFvRn7hxq/S1lEkjebVvh+tgHDz3TpOvVO4gf/EbCbPRE aMMRywZ44fmPeChpCqmsN03U/bhRwZQ= Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=xUaaGYFV; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=OUEt6dx5; dmarc=none; spf=pass (imf28.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.28 as permitted sender) smtp.mailfrom=vbabka@suse.cz X-Rspamd-Server: rspam04 X-Rspam-User: X-Stat-Signature: qhyburn8edu7gbdryspwzq5s41gw1zkm X-Rspamd-Queue-Id: 18B7BC000D X-HE-Tag: 1666349024-916214 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 10/14/22 13:43, Hyeonggon Yoo wrote: > After commit c7323a5ad0786 ("mm/slub: restrict sysfs validation to debug > caches and make it safe"), SLUB does not take a slab from partial list for I'm confused by "SLUB does not take a slab from partial list" here. Did you mean something like "SLUB never installs (even temporarily) a percpu slab for debug caches"? So that means we never deactivate percpu slabs for debug caches. And since debug caches are also the only ones that use the full list, we no longer need to care about the full list in deactivate_slab(), right? > debug caches. As deactivation isn't needed anymore, remove dead code. > > Signed-off-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> Otherwise it looks correct to me, just wanted to clarify I'm not missing something. > --- > mm/slub.c | 16 ++-------------- > 1 file changed, 2 insertions(+), 14 deletions(-) > > diff --git a/mm/slub.c b/mm/slub.c > index 96dd392d7f99..e2215240954d 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -2411,7 +2411,7 @@ static void init_kmem_cache_cpus(struct kmem_cache *s) > static void deactivate_slab(struct kmem_cache *s, struct slab *slab, > void *freelist) > { > - enum slab_modes { M_NONE, M_PARTIAL, M_FULL, M_FREE, M_FULL_NOLIST }; > + enum slab_modes { M_NONE, M_PARTIAL, M_FREE, M_FULL_NOLIST }; > struct kmem_cache_node *n = get_node(s, slab_nid(slab)); > int free_delta = 0; > enum slab_modes mode = M_NONE; > @@ -2487,14 +2487,6 @@ static void deactivate_slab(struct kmem_cache *s, struct slab *slab, > * acquire_slab() will see a slab that is frozen > */ > spin_lock_irqsave(&n->list_lock, flags); > - } else if (kmem_cache_debug_flags(s, SLAB_STORE_USER)) { > - mode = M_FULL; > - /* > - * This also ensures that the scanning of full > - * slabs from diagnostic functions will not see > - * any frozen slabs. > - */ > - spin_lock_irqsave(&n->list_lock, flags); > } else { > mode = M_FULL_NOLIST; > } > @@ -2504,7 +2496,7 @@ static void deactivate_slab(struct kmem_cache *s, struct slab *slab, > old.freelist, old.counters, > new.freelist, new.counters, > "unfreezing slab")) { > - if (mode == M_PARTIAL || mode == M_FULL) > + if (mode == M_PARTIAL) > spin_unlock_irqrestore(&n->list_lock, flags); > goto redo; > } > @@ -2518,10 +2510,6 @@ static void deactivate_slab(struct kmem_cache *s, struct slab *slab, > stat(s, DEACTIVATE_EMPTY); > discard_slab(s, slab); > stat(s, FREE_SLAB); > - } else if (mode == M_FULL) { > - add_full(s, n, slab); > - spin_unlock_irqrestore(&n->list_lock, flags); > - stat(s, DEACTIVATE_FULL); > } else if (mode == M_FULL_NOLIST) { > stat(s, DEACTIVATE_FULL); > }