From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo Molnar Subject: Re: [PATCH] lglock: Use spinlock_t instead of arch_spinlock_t Date: Tue, 31 Mar 2015 11:17:34 +0200 Message-ID: <20150331091734.GA17126@gmail.com> References: <1427382128-12541-1-git-send-email-daniel.wagner@bmw-carit.de> <20150326160325.GA21418@twins.programming.kicks-ass.net> <5518E838.4000409@bmw-carit.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Peter Zijlstra , Jeff Layton , Ingo Molnar , Alexander Viro , "J. Bruce Fields" , Thomas Gleixner , Andi Kleen , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Daniel Wagner Return-path: Received: from mail-wi0-f181.google.com ([209.85.212.181]:33133 "EHLO mail-wi0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752065AbbCaJRj (ORCPT ); Tue, 31 Mar 2015 05:17:39 -0400 Content-Disposition: inline In-Reply-To: <5518E838.4000409@bmw-carit.de> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: * Daniel Wagner wrote: > On 03/26/2015 05:03 PM, Peter Zijlstra wrote: > > On Thu, Mar 26, 2015 at 04:02:08PM +0100, Daniel Wagner wrote: > >> @@ -67,9 +67,9 @@ void lg_global_lock(struct lglock *lg) > >> preempt_disable(); > >> lock_acquire_exclusive(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_); > >> for_each_possible_cpu(i) { > >> - arch_spinlock_t *lock; > >> + spinlock_t *lock; > >> lock = per_cpu_ptr(lg->lock, i); > >> - arch_spin_lock(lock); > >> + spin_lock(lock); > >> } > >> } > > > > Nope, that'll blow up in two separate places. > > > > One: lockdep, it can only track a limited number of held locks, and it > > will further report a recursion warning on the 2nd cpu. > > I was wondering why I haven't seen it explode. As it turns out I haven't > looked closely enough at dmesg: > > [ +0.001231] BUG: MAX_LOCK_DEPTH too low! > [ +0.000092] turning off the locking correctness validator. Yeah, we try really hard to not crash the kernel from debugging code, whenever we can avoid it! That sometimes creates a false sense of good kernel health. Thanks, Ingo