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 77A48C25B0E for ; Mon, 15 Aug 2022 12:53:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 03AD28D0003; Mon, 15 Aug 2022 08:53:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0123B6B0074; Mon, 15 Aug 2022 08:53:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DCF928D0003; Mon, 15 Aug 2022 08:53:20 -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 CEEE26B0073 for ; Mon, 15 Aug 2022 08:53:20 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 9FF541A0586 for ; Mon, 15 Aug 2022 12:53:20 +0000 (UTC) X-FDA: 79801817760.03.8DBDC04 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by imf09.hostedemail.com (Postfix) with ESMTP id 4D0B11401BA for ; Mon, 15 Aug 2022 12:53:20 +0000 (UTC) Received: by mail-pf1-f178.google.com with SMTP id p125so6555818pfp.2 for ; Mon, 15 Aug 2022 05:53:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc; bh=co6YM38a8jvkjYh9qR4RcuYv4R07zYjf/Xsw62n2KqY=; b=H92NwGpKE/exvG0avDjd99u/O0URfjDeDINWuADGWhu/7jgwQczceKPYIVV29TEk9r 2mLaBxjc3ysN/Q3OPKcQ2+4vg2H8pmxTp5opaCAgi5K1Hq0ZSOxmrIS5aCal1H+xnKY2 ds9R0TF35/zq8cAaT6zyYXHh4fvIbIZNsuHsMG73B8qO1V/T15GLCW4vewxWwrCksP3j GF4T5mxJTXYmI6GkLZKe8VNOj3dWXfXQGGyU8WpBTaxlrYbtbosXpi+npOLbDTCw3dDn XVPEWgbj3Hnri6GBXALGl6nmN5+lnMqbl9LtbBtyJzmg17XtCzQFSYQqJUbWkdm2U4fQ y3TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=co6YM38a8jvkjYh9qR4RcuYv4R07zYjf/Xsw62n2KqY=; b=NRTDqB7NgLjVsL2cU2J1FWY7cu2usKKClQgDFNKv8JEfFoax4x+oPz2qF2cSJKOYRO sad2KgE5TpSyrspJ3lgA71guYXdfMlYSw9EV+chYvVh1ALzY2zBviaJUd08l3ffDbcKC cq6n7NNVKxOc468iVZnnwJeeCwzhywYYC0pJKikwaZslkJWlNcwuxJqcziQiReupuLD7 ocZM2LWnNTERRSetxGHYWRTM4Onyr72dIngISMAjTCfG1eJa/SxNK0GJkY2ZxdQtgoKm b+dSCPqsSZBNzUvtxgYC3zZHmi42LA4AL1HPGcykR9B2SsPIyenfkE2vJGeI1RiOkM3L oBwA== X-Gm-Message-State: ACgBeo3d86/itUKe87nlAjG7X5Xf7ahK9wajYeIpkJT7mNdpqlyF/JxY 5TnVZuJk8V3xSC7UFDFvaSA= X-Google-Smtp-Source: AA6agR4A/GdDzw4WyX6/qSA2/jIFdZteS0ZD12zNIgo/iFOEltk/AEKmKvz9WddG2Nyez12WaRadZw== X-Received: by 2002:a05:6a00:22ca:b0:52e:9596:8b1e with SMTP id f10-20020a056a0022ca00b0052e95968b1emr16271608pfj.3.1660567999171; Mon, 15 Aug 2022 05:53:19 -0700 (PDT) Received: from hyeyoo ([114.29.91.56]) by smtp.gmail.com with ESMTPSA id l10-20020a17090a4d4a00b001efa332d365sm4441024pjh.33.2022.08.15.05.53.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Aug 2022 05:53:18 -0700 (PDT) Date: Mon, 15 Aug 2022 21:53:12 +0900 From: Hyeonggon Yoo <42.hyeyoo@gmail.com> To: Vlastimil Babka Cc: Rongwei Wang , Christoph Lameter , Joonsoo Kim , David Rientjes , Pekka Enberg , Roman Gushchin , linux-mm@kvack.org, Sebastian Andrzej Siewior , Thomas Gleixner , Mike Galbraith Subject: Re: [PATCH 4/5] mm/slub: convert object_map_lock to non-raw spinlock Message-ID: References: <20220812091426.18418-1-vbabka@suse.cz> <20220812091426.18418-5-vbabka@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220812091426.18418-5-vbabka@suse.cz> ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1660568000; 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=co6YM38a8jvkjYh9qR4RcuYv4R07zYjf/Xsw62n2KqY=; b=s8duURh/sCU7XALTVwfnZmzS1ek3oj+Kf0G8fC259DsuLp3g0RNs2/h1oNMwNoR5l6QiXl GweuKUN75AK1wy8U1Iu29999OsjxM9ZSh6cHjCfwJ+rWqWAdE6EvgXlZFTvwvH53Oxq9Es I+H2VturmqGOtzqPVlseo2pYsbPlzcg= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=H92NwGpK; spf=pass (imf09.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1660568000; a=rsa-sha256; cv=none; b=odri1kky7onhwA2eTAao9y32KDieM3PfERQ7KjjgA0PM3vtPay+yH9vinQtceXM7j7kPbe tlZvVHqkDHdENSzFdCazaTsSLXpom5QTjm+OSpR3JQ0h/geKHcsYUgJIhkRcnkuWwKjWzN CkFlQTOwNUuMOLCllQb6B8bqIysZUMs= X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 4D0B11401BA X-Rspam-User: Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=H92NwGpK; spf=pass (imf09.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Stat-Signature: jqp7trtmghcs984394xko5gk8qsbn4zz X-HE-Tag: 1660568000-434900 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, Aug 12, 2022 at 11:14:25AM +0200, Vlastimil Babka wrote: > The only remaining user of object_map_lock is list_slab_objects(). > Obtaining the lock there used to happen under slab_lock() which implied > disabling irqs on PREEMPT_RT, thus it's a raw_spinlock. With the > slab_lock() removed, we can convert it to a normal spinlock. > > Also remove the get_map()/put_map() wrappers as list_slab_objects() > became their only remaining user. > > Signed-off-by: Vlastimil Babka > --- > mm/slub.c | 36 ++++++------------------------------ > 1 file changed, 6 insertions(+), 30 deletions(-) > > diff --git a/mm/slub.c b/mm/slub.c > index 32b79bc3ae6d..dffb5063acbf 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -565,7 +565,7 @@ static inline bool cmpxchg_double_slab(struct kmem_cache *s, struct slab *slab, > > #ifdef CONFIG_SLUB_DEBUG > static unsigned long object_map[BITS_TO_LONGS(MAX_OBJS_PER_PAGE)]; > -static DEFINE_RAW_SPINLOCK(object_map_lock); > +static DEFINE_SPINLOCK(object_map_lock); > > static void __fill_map(unsigned long *obj_map, struct kmem_cache *s, > struct slab *slab) > @@ -599,30 +599,6 @@ static bool slab_add_kunit_errors(void) > static inline bool slab_add_kunit_errors(void) { return false; } > #endif > > -/* > - * Determine a map of objects in use in a slab. > - * > - * Node listlock must be held to guarantee that the slab does > - * not vanish from under us. > - */ > -static unsigned long *get_map(struct kmem_cache *s, struct slab *slab) > - __acquires(&object_map_lock) > -{ > - VM_BUG_ON(!irqs_disabled()); > - > - raw_spin_lock(&object_map_lock); > - > - __fill_map(object_map, s, slab); > - > - return object_map; > -} > - > -static void put_map(unsigned long *map) __releases(&object_map_lock) > -{ > - VM_BUG_ON(map != object_map); > - raw_spin_unlock(&object_map_lock); > -} > - > static inline unsigned int size_from_object(struct kmem_cache *s) > { > if (s->flags & SLAB_RED_ZONE) > @@ -4368,21 +4344,21 @@ static void list_slab_objects(struct kmem_cache *s, struct slab *slab, > { > #ifdef CONFIG_SLUB_DEBUG > void *addr = slab_address(slab); > - unsigned long flags; > - unsigned long *map; > void *p; > > slab_err(s, slab, text, s->name); > > - map = get_map(s, slab); > + spin_lock(&object_map_lock); > + __fill_map(object_map, s, slab); > + > for_each_object(p, s, addr, slab->objects) { > > - if (!test_bit(__obj_to_index(s, addr, p), map)) { > + if (!test_bit(__obj_to_index(s, addr, p), object_map)) { > pr_err("Object 0x%p @offset=%tu\n", p, p - addr); > print_tracking(s, p); > } > } > - put_map(map); > + spin_unlock(&object_map_lock); > #endif > } > > -- > 2.37.1 > Looks good to me. Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> -- Thanks, Hyeonggon