Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp515080ybk; Wed, 20 May 2020 05:32:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy+hWTxxMrECBdhVzxWojv9TNBU753cX6KC91wlYFwv8DZiJmFKconLAGJcltPe2xhgHzJ8 X-Received: by 2002:a17:906:68d2:: with SMTP id y18mr3626104ejr.248.1589977959619; Wed, 20 May 2020 05:32:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589977959; cv=none; d=google.com; s=arc-20160816; b=slIdCrCDTXj+OomVeORhnn7StyPRTMzDfx4lY6KQ20mm8ocOKoPERX9Qso20ggPYN5 a/zLWlkbi0KDA5pnkTce/1h/b2kJ7EtbC6i0Q+/qU2XMjEotxUH0uX3/I/JSBQG44Y8z meEkJUs2RcmPZQ+JiGHLCSTOeB2dsHBBWLDMXpsEd9Oi9wLOj90ws0Kr20qcm3i7ftd5 h9VUSNudMisTWGIPEaQWfCWRin+ebXHI+Do/Fg1KFm+CUrPWAWFdGEtfJmyFTTg83MAq YRKsgu4QYyL1blWyq8FziIQkIW6eJRShRkkpD4xpKEbUrUvXzq4qujH7gAPoQazMYkFW KfFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from; bh=jHadF8IYS4zjJPQykBckPwK+clMzswuwL/qyIOd2g1k=; b=ScX7fFZvTMZbHIWaDHZxYWN/GCHbc7mZeIzLOjveZ59VtIirwBqaohSY1ejZfRSLn6 5eyz4ecoShROEYd0cRzc2khjp+/cbxCZDnpTKOtQ8vekn9VNxoaONf0z/w7yD8Ungs7P 3ary8B3DmqW0qG4CNaOvkFPgVGx9J78RDXioqRvv4FFoL02cIAjrHXpukweWD/oLOjX4 4Zt4TN7rWaqF9Ls06OXFEKYM5JSecesrp7NLI7dJtZvGcON0BRlXMwJ6NLdtI+C2G/Te 550Uoju9b3ObNw35+CuTanCcdmM0jycju1zTIfvRNuaMEDxdW3AGTeJ/Suw+YRlDjrRC uOsw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id oq26si1543589ejb.727.2020.05.20.05.32.15; Wed, 20 May 2020 05:32:39 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726650AbgETM2k (ORCPT + 99 others); Wed, 20 May 2020 08:28:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726452AbgETM2k (ORCPT ); Wed, 20 May 2020 08:28:40 -0400 Received: from Galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2081AC061A0E; Wed, 20 May 2020 05:28:40 -0700 (PDT) Received: from p5de0bf0b.dip0.t-ipconnect.de ([93.224.191.11] helo=nanos.tec.linutronix.de) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1jbNpT-0007eq-NN; Wed, 20 May 2020 14:28:11 +0200 Received: by nanos.tec.linutronix.de (Postfix, from userid 1000) id 1AC03100C99; Wed, 20 May 2020 14:28:11 +0200 (CEST) From: Thomas Gleixner To: Peter Zijlstra , Sebastian Andrzej Siewior Cc: linux-kernel@vger.kernel.org, Ingo Molnar , Steven Rostedt , Will Deacon , "Paul E . McKenney" , Linus Torvalds , Matthew Wilcox , linux-fsdevel@vger.kernel.org Subject: Re: [PATCH 2/8] radix-tree: Use local_lock for protection In-Reply-To: <20200520102110.GE317569@hirez.programming.kicks-ass.net> References: <20200519201912.1564477-1-bigeasy@linutronix.de> <20200519201912.1564477-3-bigeasy@linutronix.de> <20200520102110.GE317569@hirez.programming.kicks-ass.net> Date: Wed, 20 May 2020 14:28:11 +0200 Message-ID: <874ksa6bac.fsf@nanos.tec.linutronix.de> MIME-Version: 1.0 Content-Type: text/plain X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Peter Zijlstra writes: > On Tue, May 19, 2020 at 10:19:06PM +0200, Sebastian Andrzej Siewior wrote: >> @@ -64,6 +64,7 @@ struct radix_tree_preload { >> struct radix_tree_node *nodes; >> }; >> static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, }; >> +static DEFINE_LOCAL_LOCK(radix_tree_preloads_lock); >> >> static inline struct radix_tree_node *entry_to_node(void *ptr) >> { > > So I'm all with Andrew on the naming and pass-by-pointer thing, but > also, the above is pretty crap. You want the local_lock to be in the > structure you're actually protecting, and there really isn't anything > stopping you from doing that. > > The below builds just fine and is ever so much more sensible. Right you are. It's pretty obvious now that you hit me over the head with it. Note to self: Remove the brown paperbag _before_ touching code.