From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH v3 2/4] drm/atomic: rename async_{update, check} to amend_{update, check} Date: Fri, 12 Apr 2019 16:38:35 +0200 Message-ID: <20190412163835.5407984f@collabora.com> References: <20190412125827.5877-1-helen.koike@collabora.com> <20190412125827.5877-3-helen.koike@collabora.com> <20190412154957.558e49f8@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Helen Koike Cc: Heiko =?UTF-8?B?U3TDvGJuZXI=?= , Sean Paul , alexandros.frantzis-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org, David Airlie , daniel.vetter-/w4YWyX8dFk@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Eric Anholt , Mamta Shukla , tina.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, kernel-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org, Anthony Koo , Ville =?UTF-8?B?U3lyasOkbMOk?= , "David (ChunMing) Zhou" , Maxime Ripard , Jonathan Corbet , Sean Paul , David Francis , linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Gustavo Padovan , linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Harry Wentland , daniels-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org, Leo Li List-Id: linux-arm-msm@vger.kernel.org T24gRnJpLCAxMiBBcHIgMjAxOSAxMTowNjoxMyAtMDMwMApIZWxlbiBLb2lrZSA8aGVsZW4ua29p a2VAY29sbGFib3JhLmNvbT4gd3JvdGU6Cgo+IEhpIEJvcmlzLAo+IAo+IE9uIDQvMTIvMTkgMTA6 NDkgQU0sIEJvcmlzIEJyZXppbGxvbiB3cm90ZToKPiA+IEhpIEhlbGVuLAo+ID4gCj4gPiBPbiBG cmksIDEyIEFwciAyMDE5IDA5OjU4OjI1IC0wMzAwCj4gPiBIZWxlbiBLb2lrZSA8aGVsZW4ua29p a2VAY29sbGFib3JhLmNvbT4gd3JvdGU6Cj4gPiAgIAo+ID4+IEFzeW5jaHJvbm91cyB1cGRhdGUg aXMgdGhlIGFiaWxpdHkgY2hhbmdlIHRoZSBodyBzdGF0ZSBhdCBhbnkgdGltZSwgbm90Cj4gPj4g b25seSBkdXJpbmcgdmJsYW5rLgo+ID4+Cj4gPj4gQW1lbmQgbW9kZSBpcyB0aGUgYWJpbGl0eSB0 byBwZXJmb3JtIDEwMDAgY29tbWl0cyB0byBiZSBhcHBsaWVkIGFzIHNvb24KPiA+PiBhcyBwb3Nz aWJsZSB3aXRob3V0IHdhaXRpbmcgZm9yIDEwMDAgdmJsYW5rcy4KPiA+Pgo+ID4+IGFzeW5jIHVw ZGF0ZXMgY2FuIGJlIHNlZW4gYXMgYW1lbmQsIGJ1dCB0aGUgb3Bwb3NpdGUgaXMgbm90IHRydWUu Cj4gPj4KPiA+PiAmZHJtX3BsYW5lX2hlbHBlcl9mdW5jcy5hdG9taWNfYXN5bmNfe3VwZGF0ZSxj aGVja30oKSB3YXMgYmVpbmcgdXNlZCBieQo+ID4+IGRyaXZlcnMgdG8gaW1wbGVtZW50IGFtZW5k IGFuZCBub3QgYXN5bmMuIFNvIHJlbmFtZSB0aGVtIHRvIGFtZW5kLgo+ID4+Cj4gPj4gQWxzbyBp bXByb3ZlIGRvY3MgZXhwbGFpbmluZyB0aGUgZGlmZmVyZW5jZS4KPiA+Pgo+ID4+IElmIGFzeW5j aHJvbm91cyBpcyByZXF1aXJlZCwgbm9ybWFsIHBhZ2UgZmxpcCBjYW4gYmUgcGVyZm9ybWVkIHVz aW5nCj4gPj4gRFJNX01PREVfUEFHRV9GTElQX0FTWU5DIGZsYWcuCj4gPj4KPiA+PiBTaWduZWQt b2ZmLWJ5OiBIZWxlbiBLb2lrZSA8aGVsZW4ua29pa2VAY29sbGFib3JhLmNvbT4KPiA+Pgo+ID4+ IC0tLQo+ID4+IEhlbGxvLAo+ID4+Cj4gPj4gSSB3b3VsZCBsaWtlIHRvIG9mZmljaWFsbHkgY2xh cmlmeSB3aGF0IGFzeW5jIHVwZGF0ZSBtZWFucyBieSBhZGRpbmcgaXQKPiA+PiBpbiB0aGUgZG9j cy4KPiA+PiBQbGVhc2UgY29ycmVjdCBtZSBpZiBJIGFtIHdyb25nLCBidXQgdGhlIGN1cnJlbnQg YXN5bmNfe3VwZGF0ZSxjaGVja30KPiA+PiBjYWxsYmFja3MgYXJlIGJlaW5nIHVzZWQgdG8gZG8g YW1lbmQgKHRoZSBsZWdhY3kgY3Vyc29yIGJlaGF2aW9yKSwgaS5lLgo+ID4+IHRvIGFsbG93IDEw MDAgdXBkYXRlcyB3aXRob3V0IHdhaXRpbmcgZm9yIDEwMDAgdmJsYW5rcy4gIAo+ID4gCj4gPiBS aWdodCBub3csIHRoZSBzZW1hbnRpYyBvZiBhc3luYyB1cGRhdGUgaXMgZHJpdmVyIGRlcGVuZGVu dC4gU29tZQo+ID4gZHJpdmVycyB3aWxsIGFtZW5kIHRoZSBsYXN0IGNvbW1pdCB0b3VjaGluZyB0 aGF0IHBsYW5lIChhbWVuZCBzZW1hbnRpYyksCj4gPiBvdGhlcnMgd2lsbCB1cGRhdGUgdGhlIHBs YW5lIGJ1ZmZlciBpbW1lZGlhdGVseSB3aGljaCBtaWdodCBjYXVzZQo+ID4gdGVhcmluZyAoYXN5 bmMgc2VtYW50aWMpLiAgCj4gCj4gSW4gbXkgcG92LCBhc3luYyB1cGRhdGVzIGhvbGRzIHRoZSBw cm9wZXJ0aWVzIG9mIGFuIGFtZW5kIHVwZGF0ZSwgc28gYWxsCj4gYXN5bmMgdXBkYXRlcyB3ZSBo YXZlIGFyZSBhbWVuZCwgYnV0IHRoZSBvcHBvc2l0ZSBpcyBub3QgdHJ1ZS4KCkJ5IGRvaW5nIHRo YXQgeW91IGtlZXAgdGhlIGRlZmluaXRpb24gcXVpdGUgdmFndWUsIGFuZCBkZXZlbG9wZXJzIHdp bGwKc3RpbGwgY29uZnVzZWQgYWJvdXQgd2hhdCB0aGV5IHNob3VsZCBkbyB3aGVuIEFNRU5EIGlz IHJlcXVlc3RlZC4gV2h5Cm5vdCBkaXN0aW5ndWlzaGluZyBBTUVORCBhbmQgQVNZTkMgbm93PwoK QU1FTkQ6IHJlcGxhY2UgdGhlIHBlbmRpbmcgcGxhbmUgdXBkYXRlIChpZiBhbnkpIGJ5IHRoZSBu ZXcgb25lLCBhbmQKbWFrZSBzdXJlIHRoaW5ncyB3aWxsIGJlIGFwcGxpZWQgb24gdGhlIG5leHQg VkJMQU5LIChpZiBub3RoaW5nIGVsc2UKYW1lbmRzIHRoZSBjb21taXQgaW4gdGhlIG1lYW50aW1l KQoKQVNZTkM6IHVwZGF0ZSB0aGluZ3MgaW1tZWRpYXRlbHkgKGRvbid0IHdhaXQgZm9yIFZCTEFO SykKCj4gCj4gPiAgIAo+ID4+Cj4gPj4gU28gSSB3b3VsZCBsaWtlIHRvIGNsYXJpZnkgdGhpcyBp biB0aGUgZG9jcyBhbmQgcmVuYW1lIHRoZSBjdXJyZW50Cj4gPj4gY2FsbGJhY2tzIHRvIHJlZmxl Y3QgdGhpcyBiZWhhdmlvdXIuICAKPiA+IAo+ID4gSSdtIGFsbCBmb3IgdGhpcyBjbGFyaWZpY2F0 aW9uLCBidXQgSSBkb24ndCB0aGluayByZW5hbWluZyB0aGUgYXN5bmMKPiA+IGhvb2tzIGlzIGEg Z29vZCBpZGVhLCBzaW5jZSBzb21lIGRyaXZlcnMgd2lsbCBub3QgZG8gcmVhbCAnYW1lbmQnLiBT bywKPiA+IHlvdSdyZSBjaGFuZ2luZyB0aGUgbmFtZSwgYnV0IGl0J3Mgc3RpbGwgY29uZnVzaW5n IDotKS4KPiA+IAo+ID4gSG93IGFib3V0IGFkZGluZyBuZXcgaG9va3MgKGFuZC9vciBmbGFncykg Zm9yIHRoZSBBTUVORCBjYXNlLCBhbmQKPiA+IGtlZXBpbmcgdGhlIGFzeW5jIHBhdGggdW50b3Vj aGVkLiBXZSBjYW4gdGhlbiBsZXQgZHJpdmVycyB0aGF0Cj4gPiBjdXJyZW50bHkgaW1wbGVtZW50 IGFzeW5jIGFzIGFtZW5kIGltcGxlbWVudCB0aGUgYW1lbmQgaG9va3MgaW5zdGVhZC4KPiA+IE9u Y2UgeW91J3ZlIGRvbmUgdGhhdCwgeW91IGNhbiBob29rIHRoYXQgdXAgdG8gdGhlIGxlZ2FjeSBj dXJzb3IgdXBkYXRlCj4gPiBwYXRoIHNvIHRoYXQgaXQgZmlyc3QgdHJpZXMgb25lIHRoZW4gdGhl IG90aGVyIGFuZCBmaW5hbGx5IGZhbGxzIGJhY2sKPiA+IHRvIGEgc3luYyB1cGRhdGUgaWYgbm9u ZSBvZiBBU1lOQy9BTUVORCBpcyBwb3NzaWJsZS4gIAo+IAo+IEkga2luZGEgZGlkIHRoaXMgKEkg cmUtaW50cm9kdWNlZCBhc3luYyBpbiB0aGUgbGFzdCBwYXRjaCBpbiB0aGUKPiBzZXJpZXMpLiBJ IGtub3cgdGhpcyBvcmRlciBpcyBjb25mdXNpbmcsIGJ1dCBhcyByb2NrY2hpcCBkb2Vzbid0Cj4g aW1wbGVtZW50IHRydWUgYXN5bmMsIEkgd291bGQgaGF2ZSB0byBkbyBhIGJ1bmNoIG9mIG1vZGlm cyBhdCBvbmNlIHRvCj4ga2VlcCB0aGUgY29tbWl0cyBjb25zaXN0ZW50LCBidXQgSSBjYW4gcmUt d29yayBvbiB0aGF0IGlmIGl0IG1ha2VzCj4gdGhpbmdzIGNsZWFyZXIuCgpMZXQncyB3YWl0IGZv ciBtb3JlIGZlZWRiYWNrIGJlZm9yZSB0YWtpbmcgYSBkZWNpc2lvbiBvbiB0aGlzIGFzcGVjdC4K Cj4gCj4gPiAgIAo+ID4+Cj4gPj4gSSBhbHNvIHNlZSB0aGF0IGZvciByZWFsIGFzeW5jIHVwZGF0 ZXMsIHRoZSBmbGFnCj4gPj4gRFJNX01PREVfUEFHRV9GTElQX0FTWU5DIGNhbiBiZSB1c2VkIGlu IGEgbm9ybWFsIHN5bmMgdXBkYXRlIChpdCBpcwo+ID4+IGFscmVhZHkgYmVpbmcgdXNlZCBieSBz b21lIGRyaXZlcnMgYWN0dWFsbHksIGluIHRoZSBhdG9taWMgcGF0aCwgbm90IG9ubHkKPiA+PiBp biB0aGUgbGVnYWN5IHBhZ2UgZmxpcCwgYXQgbGVhc3QgaXMgd2hhdCBJIHVuZGVyc3Rvb2QgZnJv bQo+ID4+IGFtZGdwdV9kbV9hdG9taWNfY29tbWl0X3RhaWwoKSBpbXBsZW1lbnRhdGlvbikuICAK PiA+IAo+ID4gWWVzLCByaWdodCBub3csIGFzeW5jIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGltcGx5 IG5vbi1ibG9jaywgYnV0Cj4gPiBEYW5pZWwgc2VlbWVkIHRvIHRoaW5rIHRoYXQgbW9zdCB1c2Vy cyB3YW50IG5vbi1ibG9jayB3aGVuIHRoZXkgZG8gYW4KPiA+IGFzeW5jIHBhZ2UgZmxpcCwgc28g bWF5YmUgaXQgc2hvdWxkIGJlIGNsYXJpZmllZCB0b28uICAKPiAKPiB1c2VycyBjb3VsZCBjb21i aW5lIE5PTkJMT0NLIGZsYWcgd2l0aCBQQUdFX0ZMSVBfQVNZTkMsIG5vPyAod2UgbmVlZCB0bwo+ IGFkZCBjb2RlIGZvciBpdCBvZiBjb3Vyc2UpLgoKSSBndWVzcyBBTUQgZ29lcyB0aHJvdWdoIHRo ZSBzeW5jIHVwZGF0ZSBwYXRoIHRvIGd1YXJhbnRlZSB0aGF0IGZlbmNlcwphcmUgc2lnbmFsZWQg YmVmb3JlIGRvaW5nIHRoZSBwYWdlIGZsaXAsIGJ1dCBtb3N0IG9mIHRoZSB0aW1lLCB3aGVuIHlv dQpkbyBhbiBhc3luYyBwYWdlIGZsaXAgeW91IGRvbid0IHdhbnQgdG8gYmxvY2sgOi0pLgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFp bGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8= 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=-3.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 1DD34C10F0E for ; Fri, 12 Apr 2019 14:38:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E31F02171F for ; Fri, 12 Apr 2019 14:38:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726851AbfDLOim (ORCPT ); Fri, 12 Apr 2019 10:38:42 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:35296 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726714AbfDLOim (ORCPT ); Fri, 12 Apr 2019 10:38:42 -0400 Received: from localhost (unknown [IPv6:2a01:e0a:2c:6930:5cf4:84a1:2763:fe0d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 8908D28018B; Fri, 12 Apr 2019 15:38:37 +0100 (BST) Date: Fri, 12 Apr 2019 16:38:35 +0200 From: Boris Brezillon To: Helen Koike Cc: dri-devel@lists.freedesktop.org, David Airlie , dnicoara@chromium.org, daniels@collabora.com, alexandros.frantzis@collabora.com, daniel.vetter@ffwll.ch, linux-kernel@vger.kernel.org, tomasz Figa , tina.zhang@intel.com, Sean Paul , kernel@collabora.com, nicholas.kazlauskas@amd.com, =?UTF-8?B?U3TDqXBoYW5l?= Marchesin , Gustavo Padovan , Sean Paul , Sandy Huang , linux-doc@vger.kernel.org, Thomas Zimmermann , Jonathan Corbet , Harry Wentland , Alex Deucher , Bhawanpreet Lakha , "David (ChunMing) Zhou" , Anthony Koo , Russell King , linux-rockchip@lists.infradead.org, Ville =?UTF-8?B?U3lyasOkbMOk?= , Rob Clark , Heiko =?UTF-8?B?U3TDvGJuZXI=?= , Eric Anholt , Leo Li , linux-arm-msm@vger.kernel.org, Christian =?UTF-8?B?S8O2bmln?= , linux-arm-kernel@lists.infradead.org, David Francis , Mikita Lipski , amd-gfx@lists.freedesktop.org, Maarten Lankhorst , Maxime Ripard , freedreno@lists.freedesktop.org, Mamta Shukla , Daniel Vetter Subject: Re: [PATCH v3 2/4] drm/atomic: rename async_{update,check} to amend_{update,check} Message-ID: <20190412163835.5407984f@collabora.com> In-Reply-To: References: <20190412125827.5877-1-helen.koike@collabora.com> <20190412125827.5877-3-helen.koike@collabora.com> <20190412154957.558e49f8@collabora.com> Organization: Collabora X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Message-ID: <20190412143835.kBMaXDXDMo7_hTs3skNaFSrl_5fMNSHQtMgOu2zzZj0@z> On Fri, 12 Apr 2019 11:06:13 -0300 Helen Koike wrote: > Hi Boris, > > On 4/12/19 10:49 AM, Boris Brezillon wrote: > > Hi Helen, > > > > On Fri, 12 Apr 2019 09:58:25 -0300 > > Helen Koike wrote: > > > >> Asynchronous update is the ability change the hw state at any time, not > >> only during vblank. > >> > >> Amend mode is the ability to perform 1000 commits to be applied as soon > >> as possible without waiting for 1000 vblanks. > >> > >> async updates can be seen as amend, but the opposite is not true. > >> > >> &drm_plane_helper_funcs.atomic_async_{update,check}() was being used by > >> drivers to implement amend and not async. So rename them to amend. > >> > >> Also improve docs explaining the difference. > >> > >> If asynchronous is required, normal page flip can be performed using > >> DRM_MODE_PAGE_FLIP_ASYNC flag. > >> > >> Signed-off-by: Helen Koike > >> > >> --- > >> Hello, > >> > >> I would like to officially clarify what async update means by adding it > >> in the docs. > >> Please correct me if I am wrong, but the current async_{update,check} > >> callbacks are being used to do amend (the legacy cursor behavior), i.e. > >> to allow 1000 updates without waiting for 1000 vblanks. > > > > Right now, the semantic of async update is driver dependent. Some > > drivers will amend the last commit touching that plane (amend semantic), > > others will update the plane buffer immediately which might cause > > tearing (async semantic). > > In my pov, async updates holds the properties of an amend update, so all > async updates we have are amend, but the opposite is not true. By doing that you keep the definition quite vague, and developers will still confused about what they should do when AMEND is requested. Why not distinguishing AMEND and ASYNC now? AMEND: replace the pending plane update (if any) by the new one, and make sure things will be applied on the next VBLANK (if nothing else amends the commit in the meantime) ASYNC: update things immediately (don't wait for VBLANK) > > > > >> > >> So I would like to clarify this in the docs and rename the current > >> callbacks to reflect this behaviour. > > > > I'm all for this clarification, but I don't think renaming the async > > hooks is a good idea, since some drivers will not do real 'amend'. So, > > you're changing the name, but it's still confusing :-). > > > > How about adding new hooks (and/or flags) for the AMEND case, and > > keeping the async path untouched. We can then let drivers that > > currently implement async as amend implement the amend hooks instead. > > Once you've done that, you can hook that up to the legacy cursor update > > path so that it first tries one then the other and finally falls back > > to a sync update if none of ASYNC/AMEND is possible. > > I kinda did this (I re-introduced async in the last patch in the > series). I know this order is confusing, but as rockchip doesn't > implement true async, I would have to do a bunch of modifs at once to > keep the commits consistent, but I can re-work on that if it makes > things clearer. Let's wait for more feedback before taking a decision on this aspect. > > > > >> > >> I also see that for real async updates, the flag > >> DRM_MODE_PAGE_FLIP_ASYNC can be used in a normal sync update (it is > >> already being used by some drivers actually, in the atomic path, not only > >> in the legacy page flip, at least is what I understood from > >> amdgpu_dm_atomic_commit_tail() implementation). > > > > Yes, right now, async does not necessarily imply non-block, but > > Daniel seemed to think that most users want non-block when they do an > > async page flip, so maybe it should be clarified too. > > users could combine NONBLOCK flag with PAGE_FLIP_ASYNC, no? (we need to > add code for it of course). I guess AMD goes through the sync update path to guarantee that fences are signaled before doing the page flip, but most of the time, when you do an async page flip you don't want to block :-).