From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Subject: Re: Lockdep warning when using REGCACHE_RBTREE Date: Fri, 15 Jan 2016 10:45:41 +0100 Message-ID: <20160115094541.GH3421@worktop> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from casper.infradead.org (casper.infradead.org [85.118.1.10]) by gabe.freedesktop.org (Postfix) with ESMTPS id DDFAF6EB31 for ; Fri, 15 Jan 2016 01:45:47 -0800 (PST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Stefan Agner Cc: broonie@kernel.org, mingo@redhat.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKYW4gMTQsIDIwMTYgYXQgMDI6MzA6NTBQTSAtMDgwMCwgU3RlZmFuIEFnbmVyIHdy b3RlOgo+IEhpIE1hcmssCj4gCj4gSSBjdXJyZW50bHkgd29yayBvbiB0aGUgRENVIERSTSBkcml2 ZXIgKGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1Lykgb24gYQo+IExpbnV4IDQuNCBrZXJuZWwuIFdp dGggQ09ORklHX0xPQ0tERVAgZW5hYmxlZCBJIGdldCB0aGUgZm9sbG93aW5nCj4gd2FybmluZyBv biBzdGFydHVwOgo+IAo+IFsgICAgMS4zMjcyODRdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0t LS0tLS0tLS0tLQo+IFsgICAgMS4zMzIwMTBdIFdBUk5JTkc6IENQVTogMCBQSUQ6IDEgYXQga2Vy bmVsL2xvY2tpbmcvbG9ja2RlcC5jOjI3NTUgbG9ja2RlcF90cmFjZV9hbGxvYysweDEyMC8weDEy NCgpCj4gWyAgICAxLjM0MTM1OF0gREVCVUdfTE9DS1NfV0FSTl9PTihpcnFzX2Rpc2FibGVkX2Zs YWdzKGZsYWdzKSkKCj4gWyAgICAxLjUyMTc0NF0gWzw4MDM3NTMwOD5dIChfcmVnbWFwX3dyaXRl KSBmcm9tIFs8ODAzNzY3NjA+XSAocmVnbWFwX3dyaXRlKzB4NDgvMHg2OCkKPiBbICAgIDEuNTM1 MzQ4XSBbPDgwMzc2NzE4Pl0gKHJlZ21hcF93cml0ZSkgZnJvbSBbPDgwMzUzOGU4Pl0gKGZzbF9k Y3VfZHJtX2NydGNfY3JlYXRlKzB4OTgvMHhlOCkKPiBbICAgIDEuNTQ5ODI0XSBbPDgwMzUzODUw Pl0gKGZzbF9kY3VfZHJtX2NydGNfY3JlYXRlKSBmcm9tIFs8ODAzNTJkZjA+XSAoZnNsX2RjdV9k cm1fbW9kZXNldF9pbml0KzB4NWMvMHhmYykKCgo+IFRoZSBjb21tZW50IGluIF9fbG9ja2RlcF90 cmFjZV9hbGxvYyBzYXlzOgo+ICJPaSEgQ2FuJ3QgYmUgaGF2aW5nIF9fR0ZQX0ZTIGFsbG9jYXRp b25zIHdpdGggSVJRcyBkaXNhYmxlZC4iLgoKU28gX3JlZ21hcF93cml0ZSgpIGRvZXM6IG1hcC0+ bG9jayhtYXAtPmxvY2tfYXJnKQoKV2hpY2ggaXNuJ3QgdmVyeSBlbmxpZ2h0ZW5pbmcsIHNpbmNl IHRoYXQgY2FuIGJlIGEgbXV0ZXggb3IgYSBzcGlubG9jaywKdGhlIGFib3ZlIHN0cm9uZ2x5IHN1 Z2dlc3RzIHNwaW5sb2NrIHRob3VnaC4KCkxvb2tpbmcgYXQgX19yZWdtYXBfaW5pdCgpLCB0aGlz IHNlZW1zIHRvIGRlcGVuZCBvbjoKCiAgKGJ1cyAmJiBidXMtPmZhc3RfaW8pIHx8IGNvbmZpZy0+ ZmFzdF9pbwoKbm93LCBhZmFpY3QsIHJlZ21hcF9tbWlvIGlzIHVzZWQgaW4gdGhpcyBjYXNlLCB3 aGljaCBoYXMgLmZhc3RfaW8gPQp0cnVlLgoKU28geWVhaCwgZmFpbC4KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757202AbcAOJpt (ORCPT ); Fri, 15 Jan 2016 04:45:49 -0500 Received: from casper.infradead.org ([85.118.1.10]:56370 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754760AbcAOJpr (ORCPT ); Fri, 15 Jan 2016 04:45:47 -0500 Date: Fri, 15 Jan 2016 10:45:41 +0100 From: Peter Zijlstra To: Stefan Agner Cc: broonie@kernel.org, festevam@gmail.com, mingo@redhat.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: Lockdep warning when using REGCACHE_RBTREE Message-ID: <20160115094541.GH3421@worktop> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.22.1 (2013-10-16) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jan 14, 2016 at 02:30:50PM -0800, Stefan Agner wrote: > Hi Mark, > > I currently work on the DCU DRM driver (drivers/gpu/drm/fsl-dcu/) on a > Linux 4.4 kernel. With CONFIG_LOCKDEP enabled I get the following > warning on startup: > > [ 1.327284] ------------[ cut here ]------------ > [ 1.332010] WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:2755 lockdep_trace_alloc+0x120/0x124() > [ 1.341358] DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags)) > [ 1.521744] [<80375308>] (_regmap_write) from [<80376760>] (regmap_write+0x48/0x68) > [ 1.535348] [<80376718>] (regmap_write) from [<803538e8>] (fsl_dcu_drm_crtc_create+0x98/0xe8) > [ 1.549824] [<80353850>] (fsl_dcu_drm_crtc_create) from [<80352df0>] (fsl_dcu_drm_modeset_init+0x5c/0xfc) > The comment in __lockdep_trace_alloc says: > "Oi! Can't be having __GFP_FS allocations with IRQs disabled.". So _regmap_write() does: map->lock(map->lock_arg) Which isn't very enlightening, since that can be a mutex or a spinlock, the above strongly suggests spinlock though. Looking at __regmap_init(), this seems to depend on: (bus && bus->fast_io) || config->fast_io now, afaict, regmap_mmio is used in this case, which has .fast_io = true. So yeah, fail.