From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Date: Tue, 01 Sep 2015 15:31:17 +0000 Subject: Re: [PATCH 4/4] fbdev: Debug knob to register without holding console_lock Message-Id: <20150901153117.GT1367@phenom.ffwll.local> List-Id: References: <1440510314-8633-1-git-send-email-daniel.vetter@ffwll.ch> <1440510314-8633-4-git-send-email-daniel.vetter@ffwll.ch> <55E57ED1.5060109@ti.com> <55E5B92C.7000202@ti.com> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Rob Clark Cc: Linux Fbdev development list , Daniel Vetter , Intel Graphics Development , DRI Development , Tomi Valkeinen , Jean-Christophe Plagniol-Villard On Tue, Sep 01, 2015 at 11:12:11AM -0400, Rob Clark wrote: > On Tue, Sep 1, 2015 at 10:41 AM, Tomi Valkeinen wrote: > > > > > > On 01/09/15 17:34, Rob Clark wrote: > >> On Tue, Sep 1, 2015 at 6:32 AM, Tomi Valkeinen wrote: > >>> > >>> > >>> On 25/08/15 22:24, Rob Clark wrote: > >>>> On Tue, Aug 25, 2015 at 9:45 AM, Daniel Vetter wrote: > >>>>> When the usual fbcon legacy options are enabled we have > >>>>> ->register_framebuffer > >>>>> ->fb notifier chain calls into fbcon > >>>>> ->fbcon sets up console on new fbi > >>>>> ->fbi->set_par > >>>>> ->drm_fb_helper_set_par exercises full kms api > >>>>> > >>>>> And because of locking inversion hilarity all of register_framebuffer > >>>>> is done with the console lock held. Which means that the first time on > >>>>> driver load we exercise _all_ the kms code (all probe paths and > >>>>> modeset paths for everything connected) is under the console lock. > >>>>> That means if anything goes belly-up in that big pile of code nothing > >>>>> ever reaches logfiles (and the machine is dead). > >>>>> > >>>>> Usual tactic to debug that is to temporarily remove those console_lock > >>>>> calls to be able to capture backtraces. I'm fed up writing this patch > >>>>> and recompiling kernels. Hence this patch here to add an unsafe, > >>>>> kernel-taining option to do this at runtime. > >>>>> > >>>>> Cc: Jean-Christophe Plagniol-Villard > >>>>> Cc: Tomi Valkeinen > >>>>> Cc: linux-fbdev@vger.kernel.org > >>>>> Signed-off-by: Daniel Vetter > >>>> > >>>> This one was causing me some problems, if I tried to enable > >>>> lockless_register_fb. It *looks* like it should work, so I'm not > >>>> quite sure what the deal is. But I'm 110% fan of getting something > >>>> like this working, because console_lock is pretty much the bane of kms > >>>> developer's existence.. > >>>> > >>>> I'll have to debug further on a system where I can see more than the > >>>> bottom three lines of the second to last backtrace.. > >>> > >>> Any idea if anyone has ever looked at properly fixing this? > >> > >> I hadn't had a chance to look at it further yet.. I think Daniel > >> claimed it worked for him, but he was probably on intel-next, where I > >> was on drm-next at the time which seemed to be having some unrelated > >> i915 issues (when I was trying to debug atomic fb-helper patches). So > >> can't really say that the issue I had was actually related to this > >> patch. I'll try again later this week or next, when hopefully i915 in > >> drm-next is in better shape.. > > > > Oh, I didn't mean this patch, but the whole console lock in general. > > I've also banged my head to a wall because of it =). > > oh, not sure.. every time I've started looking closer at > console/console_lock I run away screaming.. I guess if it were > possible to push the lock down further so only drivers that needed the > lock (presumably serial/net/etc) could take it, that would be nice.. > but not sure I am that brave.. console_lock is pretty much unfixable without rewriting half of fbdev. Which I don't expect to ever happen. For the curious look at all the commits changing locking in fbdev over the past few years. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 4/4] fbdev: Debug knob to register without holding console_lock Date: Tue, 1 Sep 2015 17:31:17 +0200 Message-ID: <20150901153117.GT1367@phenom.ffwll.local> References: <1440510314-8633-1-git-send-email-daniel.vetter@ffwll.ch> <1440510314-8633-4-git-send-email-daniel.vetter@ffwll.ch> <55E57ED1.5060109@ti.com> <55E5B92C.7000202@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rob Clark Cc: Linux Fbdev development list , Daniel Vetter , Intel Graphics Development , DRI Development , Tomi Valkeinen , Jean-Christophe Plagniol-Villard List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBTZXAgMDEsIDIwMTUgYXQgMTE6MTI6MTFBTSAtMDQwMCwgUm9iIENsYXJrIHdyb3Rl Ogo+IE9uIFR1ZSwgU2VwIDEsIDIwMTUgYXQgMTA6NDEgQU0sIFRvbWkgVmFsa2VpbmVuIDx0b21p LnZhbGtlaW5lbkB0aS5jb20+IHdyb3RlOgo+ID4KPiA+Cj4gPiBPbiAwMS8wOS8xNSAxNzozNCwg Um9iIENsYXJrIHdyb3RlOgo+ID4+IE9uIFR1ZSwgU2VwIDEsIDIwMTUgYXQgNjozMiBBTSwgVG9t aSBWYWxrZWluZW4gPHRvbWkudmFsa2VpbmVuQHRpLmNvbT4gd3JvdGU6Cj4gPj4+Cj4gPj4+Cj4g Pj4+IE9uIDI1LzA4LzE1IDIyOjI0LCBSb2IgQ2xhcmsgd3JvdGU6Cj4gPj4+PiBPbiBUdWUsIEF1 ZyAyNSwgMjAxNSBhdCA5OjQ1IEFNLCBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xs LmNoPiB3cm90ZToKPiA+Pj4+PiBXaGVuIHRoZSB1c3VhbCBmYmNvbiBsZWdhY3kgb3B0aW9ucyBh cmUgZW5hYmxlZCB3ZSBoYXZlCj4gPj4+Pj4gLT5yZWdpc3Rlcl9mcmFtZWJ1ZmZlcgo+ID4+Pj4+ ICAgLT5mYiBub3RpZmllciBjaGFpbiBjYWxscyBpbnRvIGZiY29uCj4gPj4+Pj4gICAgIC0+ZmJj b24gc2V0cyB1cCBjb25zb2xlIG9uIG5ldyBmYmkKPiA+Pj4+PiAgICAgICAtPmZiaS0+c2V0X3Bh cgo+ID4+Pj4+ICAgICAgICAgLT5kcm1fZmJfaGVscGVyX3NldF9wYXIgZXhlcmNpc2VzIGZ1bGwg a21zIGFwaQo+ID4+Pj4+Cj4gPj4+Pj4gQW5kIGJlY2F1c2Ugb2YgbG9ja2luZyBpbnZlcnNpb24g aGlsYXJpdHkgYWxsIG9mIHJlZ2lzdGVyX2ZyYW1lYnVmZmVyCj4gPj4+Pj4gaXMgZG9uZSB3aXRo IHRoZSBjb25zb2xlIGxvY2sgaGVsZC4gV2hpY2ggbWVhbnMgdGhhdCB0aGUgZmlyc3QgdGltZSBv bgo+ID4+Pj4+IGRyaXZlciBsb2FkIHdlIGV4ZXJjaXNlIF9hbGxfIHRoZSBrbXMgY29kZSAoYWxs IHByb2JlIHBhdGhzIGFuZAo+ID4+Pj4+IG1vZGVzZXQgcGF0aHMgZm9yIGV2ZXJ5dGhpbmcgY29u bmVjdGVkKSBpcyB1bmRlciB0aGUgY29uc29sZSBsb2NrLgo+ID4+Pj4+IFRoYXQgbWVhbnMgaWYg YW55dGhpbmcgZ29lcyBiZWxseS11cCBpbiB0aGF0IGJpZyBwaWxlIG9mIGNvZGUgbm90aGluZwo+ ID4+Pj4+IGV2ZXIgcmVhY2hlcyBsb2dmaWxlcyAoYW5kIHRoZSBtYWNoaW5lIGlzIGRlYWQpLgo+ ID4+Pj4+Cj4gPj4+Pj4gVXN1YWwgdGFjdGljIHRvIGRlYnVnIHRoYXQgaXMgdG8gdGVtcG9yYXJp bHkgcmVtb3ZlIHRob3NlIGNvbnNvbGVfbG9jawo+ID4+Pj4+IGNhbGxzIHRvIGJlIGFibGUgdG8g Y2FwdHVyZSBiYWNrdHJhY2VzLiBJJ20gZmVkIHVwIHdyaXRpbmcgdGhpcyBwYXRjaAo+ID4+Pj4+ IGFuZCByZWNvbXBpbGluZyBrZXJuZWxzLiBIZW5jZSB0aGlzIHBhdGNoIGhlcmUgdG8gYWRkIGFu IHVuc2FmZSwKPiA+Pj4+PiBrZXJuZWwtdGFpbmluZyBvcHRpb24gdG8gZG8gdGhpcyBhdCBydW50 aW1lLgo+ID4+Pj4+Cj4gPj4+Pj4gQ2M6IEplYW4tQ2hyaXN0b3BoZSBQbGFnbmlvbC1WaWxsYXJk IDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cj4gPj4+Pj4gQ2M6IFRvbWkgVmFsa2VpbmVuIDx0b21p LnZhbGtlaW5lbkB0aS5jb20+Cj4gPj4+Pj4gQ2M6IGxpbnV4LWZiZGV2QHZnZXIua2VybmVsLm9y Zwo+ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3 bGwuY2g+Cj4gPj4+Pgo+ID4+Pj4gVGhpcyBvbmUgd2FzIGNhdXNpbmcgbWUgc29tZSBwcm9ibGVt cywgaWYgSSB0cmllZCB0byBlbmFibGUKPiA+Pj4+IGxvY2tsZXNzX3JlZ2lzdGVyX2ZiLiAgSXQg Kmxvb2tzKiBsaWtlIGl0IHNob3VsZCB3b3JrLCBzbyBJJ20gbm90Cj4gPj4+PiBxdWl0ZSBzdXJl IHdoYXQgdGhlIGRlYWwgaXMuICBCdXQgSSdtIDExMCUgZmFuIG9mIGdldHRpbmcgc29tZXRoaW5n Cj4gPj4+PiBsaWtlIHRoaXMgd29ya2luZywgYmVjYXVzZSBjb25zb2xlX2xvY2sgaXMgcHJldHR5 IG11Y2ggdGhlIGJhbmUgb2Yga21zCj4gPj4+PiBkZXZlbG9wZXIncyBleGlzdGVuY2UuLgo+ID4+ Pj4KPiA+Pj4+IEknbGwgaGF2ZSB0byBkZWJ1ZyBmdXJ0aGVyIG9uIGEgc3lzdGVtIHdoZXJlIEkg Y2FuIHNlZSBtb3JlIHRoYW4gdGhlCj4gPj4+PiBib3R0b20gdGhyZWUgbGluZXMgb2YgdGhlIHNl Y29uZCB0byBsYXN0IGJhY2t0cmFjZS4uCj4gPj4+Cj4gPj4+IEFueSBpZGVhIGlmIGFueW9uZSBo YXMgZXZlciBsb29rZWQgYXQgcHJvcGVybHkgZml4aW5nIHRoaXM/Cj4gPj4KPiA+PiBJIGhhZG4n dCBoYWQgYSBjaGFuY2UgdG8gbG9vayBhdCBpdCBmdXJ0aGVyIHlldC4uICBJIHRoaW5rIERhbmll bAo+ID4+IGNsYWltZWQgaXQgd29ya2VkIGZvciBoaW0sIGJ1dCBoZSB3YXMgcHJvYmFibHkgb24g aW50ZWwtbmV4dCwgd2hlcmUgSQo+ID4+IHdhcyBvbiBkcm0tbmV4dCBhdCB0aGUgdGltZSB3aGlj aCBzZWVtZWQgdG8gYmUgaGF2aW5nIHNvbWUgdW5yZWxhdGVkCj4gPj4gaTkxNSBpc3N1ZXMgKHdo ZW4gSSB3YXMgdHJ5aW5nIHRvIGRlYnVnIGF0b21pYyBmYi1oZWxwZXIgcGF0Y2hlcykuICBTbwo+ ID4+IGNhbid0IHJlYWxseSBzYXkgdGhhdCB0aGUgaXNzdWUgSSBoYWQgd2FzIGFjdHVhbGx5IHJl bGF0ZWQgdG8gdGhpcwo+ID4+IHBhdGNoLiAgSSdsbCB0cnkgYWdhaW4gbGF0ZXIgdGhpcyB3ZWVr IG9yIG5leHQsIHdoZW4gaG9wZWZ1bGx5IGk5MTUgaW4KPiA+PiBkcm0tbmV4dCBpcyBpbiBiZXR0 ZXIgc2hhcGUuLgo+ID4KPiA+IE9oLCBJIGRpZG4ndCBtZWFuIHRoaXMgcGF0Y2gsIGJ1dCB0aGUg d2hvbGUgY29uc29sZSBsb2NrIGluIGdlbmVyYWwuCj4gPiBJJ3ZlIGFsc28gYmFuZ2VkIG15IGhl YWQgdG8gYSB3YWxsIGJlY2F1c2Ugb2YgaXQgPSkuCj4gCj4gb2gsIG5vdCBzdXJlLi4gZXZlcnkg dGltZSBJJ3ZlIHN0YXJ0ZWQgbG9va2luZyBjbG9zZXIgYXQKPiBjb25zb2xlL2NvbnNvbGVfbG9j ayBJIHJ1biBhd2F5IHNjcmVhbWluZy4uICBJIGd1ZXNzIGlmIGl0IHdlcmUKPiBwb3NzaWJsZSB0 byBwdXNoIHRoZSBsb2NrIGRvd24gZnVydGhlciBzbyBvbmx5IGRyaXZlcnMgdGhhdCBuZWVkZWQg dGhlCj4gbG9jayAocHJlc3VtYWJseSBzZXJpYWwvbmV0L2V0YykgY291bGQgdGFrZSBpdCwgdGhh dCB3b3VsZCBiZSBuaWNlLi4KPiBidXQgbm90IHN1cmUgSSBhbSB0aGF0IGJyYXZlLi4KCmNvbnNv bGVfbG9jayBpcyBwcmV0dHkgbXVjaCB1bmZpeGFibGUgd2l0aG91dCByZXdyaXRpbmcgaGFsZiBv ZiBmYmRldi4KV2hpY2ggSSBkb24ndCBleHBlY3QgdG8gZXZlciBoYXBwZW4uIEZvciB0aGUgY3Vy aW91cyBsb29rIGF0IGFsbCB0aGUKY29tbWl0cyBjaGFuZ2luZyBsb2NraW5nIGluIGZiZGV2IG92 ZXIgdGhlIHBhc3QgZmV3IHllYXJzLgotRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJl IEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=