From mboxrd@z Thu Jan 1 00:00:00 1970 From: daniel@ffwll.ch (Daniel Vetter) Date: Thu, 9 Jun 2016 15:52:22 +0200 Subject: [PATCH 03/27] drm/arc: Actually bother with handling atomic events. In-Reply-To: <1465478829.3203.68.camel@synopsys.com> References: <1465388359-8070-1-git-send-email-daniel.vetter@ffwll.ch> <1465388359-8070-3-git-send-email-daniel.vetter@ffwll.ch> <20160608143004.GE3363@phenom.ffwll.local> <1465469639.3203.57.camel@synopsys.com> <20160609122631.GO3363@phenom.ffwll.local> <1465476465.3203.66.camel@synopsys.com> <20160609132327.GQ3363@phenom.ffwll.local> <1465478829.3203.68.camel@synopsys.com> List-ID: Message-ID: <20160609135222.GS3363@phenom.ffwll.local> To: linux-snps-arc@lists.infradead.org On Thu, Jun 09, 2016@01:27:55PM +0000, Alexey Brodkin wrote: > Hi Daniel, > > On Thu, 2016-06-09@15:23 +0200, Daniel Vetter wrote: > > On Thu, Jun 09, 2016@12:48:31PM +0000, Alexey Brodkin wrote: > > > > > > Hi Daniel, > > > > > > On Thu, 2016-06-09@14:26 +0200, Daniel Vetter wrote: > > > > > > > > On Thu, Jun 09, 2016@10:54:45AM +0000, Alexey Brodkin wrote: > > > > > > > > > > > > > > > Hi Daniel, > > > > > > > > > > On Wed, 2016-06-08@16:30 +0200, Daniel Vetter wrote: > > > > > > > > > > > > > > > > > > On Wed, Jun 08, 2016@04:14:38PM +0200, Maarten Lankhorst wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > Op 08-06-16 om 14:18 schreef Daniel Vetter: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > The drm core has a nice ready-made helper for exactly the simple case > > > > > > > > where it should fire on the next vblank. > > > > > > > > > > > > > > > > Note that arming the vblank event in _begin is probably too early, and > > > > > > > > might easily result in the vblank firing too early, before the new set > > > > > > > > of planes are actually disabled. But that's kinda a minor issue > > > > > > > > compared to just outright hanging userspace. > > > > > > > > > > > > > > > > v2: Be more robust and either arm, when the CRTC is on, or just send > > > > > > > > the event out right away. > > > > > > > > > > > > > > > > Cc: Carlos Palminha > > > > > > > > Cc: Alexey Brodkin > > > > > > > > Cc: linux-snps-arc at lists.infradead.org > > > > > > > > Signed-off-by: Daniel Vetter > > > > > > > Wouldn't it be better to do this in atomic_flush then? > > > > > > I'm not going to fix up other people's drivers completely, just enough to > > > > > > hopefully not break them. If arc also blocks vblank interrupts with the go > > > > > > bit, then doing this in _begin is correct. Either way it needs hw-specific > > > > > > knowledge to asses whether it's correct, since doing the vblank event > > > > > > stuff in _flush is also racy without some prevention. > > > > > Actually in ARC PGU driver that was one of many other copy-pastes from > > > > > other drivers. I.e. for me this is another boilerplate and if that's the > > > > > same for other drivers as well probably that's a good candidate for > > > > > generalization into something like?drm_helper_crtc_atomic_check(). > > > > I checked them all, you are special with your code here. And this can't be > > > > generalized since you must send out vblank events in a race-free manner > > > > against the actual hw update. This requires deep knowledge of the actual > > > > hw, and it's not something the helpers can take care of you. It is very > > > > much not boilerplate, but crucial for a correct implementation. And most > > > > likely arcpgu is wrong, but since I don't have that hw knowledge I'm not > > > > going to change it more than absolutely required. > > > Well I meant as of today we don't support vblank interrupts and so > > > arc_pgu_crtc_atomic_begin() barely makes any sense. > > > > > > Still in the future we do plan to add support of interrupts. > > > > > > If you don't support vblank interrupts you're driver isn't compliant with > > atomic. You need to at least fake them. > > Indeed. So my assumption was there are (or could appear) other simple drivers > of the same kind and that fake implementation might be generic. The fake implementation is fundamentally racy, and I don't want to write helpers which can't be used correctly. Anyway I think without this patch (or something similar) arcpgu will stall badly with the new nonblocking helpers, because arcpgu didn't bother at all to implement nonblocking. Can you pls ack this, or even better, test the entire patch series? The helpers themselves should work, but in all 5 drivers tested thus far they discovered some bugs. -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 03/27] drm/arc: Actually bother with handling atomic events. Date: Thu, 9 Jun 2016 15:52:22 +0200 Message-ID: <20160609135222.GS3363@phenom.ffwll.local> References: <1465388359-8070-1-git-send-email-daniel.vetter@ffwll.ch> <1465388359-8070-3-git-send-email-daniel.vetter@ffwll.ch> <20160608143004.GE3363@phenom.ffwll.local> <1465469639.3203.57.camel@synopsys.com> <20160609122631.GO3363@phenom.ffwll.local> <1465476465.3203.66.camel@synopsys.com> <20160609132327.GQ3363@phenom.ffwll.local> <1465478829.3203.68.camel@synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id D8D9E6E2D0 for ; Thu, 9 Jun 2016 13:52:26 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id r5so10917105wmr.0 for ; Thu, 09 Jun 2016 06:52:26 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1465478829.3203.68.camel@synopsys.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alexey Brodkin Cc: "daniel.vetter@ffwll.ch" , "CARLOS.PALMINHA@synopsys.com" , "dri-devel@lists.freedesktop.org" , "daniel.vetter@intel.com" , "linux-snps-arc@lists.infradead.org" List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKdW4gMDksIDIwMTYgYXQgMDE6Mjc6NTVQTSArMDAwMCwgQWxleGV5IEJyb2RraW4g d3JvdGU6Cj4gSGkgRGFuaWVsLAo+IAo+IE9uIFRodSwgMjAxNi0wNi0wOSBhdCAxNToyMyArMDIw MCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+IE9uIFRodSwgSnVuIDA5LCAyMDE2IGF0IDEyOjQ4 OjMxUE0gKzAwMDAsIEFsZXhleSBCcm9ka2luIHdyb3RlOgo+ID4gPiAKPiA+ID4gSGkgRGFuaWVs LAo+ID4gPiAKPiA+ID4gT24gVGh1LCAyMDE2LTA2LTA5IGF0IDE0OjI2ICswMjAwLCBEYW5pZWwg VmV0dGVyIHdyb3RlOgo+ID4gPiA+IAo+ID4gPiA+IE9uIFRodSwgSnVuIDA5LCAyMDE2IGF0IDEw OjU0OjQ1QU0gKzAwMDAsIEFsZXhleSBCcm9ka2luIHdyb3RlOgo+ID4gPiA+ID4gCj4gPiA+ID4g PiAKPiA+ID4gPiA+IEhpIERhbmllbCwKPiA+ID4gPiA+IAo+ID4gPiA+ID4gT24gV2VkLCAyMDE2 LTA2LTA4IGF0IDE2OjMwICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IE9uIFdlZCwgSnVuIDA4LCAyMDE2IGF0IDA0OjE0OjM4 UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiA+IAo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IE9wIDA4LTA2LTE2IG9tIDE0OjE4 IHNjaHJlZWYgRGFuaWVsIFZldHRlcjoKPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IFRoZSBkcm0gY29yZSBoYXMgYSBuaWNl IHJlYWR5LW1hZGUgaGVscGVyIGZvciBleGFjdGx5IHRoZSBzaW1wbGUgY2FzZQo+ID4gPiA+ID4g PiA+ID4gd2hlcmUgaXQgc2hvdWxkIGZpcmUgb24gdGhlIG5leHQgdmJsYW5rLgo+ID4gPiA+ID4g PiA+ID4gCj4gPiA+ID4gPiA+ID4gPiBOb3RlIHRoYXQgYXJtaW5nIHRoZSB2YmxhbmsgZXZlbnQg aW4gX2JlZ2luIGlzIHByb2JhYmx5IHRvbyBlYXJseSwgYW5kCj4gPiA+ID4gPiA+ID4gPiBtaWdo dCBlYXNpbHkgcmVzdWx0IGluIHRoZSB2YmxhbmsgZmlyaW5nIHRvbyBlYXJseSwgYmVmb3JlIHRo ZSBuZXcgc2V0Cj4gPiA+ID4gPiA+ID4gPiBvZiBwbGFuZXMgYXJlIGFjdHVhbGx5IGRpc2FibGVk LiBCdXQgdGhhdCdzIGtpbmRhIGEgbWlub3IgaXNzdWUKPiA+ID4gPiA+ID4gPiA+IGNvbXBhcmVk IHRvIGp1c3Qgb3V0cmlnaHQgaGFuZ2luZyB1c2Vyc3BhY2UuCj4gPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiA+IHYyOiBCZSBtb3JlIHJvYnVzdCBhbmQgZWl0aGVyIGFybSwgd2hlbiB0aGUg Q1JUQyBpcyBvbiwgb3IganVzdCBzZW5kCj4gPiA+ID4gPiA+ID4gPiB0aGUgZXZlbnQgb3V0IHJp Z2h0IGF3YXkuCj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IENjOiBDYXJsb3MgUGFs bWluaGEgPHBhbG1pbmhhQHN5bm9wc3lzLmNvbT4KPiA+ID4gPiA+ID4gPiA+IENjOiBBbGV4ZXkg QnJvZGtpbiA8YWJyb2RraW5Ac3lub3BzeXMuY29tPgo+ID4gPiA+ID4gPiA+ID4gQ2M6IGxpbnV4 LXNucHMtYXJjQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYt Ynk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiA+ IFdvdWxkbid0IGl0IGJlIGJldHRlciB0byBkbyB0aGlzIGluIGF0b21pY19mbHVzaCB0aGVuPwo+ ID4gPiA+ID4gPiBJJ20gbm90IGdvaW5nIHRvIGZpeCB1cCBvdGhlciBwZW9wbGUncyBkcml2ZXJz IGNvbXBsZXRlbHksIGp1c3QgZW5vdWdoIHRvCj4gPiA+ID4gPiA+IGhvcGVmdWxseSBub3QgYnJl YWsgdGhlbS4gSWYgYXJjIGFsc28gYmxvY2tzIHZibGFuayBpbnRlcnJ1cHRzIHdpdGggdGhlIGdv Cj4gPiA+ID4gPiA+IGJpdCwgdGhlbiBkb2luZyB0aGlzIGluIF9iZWdpbiBpcyBjb3JyZWN0LiBF aXRoZXIgd2F5IGl0IG5lZWRzIGh3LXNwZWNpZmljCj4gPiA+ID4gPiA+IGtub3dsZWRnZSB0byBh c3NlcyB3aGV0aGVyIGl0J3MgY29ycmVjdCwgc2luY2UgZG9pbmcgdGhlIHZibGFuayBldmVudAo+ ID4gPiA+ID4gPiBzdHVmZiBpbiBfZmx1c2ggaXMgYWxzbyByYWN5IHdpdGhvdXQgc29tZSBwcmV2 ZW50aW9uLgo+ID4gPiA+ID4gQWN0dWFsbHkgaW4gQVJDIFBHVSBkcml2ZXIgdGhhdCB3YXMgb25l IG9mIG1hbnkgb3RoZXIgY29weS1wYXN0ZXMgZnJvbQo+ID4gPiA+ID4gb3RoZXIgZHJpdmVycy4g SS5lLiBmb3IgbWUgdGhpcyBpcyBhbm90aGVyIGJvaWxlcnBsYXRlIGFuZCBpZiB0aGF0J3MgdGhl Cj4gPiA+ID4gPiBzYW1lIGZvciBvdGhlciBkcml2ZXJzIGFzIHdlbGwgcHJvYmFibHkgdGhhdCdz IGEgZ29vZCBjYW5kaWRhdGUgZm9yCj4gPiA+ID4gPiBnZW5lcmFsaXphdGlvbiBpbnRvIHNvbWV0 aGluZyBsaWtlwqBkcm1faGVscGVyX2NydGNfYXRvbWljX2NoZWNrKCkuCj4gPiA+ID4gSSBjaGVj a2VkIHRoZW0gYWxsLCB5b3UgYXJlIHNwZWNpYWwgd2l0aCB5b3VyIGNvZGUgaGVyZS4gQW5kIHRo aXMgY2FuJ3QgYmUKPiA+ID4gPiBnZW5lcmFsaXplZCBzaW5jZSB5b3UgbXVzdCBzZW5kIG91dCB2 YmxhbmsgZXZlbnRzIGluIGEgcmFjZS1mcmVlIG1hbm5lcgo+ID4gPiA+IGFnYWluc3QgdGhlIGFj dHVhbCBodyB1cGRhdGUuIFRoaXMgcmVxdWlyZXMgZGVlcCBrbm93bGVkZ2Ugb2YgdGhlIGFjdHVh bAo+ID4gPiA+IGh3LCBhbmQgaXQncyBub3Qgc29tZXRoaW5nIHRoZSBoZWxwZXJzIGNhbiB0YWtl IGNhcmUgb2YgeW91LiBJdCBpcyB2ZXJ5Cj4gPiA+ID4gbXVjaCBub3QgYm9pbGVycGxhdGUsIGJ1 dCBjcnVjaWFsIGZvciBhIGNvcnJlY3QgaW1wbGVtZW50YXRpb24uIEFuZCBtb3N0Cj4gPiA+ID4g bGlrZWx5IGFyY3BndSBpcyB3cm9uZywgYnV0IHNpbmNlIEkgZG9uJ3QgaGF2ZSB0aGF0IGh3IGtu b3dsZWRnZSBJJ20gbm90Cj4gPiA+ID4gZ29pbmcgdG8gY2hhbmdlIGl0IG1vcmUgdGhhbiBhYnNv bHV0ZWx5IHJlcXVpcmVkLgo+ID4gPiBXZWxsIEkgbWVhbnQgYXMgb2YgdG9kYXkgd2UgZG9uJ3Qg c3VwcG9ydCB2YmxhbmsgaW50ZXJydXB0cyBhbmQgc28KPiA+ID4gYXJjX3BndV9jcnRjX2F0b21p Y19iZWdpbigpIGJhcmVseSBtYWtlcyBhbnkgc2Vuc2UuCj4gPiA+IAo+ID4gPiBTdGlsbCBpbiB0 aGUgZnV0dXJlIHdlIGRvIHBsYW4gdG8gYWRkIHN1cHBvcnQgb2YgaW50ZXJydXB0cy4KPiA+IAo+ ID4KPiA+IElmIHlvdSBkb24ndCBzdXBwb3J0IHZibGFuayBpbnRlcnJ1cHRzIHlvdSdyZSBkcml2 ZXIgaXNuJ3QgY29tcGxpYW50IHdpdGgKPiA+IGF0b21pYy4gWW91IG5lZWQgdG8gYXQgbGVhc3Qg ZmFrZSB0aGVtLgo+IAo+IEluZGVlZC4gU28gbXkgYXNzdW1wdGlvbiB3YXMgdGhlcmUgYXJlIChv ciBjb3VsZCBhcHBlYXIpIG90aGVyIHNpbXBsZSBkcml2ZXJzCj4gb2YgdGhlIHNhbWUga2luZCBh bmQgdGhhdCBmYWtlIGltcGxlbWVudGF0aW9uIG1pZ2h0IGJlIGdlbmVyaWMuCgpUaGUgZmFrZSBp bXBsZW1lbnRhdGlvbiBpcyBmdW5kYW1lbnRhbGx5IHJhY3ksIGFuZCBJIGRvbid0IHdhbnQgdG8g d3JpdGUKaGVscGVycyB3aGljaCBjYW4ndCBiZSB1c2VkIGNvcnJlY3RseS4gQW55d2F5IEkgdGhp bmsgd2l0aG91dCB0aGlzIHBhdGNoCihvciBzb21ldGhpbmcgc2ltaWxhcikgYXJjcGd1IHdpbGwg c3RhbGwgYmFkbHkgd2l0aCB0aGUgbmV3IG5vbmJsb2NraW5nCmhlbHBlcnMsIGJlY2F1c2UgYXJj cGd1IGRpZG4ndCBib3RoZXIgYXQgYWxsIHRvIGltcGxlbWVudCBub25ibG9ja2luZy4gQ2FuCnlv dSBwbHMgYWNrIHRoaXMsIG9yIGV2ZW4gYmV0dGVyLCB0ZXN0IHRoZSBlbnRpcmUgcGF0Y2ggc2Vy aWVzPyBUaGUKaGVscGVycyB0aGVtc2VsdmVzIHNob3VsZCB3b3JrLCBidXQgaW4gYWxsIDUgZHJp dmVycyB0ZXN0ZWQgdGh1cyBmYXIgdGhleQpkaXNjb3ZlcmVkIHNvbWUgYnVncy4KLURhbmllbAot LSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0 cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==