From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752595AbdJSUxN (ORCPT ); Thu, 19 Oct 2017 16:53:13 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:35682 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752309AbdJSUxL (ORCPT ); Thu, 19 Oct 2017 16:53:11 -0400 Date: Thu, 19 Oct 2017 22:53:06 +0200 (CEST) From: Thomas Gleixner To: Bart Van Assche cc: "willy@infradead.org" , "mingo@kernel.org" , "linux-kernel@vger.kernel.org" , "peterz@infradead.org" , "byungchul.park@lge.com" , "linux-mm@kvack.org" , "kernel-team@lge.com" Subject: Re: [PATCH v2 2/3] lockdep: Remove BROKEN flag of LOCKDEP_CROSSRELEASE In-Reply-To: <1508445681.2429.61.camel@wdc.com> Message-ID: References: <1508392531-11284-1-git-send-email-byungchul.park@lge.com> <1508392531-11284-3-git-send-email-byungchul.park@lge.com> <1508425527.2429.11.camel@wdc.com> <1508428021.2429.22.camel@wdc.com> <1508444515.2429.55.camel@wdc.com> <20171019203313.GA10538@bombadil.infradead.org> <1508445681.2429.61.camel@wdc.com> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII 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 List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 19 Oct 2017, Bart Van Assche wrote: > On Thu, 2017-10-19 at 13:33 -0700, Matthew Wilcox wrote: > > For example, the page lock is not annotatable with lockdep -- we return > > to userspace with it held, for heaven's sake! So it is quite easy for > > someone not familiar with the MM locking hierarchy to inadvertently > > introduce an ABBA deadlock against the page lock. (ie me. I did that.) > > Right now, that has to be caught by a human reviewer; if cross-release > > checking can catch that, then it's worth having. > > Hello Matthew, > > Although I agree that enabling lock inversion checking for page locks is > useful, I think my questions still apply to other locking objects than page > locks. Why are other objects any different? lock(L) -> wait_for_completion(A) lock(L) -> complete(A) is a simple ABBA and they exist and have not been caught for a long time until they choked a production machine. Thanks, tglx