Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1049278ybl; Tue, 13 Aug 2019 06:40:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqxpr24OHXYSxHsX67nkOBSYu8GwOxfX0j4KRmqzqNCUnAno4pMZ1jxfCeomUnQbQ552tOXL X-Received: by 2002:a17:90a:35a7:: with SMTP id r36mr2323775pjb.17.1565703630800; Tue, 13 Aug 2019 06:40:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565703630; cv=none; d=google.com; s=arc-20160816; b=hfjaDjNZsf0SaF1+5NRurq+yWOCJLc9KAi1dXt2JnEfgxkfWmGUpb+fRxd7JEj/08C c7DZ2fZQKKV1l7CW4J3fyFny9ViuIWNpLGsYrtPI1P0dXi2QXVr98bSZIQm4zUZoadJQ PhTJmki787fmyERto21vWscEwd1oB4R20rtLpl01FbBEtnHzvLhaznlyi747fQ9//neB NZH6C6tP2ENNq3gkJHYqWeOXzAMSve7ae7IoMbQ4NGwfcJVXCDAGUI2W5JYVP5yT7yJL zVzE2FpPJPnTfakpJ1v3ONsniTobZ0pF7GSPhk9UJM/Yg5G9gTTz0CkDvdOooajjhZlm euxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=vZ4qRl5GH3pXgJ8QcX2FUPhCShp8z1W2H/JG9jmcgUQ=; b=Btfr9gaK/I49IeutOaif6wXq0fOHfEmi0QJGKmHqoqxFDBMwQdvH8rjpZy8UM5230/ maFOWZ4sSiBhbXwqReTBf9T5eMdjA4xnLwPeFIG4r8AUoD1qEtf0UT77tAyw4PJCzi4f sfURJVdK0V/G+Cn4QEmZre55qV+IWsUXUXc0zTj4cKiH4IruVOLl2Jt9lXd1MIosYCNh Dt2sC1k1sRzwv7uKOMOaUCK/gglOSxgdNVamKCiqyvP6A5Z0s8tz91/z36p4jbip8iKO 7OJnO0nSLGGzFhaJccOgCFBKL+tDtcwIcRvTRcAH+jVqSoBwKji6KUe5ksZ5tAyQVi9Q 2Vsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=CgzLkOQR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 64si58153545ply.15.2019.08.13.06.40.14; Tue, 13 Aug 2019 06:40:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=CgzLkOQR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729190AbfHMNjJ (ORCPT + 99 others); Tue, 13 Aug 2019 09:39:09 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:39941 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728267AbfHMNjJ (ORCPT ); Tue, 13 Aug 2019 09:39:09 -0400 Received: by mail-pf1-f196.google.com with SMTP id p184so51635723pfp.7 for ; Tue, 13 Aug 2019 06:39:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=vZ4qRl5GH3pXgJ8QcX2FUPhCShp8z1W2H/JG9jmcgUQ=; b=CgzLkOQRxuhEBOUF0+zsdgi+38LK9wvcRjrW6r3lKt70COM2JzjnuDbP5SugUaBvxV cMhuuKyfooHJ0nKm40NjAKVd8RDGEmlP2jKzXvGURL/Le3aTWeAt4xQ3EFku39ZEHvha Yx/SrOKhRweR9hM+s8WMsC705aD92V/qwTves= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=vZ4qRl5GH3pXgJ8QcX2FUPhCShp8z1W2H/JG9jmcgUQ=; b=s/Dlq+EIb5RIzq+It6HBsFBpVJKGHOdhHpKFMdjqRfk0JX3sk5d0cHBGFzUG/Nk916 uT/4o0pILP/KKT6CLon0O+hpHAgol8cMR6Dxs+s8CfN+DuiGsa4E9nd4EIVBvyXIT9ah sBbfMtxjfAZHLa8FNvptUpqlgrGrRjbO3Ut/obVQ/kfeFrH1IPtHz43Cr1SB1Sj8429E yadwGz4BVdjOVVdNJHjOqAF4WySxBdQEbIE+W/81kPSiH+rEDLqFgHs4RrUkMZ+JR0bx D/J72de4/gFFKkpcAqpDS6syLuwSpTwo//3UTUKMQeVhCJXn1N/S2Amhf4I5Df8EC3NN W+/w== X-Gm-Message-State: APjAAAWtOJ6G1kE07JnaIL6alltmnxRQOQ2Mhoovw+HUel/3KCUNMYpc WrlUbpHM1HovzTXhZjR8SH6km3/5lIQ= X-Received: by 2002:a62:8f91:: with SMTP id n139mr39294103pfd.48.1565703547842; Tue, 13 Aug 2019 06:39:07 -0700 (PDT) Received: from localhost ([2620:15c:6:12:9c46:e0da:efbf:69cc]) by smtp.gmail.com with ESMTPSA id j6sm7924175pje.11.2019.08.13.06.39.06 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 13 Aug 2019 06:39:06 -0700 (PDT) Date: Tue, 13 Aug 2019 09:39:05 -0400 From: Joel Fernandes To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, kernel-team@android.com, kbuild test robot , Josh Triplett , Lai Jiangshan , linux-doc@vger.kernel.org, Mathieu Desnoyers , "Paul E. McKenney" , "Rafael J. Wysocki" , rcu@vger.kernel.org, Steven Rostedt Subject: Re: [PATCH v2] driver/core: Fix build error when SRCU and lockdep disabled Message-ID: <20190813133905.GA258732@google.com> References: <20190812214918.101756-1-joel@joelfernandes.org> <20190813060540.GE6670@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190813060540.GE6670@kroah.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 13, 2019 at 08:05:40AM +0200, Greg Kroah-Hartman wrote: > On Mon, Aug 12, 2019 at 05:49:17PM -0400, Joel Fernandes (Google) wrote: > > Check if lockdep lock checking is disabled. If so, then do not define > > device_links_read_lock_held(). It is used only from places where lockdep > > checking is enabled. > > > > Also fix a bug where I was not checking dep_map. Previously, I did not > > test !SRCU configs so this got missed. Now it is sorted. > > > > Link: https://lore.kernel.org/lkml/201908080026.WSAFx14k%25lkp@intel.com/ > > Fixes: c9e4d3a2fee8 ("acpi: Use built-in RCU list checking for acpi_ioremaps list") > > (Based on RCU's dev branch) > > > > Cc: kernel-team@android.com > > Cc: kbuild test robot , > > Cc: Greg Kroah-Hartman , > > Cc: Josh Triplett , > > Cc: Lai Jiangshan , > > Cc: linux-doc@vger.kernel.org, > > Cc: Mathieu Desnoyers , > > Cc: "Paul E. McKenney" , > > Cc: "Rafael J. Wysocki" , > > Cc: rcu@vger.kernel.org, > > Cc: Steven Rostedt , > > > > Reported-by: kbuild test robot > > Signed-off-by: Joel Fernandes (Google) > > Nit, drop those blank lines above, should all be in one big "block"> Ok. > > drivers/base/core.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/base/core.c b/drivers/base/core.c > > index 32cf83d1c744..c22271577c84 100644 > > --- a/drivers/base/core.c > > +++ b/drivers/base/core.c > > @@ -97,10 +97,12 @@ void device_links_read_unlock(int not_used) > > up_read(&device_links_lock); > > } > > > > +#ifdef CONFIG_DEBUG_LOCK_ALLOC > > int device_links_read_lock_held(void) > > { > > - return lock_is_held(&device_links_lock); > > + return lock_is_held(&(device_links_lock.dep_map)); > > } > > +#endif > > I don't know what the original code looks like here, but I'm guessing > that some .h file will need to be fixed up as you are just preventing > this function from ever being present without that option enabled? No, it doesn't. I already thought about that and it is not an issue. I know this may be confusing because the patch I am fixing is not yet in mainline but in -rcu dev branch, however I did CC you on that RCU patch before but understandably it is not in the series so it was harder to review. Let me explain, the lock checking facility that this patch uses is here: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=dev&id=28875945ba98d1b47a8a706812b6494d165bb0a0 If you see, the CONFIG_PROVE_RCU_LIST defines an alternate __list_check_rcu() which is just a NOOP if CONFIG_PROVE_RCU_LIST=n. CONFIG_PROVE_RCU_LIST depends on CONFIG_PROVE_RCU which is def_bool on CONFIG_PROVE_LOCKING which selects CONFIG_DEBUG_LOCK_ALLOC. So there cannot be a scenario where CONFIG_PROVE_RCU_LIST is enabled but CONFIG_DEBUG_LOCK_ALLOC is disabled. To verify this, one could clone the RCU tree's dev branch and do this: Initially PROVE_RCU_LIST is not in config: joelaf@joelaf:~/repo/linux-master$ grep -i prove_rcu .config Neither is DEBUG_LOCK_ALLOC: joelaf@joelaf:~/repo/linux-master$ grep -i debug_lock .config # CONFIG_DEBUG_LOCK_ALLOC is not set Enable all configs: joelaf@joelaf:~/repo/linux-master$ ./scripts/config -e CONFIG_RCU_EXPERT joelaf@joelaf:~/repo/linux-master$ ./scripts/config -e CONFIG_PROVE_LOCKING joelaf@joelaf:~/repo/linux-master$ ./scripts/config -e CONFIG_PROVE_RCU joelaf@joelaf:~/repo/linux-master$ ./scripts/config -e CONFIG_PROVE_RCU_LIST joelaf@joelaf:~/repo/linux-master$ make olddefconfig DEBUG_LOCK_ALLOC shows up: joelaf@joelaf:~/repo/linux-master$ grep -i debug_lock_all .config CONFIG_DEBUG_LOCK_ALLOC=y So does PROVE_RCU options: joelaf@joelaf:~/repo/linux-master$ grep -i prove_rcu .config CONFIG_PROVE_RCU=y CONFIG_PROVE_RCU_LIST=y Now, force disable DEBUG_LOCK_ALLOC: joelaf@joelaf:~/repo/linux-master$ ./scripts/config -d CONFIG_DEBUG_LOCK_ALLOC joelaf@joelaf:~/repo/linux-master$ make olddefconfig Options are still enabled: joelaf@joelaf:~/repo/linux-master$ grep -i debug_lock .config CONFIG_DEBUG_LOCK_ALLOC=y joelaf@joelaf:~/repo/linux-master$ grep -i prove_rcu .config CONFIG_PROVE_RCU=y CONFIG_PROVE_RCU_LIST=y thanks, - Joel