From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Masney Subject: Re: [Freedreno] drm/msm: 'pp done time out' errors after async commit changes Date: Tue, 5 Nov 2019 05:08:04 -0500 Message-ID: <20191105100804.GA9492@onstation.org> References: <20191105000129.GA6536@onstation.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Rob Clark Cc: Rob Clark , freedreno , Sean Paul , Linux Kernel Mailing List , dri-devel , linux-arm-msm List-Id: dri-devel@lists.freedesktop.org On Mon, Nov 04, 2019 at 04:19:07PM -0800, Rob Clark wrote: > On Mon, Nov 4, 2019 at 4:01 PM Brian Masney wrote: > > > > Hey Rob, > > > > Since commit 2d99ced787e3 ("drm/msm: async commit support"), the frame > > buffer console on my Nexus 5 began throwing these errors: > > > > msm fd900000.mdss: pp done time out, lm=0 > > > > The display still works. > > > > I see that mdp5_flush_commit() was introduced in commit 9f6b65642bd2 > > ("drm/msm: add kms->flush_commit()") with a TODO comment and the commit > > description mentions flushing registers. I assume that this is the > > proper fix. If so, can you point me to where these registers are > > defined and I can work on the mdp5 implementation. > > See mdp5_ctl_commit(), which writes the CTL_FLUSH registers.. the idea > would be to defer writing CTL_FLUSH[ctl_id] = flush_mask until > kms->flush() (which happens from a timer shortly before vblank). > > But I think the async flush case should not come up with fbcon? It > was really added to cope with hwcursor updates (and userspace that > assumes it can do an unlimited # of cursor updates per frame).. the > intention was that nothing should change in the sequence for mdp5 (but > I guess that was not the case). The 'pp done time out' errors go away if I revert the following three commits: cd6d923167b1 ("drm/msm/dpu: async commit support") d934a712c5e6 ("drm/msm: add atomic traces") 2d99ced787e3 ("drm/msm: async commit support") I reverted the first one to fix a compiler error, and the second one so that the last patch can be reverted without any merge conflicts. I see that crtc_flush() calls mdp5_ctl_commit(). I tried to use crtc_flush_all() in mdp5_flush_commit() and the contents of the frame buffer dance around the screen like its out of sync. I renamed crtc_flush_all() to mdp5_crtc_flush_all() and removed the static declaration. Here's the relevant part of what I tried: --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c @@ -171,7 +171,15 @@ static void mdp5_prepare_commit(struct msm_kms *kms, struct drm_atomic_state *st static void mdp5_flush_commit(struct msm_kms *kms, unsigned crtc_mask) { - /* TODO */ + struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(kms)); + struct drm_crtc *crtc; + + for_each_crtc_mask(mdp5_kms->dev, crtc, crtc_mask) { + if (!crtc->state->active) + continue; + + mdp5_crtc_flush_all(crtc); + } } Any tips would be appreciated. Brian From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F29D7C17460 for ; Tue, 5 Nov 2019 13:29:26 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D09CF21D7C for ; Tue, 5 Nov 2019 13:29:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D09CF21D7C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=onstation.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4C33A6EA58; Tue, 5 Nov 2019 13:29:13 +0000 (UTC) Received: from onstation.org (onstation.org [52.200.56.107]) by gabe.freedesktop.org (Postfix) with ESMTPS id 09F0C6E9AC; Tue, 5 Nov 2019 10:08:06 +0000 (UTC) Received: from localhost (c-98-239-145-235.hsd1.wv.comcast.net [98.239.145.235]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: masneyb) by onstation.org (Postfix) with ESMTPSA id D806B3E8F7; Tue, 5 Nov 2019 10:08:04 +0000 (UTC) Date: Tue, 5 Nov 2019 05:08:04 -0500 From: Brian Masney To: Rob Clark Subject: Re: [Freedreno] drm/msm: 'pp done time out' errors after async commit changes Message-ID: <20191105100804.GA9492@onstation.org> References: <20191105000129.GA6536@onstation.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Mailman-Approved-At: Tue, 05 Nov 2019 13:29:07 +0000 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=onstation.org; s=default; t=1572948485; bh=KfnIsJjT3r6plldCySNd3bmNluaRX31wCcNiy0r6Xts=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=IxBhVMZS5/JpU1eXgyW7Fv/ilzktRpbORgO1mzIb3PZ5lNrugn5u3ATQ9cNwuha1E noZYlzhYK/Q5PDYDmWXe/MuCrmSuA6oFs/5vz/dn1UZEm8jAVoAAiQ1PjB7Q+oTFs4 O1twcRr93yW/W5G65ZNSOc5vHZAcwId3oMz6ZtSs= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Clark , freedreno , Linux Kernel Mailing List , dri-devel , linux-arm-msm , Sean Paul Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191105100804.Sh9X0aLvXKVbtwdiGxuKYEvhJ4_5Bk0tSU97j20zP0U@z> T24gTW9uLCBOb3YgMDQsIDIwMTkgYXQgMDQ6MTk6MDdQTSAtMDgwMCwgUm9iIENsYXJrIHdyb3Rl Ogo+IE9uIE1vbiwgTm92IDQsIDIwMTkgYXQgNDowMSBQTSBCcmlhbiBNYXNuZXkgPG1hc25leWJA b25zdGF0aW9uLm9yZz4gd3JvdGU6Cj4gPgo+ID4gSGV5IFJvYiwKPiA+Cj4gPiBTaW5jZSBjb21t aXQgMmQ5OWNlZDc4N2UzICgiZHJtL21zbTogYXN5bmMgY29tbWl0IHN1cHBvcnQiKSwgdGhlIGZy YW1lCj4gPiBidWZmZXIgY29uc29sZSBvbiBteSBOZXh1cyA1IGJlZ2FuIHRocm93aW5nIHRoZXNl IGVycm9yczoKPiA+Cj4gPiBtc20gZmQ5MDAwMDAubWRzczogcHAgZG9uZSB0aW1lIG91dCwgbG09 MAo+ID4KPiA+IFRoZSBkaXNwbGF5IHN0aWxsIHdvcmtzLgo+ID4KPiA+IEkgc2VlIHRoYXQgbWRw NV9mbHVzaF9jb21taXQoKSB3YXMgaW50cm9kdWNlZCBpbiBjb21taXQgOWY2YjY1NjQyYmQyCj4g PiAoImRybS9tc206IGFkZCBrbXMtPmZsdXNoX2NvbW1pdCgpIikgd2l0aCBhIFRPRE8gY29tbWVu dCBhbmQgdGhlIGNvbW1pdAo+ID4gZGVzY3JpcHRpb24gbWVudGlvbnMgZmx1c2hpbmcgcmVnaXN0 ZXJzLiBJIGFzc3VtZSB0aGF0IHRoaXMgaXMgdGhlCj4gPiBwcm9wZXIgZml4LiBJZiBzbywgY2Fu IHlvdSBwb2ludCBtZSB0byB3aGVyZSB0aGVzZSByZWdpc3RlcnMgYXJlCj4gPiBkZWZpbmVkIGFu ZCBJIGNhbiB3b3JrIG9uIHRoZSBtZHA1IGltcGxlbWVudGF0aW9uLgo+IAo+IFNlZSBtZHA1X2N0 bF9jb21taXQoKSwgd2hpY2ggd3JpdGVzIHRoZSBDVExfRkxVU0ggcmVnaXN0ZXJzLi4gdGhlIGlk ZWEKPiB3b3VsZCBiZSB0byBkZWZlciB3cml0aW5nIENUTF9GTFVTSFtjdGxfaWRdID0gZmx1c2hf bWFzayB1bnRpbAo+IGttcy0+Zmx1c2goKSAod2hpY2ggaGFwcGVucyBmcm9tIGEgdGltZXIgc2hv cnRseSBiZWZvcmUgdmJsYW5rKS4KPiAKPiBCdXQgSSB0aGluayB0aGUgYXN5bmMgZmx1c2ggY2Fz ZSBzaG91bGQgbm90IGNvbWUgdXAgd2l0aCBmYmNvbj8gIEl0Cj4gd2FzIHJlYWxseSBhZGRlZCB0 byBjb3BlIHdpdGggaHdjdXJzb3IgdXBkYXRlcyAoYW5kIHVzZXJzcGFjZSB0aGF0Cj4gYXNzdW1l cyBpdCBjYW4gZG8gYW4gdW5saW1pdGVkICMgb2YgY3Vyc29yIHVwZGF0ZXMgcGVyIGZyYW1lKS4u IHRoZQo+IGludGVudGlvbiB3YXMgdGhhdCBub3RoaW5nIHNob3VsZCBjaGFuZ2UgaW4gdGhlIHNl cXVlbmNlIGZvciBtZHA1IChidXQKPiBJIGd1ZXNzIHRoYXQgd2FzIG5vdCB0aGUgY2FzZSkuCgpU aGUgJ3BwIGRvbmUgdGltZSBvdXQnIGVycm9ycyBnbyBhd2F5IGlmIEkgcmV2ZXJ0IHRoZSBmb2xs b3dpbmcgdGhyZWUKY29tbWl0czoKCmNkNmQ5MjMxNjdiMSAoImRybS9tc20vZHB1OiBhc3luYyBj b21taXQgc3VwcG9ydCIpCmQ5MzRhNzEyYzVlNiAoImRybS9tc206IGFkZCBhdG9taWMgdHJhY2Vz IikKMmQ5OWNlZDc4N2UzICgiZHJtL21zbTogYXN5bmMgY29tbWl0IHN1cHBvcnQiKQoKSSByZXZl cnRlZCB0aGUgZmlyc3Qgb25lIHRvIGZpeCBhIGNvbXBpbGVyIGVycm9yLCBhbmQgdGhlIHNlY29u ZCBvbmUgc28KdGhhdCB0aGUgbGFzdCBwYXRjaCBjYW4gYmUgcmV2ZXJ0ZWQgd2l0aG91dCBhbnkg bWVyZ2UgY29uZmxpY3RzLgoKSSBzZWUgdGhhdCBjcnRjX2ZsdXNoKCkgY2FsbHMgbWRwNV9jdGxf Y29tbWl0KCkuIEkgdHJpZWQgdG8gdXNlCmNydGNfZmx1c2hfYWxsKCkgaW4gbWRwNV9mbHVzaF9j b21taXQoKSBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBmcmFtZQpidWZmZXIgZGFuY2UgYXJvdW5k IHRoZSBzY3JlZW4gbGlrZSBpdHMgb3V0IG9mIHN5bmMuIEkgcmVuYW1lZApjcnRjX2ZsdXNoX2Fs bCgpIHRvIG1kcDVfY3J0Y19mbHVzaF9hbGwoKSBhbmQgcmVtb3ZlZCB0aGUgc3RhdGljCmRlY2xh cmF0aW9uLiBIZXJlJ3MgdGhlIHJlbGV2YW50IHBhcnQgb2Ygd2hhdCBJIHRyaWVkOgoKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9rbXMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2ttcy5jCkBAIC0xNzEsNyArMTcxLDE1IEBAIHN0YXRp YyB2b2lkIG1kcDVfcHJlcGFyZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0CiAKIHN0YXRpYyB2b2lkIG1kcDVfZmx1c2hfY29tbWl0KHN0cnVj dCBtc21fa21zICprbXMsIHVuc2lnbmVkIGNydGNfbWFzaykKIHsKLSAgICAgICAvKiBUT0RPICov CisgICAgICAgc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9IHRvX21kcDVfa21zKHRvX21kcF9r bXMoa21zKSk7CisgICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjOworCisgICAgICAgZm9yX2Vh Y2hfY3J0Y19tYXNrKG1kcDVfa21zLT5kZXYsIGNydGMsIGNydGNfbWFzaykgeworICAgICAgICAg ICAgICAgaWYgKCFjcnRjLT5zdGF0ZS0+YWN0aXZlKQorICAgICAgICAgICAgICAgICAgICAgICBj b250aW51ZTsKKworICAgICAgICAgICAgICAgbWRwNV9jcnRjX2ZsdXNoX2FsbChjcnRjKTsKKyAg ICAgICB9CiB9CgpBbnkgdGlwcyB3b3VsZCBiZSBhcHByZWNpYXRlZC4KCkJyaWFuCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==