From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759477AbcHaIKA (ORCPT ); Wed, 31 Aug 2016 04:10:00 -0400 Received: from merlin.infradead.org ([205.233.59.134]:45004 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756381AbcHaIJ5 (ORCPT ); Wed, 31 Aug 2016 04:09:57 -0400 Date: Wed, 31 Aug 2016 10:09:49 +0200 From: Peter Zijlstra To: Guenter Roeck Cc: Oleg Nesterov , John Stultz , "Paul E. McKenney" , Ingo Molnar , lkml , Tejun Heo , Dmitry Shmidt , Rom Lemarchand , Colin Cross , Todd Kjos Subject: Re: [v2] locking/percpu-rwsem: Optimize readers and reduce global impact Message-ID: <20160831080949.GD10138@twins.programming.kicks-ass.net> References: <20160809095112.GG30192@twins.programming.kicks-ass.net> <20160831052102.GA14571@roeck-us.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160831052102.GA14571@roeck-us.net> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 30, 2016 at 10:21:02PM -0700, Guenter Roeck wrote: > Peter, > > The call to rcu_sync_is_idle() causes the following build error when building > x86_64:allmodconfig. > > ERROR: "rcu_sync_lockdep_assert" [kernel/locking/locktorture.ko] undefined! > ERROR: "rcu_sync_lockdep_assert" [fs/ext4/ext4.ko] undefined! > > I think this was also reported by the 0-day build bot. > > The simple fix would of course be to export rcu_sync_lockdep_assert. Before I > apply that change to the Android code (where the patch has been aplied and > the problem is seen) - do you by any chance have a better solution in mind ? Nope, that's exactly what Ingo did when he ran into this. If you look at commit 80127a39681b ("locking/percpu-rwsem: Optimize readers and reduce global impact"), you'll notice the last hunk: diff --git a/kernel/rcu/sync.c b/kernel/rcu/sync.c index be922c9f3d37..198473d90f81 100644 --- a/kernel/rcu/sync.c +++ b/kernel/rcu/sync.c @@ -68,6 +68,8 @@ void rcu_sync_lockdep_assert(struct rcu_sync *rsp) RCU_LOCKDEP_WARN(!gp_ops[rsp->gp_type].held(), "suspicious rcu_sync_is_idle() usage"); } + +EXPORT_SYMBOL_GPL(rcu_sync_lockdep_assert); #endif /**