From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 11/11] dma-buf: Do a fast lockless check for poll with timeout=0 Date: Sun, 25 Sep 2016 22:44:34 +0200 Message-ID: <20160925204434.GQ20761@phenom.ffwll.local> References: <20160829070834.22296-1-chris@chris-wilson.co.uk> <20160829070834.22296-11-chris@chris-wilson.co.uk> <20160923135044.GM3988@dvetter-linux.ger.corp.intel.com> <20160923152044.GG28107@nuc-i3427.alporthouse.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: Christian =?iso-8859-1?Q?K=F6nig?= Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, Sumit Semwal , linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBTZXAgMjMsIDIwMTYgYXQgMDc6NTk6NDRQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiBBbSAyMy4wOS4yMDE2IHVtIDE3OjIwIHNjaHJpZWIgQ2hyaXMgV2lsc29uOgo+ ID4gT24gRnJpLCBTZXAgMjMsIDIwMTYgYXQgMDM6NTA6NDRQTSArMDIwMCwgRGFuaWVsIFZldHRl ciB3cm90ZToKPiA+ID4gT24gTW9uLCBBdWcgMjksIDIwMTYgYXQgMDg6MDg6MzRBTSArMDEwMCwg Q2hyaXMgV2lsc29uIHdyb3RlOgo+ID4gPiA+IEN1cnJlbnRseSB3ZSBpbnN0YWxsIGEgY2FsbGJh Y2sgZm9yIHBlcmZvcm1pbmcgcG9sbCBvbiBhIGRtYS1idWYsCj4gPiA+ID4gaXJyZXNwZWN0aXZl IG9mIHRoZSB0aW1lb3V0LiBUaGlzIGludm9sdmVzIHRha2luZyBhIHNwaW5sb2NrLCBhcyB3ZWxs IGFzCj4gPiA+ID4gdW5uZWNlc3Nhcnkgd29yaywgYW5kIGdyZWF0bHkgcmVkdWNlcyBzY2FsaW5n IG9mIHBvbGwoLnRpbWVvdXQ9MCkgYWNyb3NzCj4gPiA+ID4gbXVsdGlwbGUgdGhyZWFkcy4KPiA+ ID4gPiAKPiA+ID4gPiBXZSBjYW4gcXVlcnkgd2hldGhlciB0aGUgcG9sbCB3aWxsIGJsb2NrIHBy aW9yIHRvIGluc3RhbGxpbmcgdGhlCj4gPiA+ID4gY2FsbGJhY2sgdG8gbWFrZSB0aGUgYnVzeS1x dWVyeSBmYXN0Lgo+ID4gPiA+IAo+ID4gPiA+IFNpbmdsZSB0aHJlYWQ6IDYwJSBmYXN0ZXIKPiA+ ID4gPiA4IHRocmVhZHMgb24gNCAoKzQgSFQpIGNvcmVzOiA2MDAlIGZhc3Rlcgo+ID4gPiA+IAo+ ID4gPiA+IFN0aWxsIG5vdCBxdWl0ZSB0aGUgcGVyZmVjdCBzY2FsaW5nIHdlIGdldCB3aXRoIGEg bmF0aXZlIGJ1c3kgaW9jdGwsIGJ1dAo+ID4gPiA+IHBvbGwoZG1hYnVmKSBpcyBmYXN0ZXIgZHVl IHRvIHRoZSBxdWlja2VyIGxvb2t1cCBvZiB0aGUgb2JqZWN0IGFuZAo+ID4gPiA+IGF2b2lkaW5n IGRybV9pb2N0bCgpLgo+ID4gPiA+IAo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4gPiA+IENjOiBTdW1pdCBTZW13YWwgPHN1 bWl0LnNlbXdhbEBsaW5hcm8ub3JnPgo+ID4gPiA+IENjOiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5l bC5vcmcKPiA+ID4gPiBDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ IENjOiBsaW5hcm8tbW0tc2lnQGxpc3RzLmxpbmFyby5vcmcKPiA+ID4gPiBSZXZpZXdlZC1ieTog RGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4gTmVlZCB0byBzdHJp a2UgdGhlIHItYiBoZXJlLCBzaW5jZSBDaHJpc3RpYW4gS8O2bmlnIHBvaW50ZWQgb3V0IHRoYXQK PiA+ID4gb2JqZWN0cyB3b24ndCBtYWdpY2FsbHkgc3dpdGNoIHNpZ25hbGxpbmcgb24uCj4gPiBP aCwgaXQgYWxzbyBtZWFucyB0aGF0Cj4gPiAKPiA+IGNvbW1pdCBmYjhiN2QyYjlkODBlMWU3MWYz NzllNTczNTU5MzZiZDJiMDI0YmU5Cj4gPiBBdXRob3I6IEphbW15IFpob3UgPEphbW15Llpob3VA YW1kLmNvbT4KPiA+IERhdGU6ICAgV2VkIEphbiAyMSAxODozNTo0NyAyMDE1ICswODAwCj4gPiAK PiA+ICAgICAgcmVzZXJ2YXRpb246IHdhaXQgb25seSB3aXRoIG5vbi16ZXJvIHRpbWVvdXQgc3Bl Y2lmaWVkICh2MykKPiA+ICAgICAgV2hlbiB0aGUgdGltZW91dCB2YWx1ZSBwYXNzZWQgdG8gcmVz ZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3UKPiA+ICAgICAgaXMgemVybywgbm8gd2Fp dCBzaG91bGQgYmUgZG9uZSBpZiB0aGUgZmVuY2VzIGFyZSBub3Qgc2lnbmFsZWQuCj4gPiAgICAg IFJldHVybiAnMScgZm9yIGlkbGUgYW5kICcwJyBmb3IgYnVzeSBpZiB0aGUgc3BlY2lmaWVkIHRp bWVvdXQgaXMgJzAnCj4gPiAgICAgIHRvIGtlZXAgY29uc2lzdGVudCB3aXRoIHRoZSBjYXNlIG9m IG5vbi16ZXJvIHRpbWVvdXQuCj4gPiAgICAgIHYyOiBjYWxsIGZlbmNlX3B1dCBpZiBub3Qgc2ln bmFsZWQgaW4gdGhlIGNhc2Ugb2YgdGltZW91dD09MAo+ID4gICAgICB2Mzogc3dpdGNoIHRvIHJl c2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdQo+ID4gICAgICBTaWduZWQtb2ZmLWJ5 OiBKYW1teSBaaG91IDxKYW1teS5aaG91QGFtZC5jb20+Cj4gPiAgICAgIFJldmlld2VkLWJ5OiBD aHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gPiAgICAgIFJldmll d2VkLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cj4gPiAgICAg IFJldmlld2VkLUJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAY2Fub25p Y2FsLmNvbT4KPiA+ICAgICAgU2lnbmVkLW9mZi1ieTogU3VtaXQgU2Vtd2FsIDxzdW1pdC5zZW13 YWxAbGluYXJvLm9yZz4KPiA+IAo+ID4gaXMgd3JvbmcuIEFuZCByZXNlcnZhdGlvbl9vYmplY3Rf dGVzdF9zaWduYWxlZF9yY3UoKSBpcyB1bnJlbGlhYmxlLgo+IAo+IFVwcyBpbmRlZWQsIHRoYXQg cGF0Y2ggaXMgd3JvbmcgYXMgd2VsbC4KPiAKPiBJIHN1Z2dlc3QgdGhhdCB3ZSBqdXN0IGVuYWJs ZSB0aGUgc2lnbmFsaW5nIGluIHRoaXMgY2FzZSBhcyB3ZWxsLgoKV2lsbCB5b3UvWmhvdSB0YWtl IGNhcmUgb2YgdGhpcyBjb3JuZXIgY2FzZT8gSnVzdCBzbyBJIGNhbid0IGZvcmdldCBhYm91dApp dCA7LSkKClRoYW5rcywgRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVy LCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wm0-f68.google.com ([74.125.82.68]:35663 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933812AbcIYUoi (ORCPT ); Sun, 25 Sep 2016 16:44:38 -0400 Received: by mail-wm0-f68.google.com with SMTP id 133so11225724wmq.2 for ; Sun, 25 Sep 2016 13:44:37 -0700 (PDT) Date: Sun, 25 Sep 2016 22:44:34 +0200 From: Daniel Vetter To: Christian =?iso-8859-1?Q?K=F6nig?= Cc: Chris Wilson , Daniel Vetter , dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, intel-gfx@lists.freedesktop.org, linux-media@vger.kernel.org, Sumit Semwal Subject: Re: [Intel-gfx] [PATCH 11/11] dma-buf: Do a fast lockless check for poll with timeout=0 Message-ID: <20160925204434.GQ20761@phenom.ffwll.local> References: <20160829070834.22296-1-chris@chris-wilson.co.uk> <20160829070834.22296-11-chris@chris-wilson.co.uk> <20160923135044.GM3988@dvetter-linux.ger.corp.intel.com> <20160923152044.GG28107@nuc-i3427.alporthouse.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: linux-media-owner@vger.kernel.org List-ID: On Fri, Sep 23, 2016 at 07:59:44PM +0200, Christian König wrote: > Am 23.09.2016 um 17:20 schrieb Chris Wilson: > > On Fri, Sep 23, 2016 at 03:50:44PM +0200, Daniel Vetter wrote: > > > On Mon, Aug 29, 2016 at 08:08:34AM +0100, Chris Wilson wrote: > > > > Currently we install a callback for performing poll on a dma-buf, > > > > irrespective of the timeout. This involves taking a spinlock, as well as > > > > unnecessary work, and greatly reduces scaling of poll(.timeout=0) across > > > > multiple threads. > > > > > > > > We can query whether the poll will block prior to installing the > > > > callback to make the busy-query fast. > > > > > > > > Single thread: 60% faster > > > > 8 threads on 4 (+4 HT) cores: 600% faster > > > > > > > > Still not quite the perfect scaling we get with a native busy ioctl, but > > > > poll(dmabuf) is faster due to the quicker lookup of the object and > > > > avoiding drm_ioctl(). > > > > > > > > Signed-off-by: Chris Wilson > > > > Cc: Sumit Semwal > > > > Cc: linux-media@vger.kernel.org > > > > Cc: dri-devel@lists.freedesktop.org > > > > Cc: linaro-mm-sig@lists.linaro.org > > > > Reviewed-by: Daniel Vetter > > > Need to strike the r-b here, since Christian König pointed out that > > > objects won't magically switch signalling on. > > Oh, it also means that > > > > commit fb8b7d2b9d80e1e71f379e57355936bd2b024be9 > > Author: Jammy Zhou > > Date: Wed Jan 21 18:35:47 2015 +0800 > > > > reservation: wait only with non-zero timeout specified (v3) > > When the timeout value passed to reservation_object_wait_timeout_rcu > > is zero, no wait should be done if the fences are not signaled. > > Return '1' for idle and '0' for busy if the specified timeout is '0' > > to keep consistent with the case of non-zero timeout. > > v2: call fence_put if not signaled in the case of timeout==0 > > v3: switch to reservation_object_test_signaled_rcu > > Signed-off-by: Jammy Zhou > > Reviewed-by: Christian König > > Reviewed-by: Alex Deucher > > Reviewed-By: Maarten Lankhorst > > Signed-off-by: Sumit Semwal > > > > is wrong. And reservation_object_test_signaled_rcu() is unreliable. > > Ups indeed, that patch is wrong as well. > > I suggest that we just enable the signaling in this case as well. Will you/Zhou take care of this corner case? Just so I can't forget about it ;-) Thanks, Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch