From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pavel Machek Subject: Re: [PATCH 2/2] drm/i915: Limit the busy wait on requests to 2us not 10ms! Date: Thu, 3 Dec 2015 23:03:17 +0100 Message-ID: <20151203220317.GE14427@amd> References: <1447594364-4206-1-git-send-email-chris@chris-wilson.co.uk> <1447594364-4206-2-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1447594364-4206-2-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Chris Wilson Cc: Jens Axboe , Tvrtko Ursulin , Daniel Vetter , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, stable@kernel.vger.org, "Rantala, Valtteri" , Eero Tamminen List-Id: dri-devel@lists.freedesktop.org SGkhCgo+IFJlcG9ydGVkLWJ5OiBKZW5zIEF4Ym9lIDxheGJvZUBrZXJuZWwuZGs+Cj4gTGluazog aHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMTUvMTEvMTIvNjIxCj4gQ2M6IEplbnMgQXhib2UgPGF4 Ym9lQGtlcm5lbC5kaz4KPiBDYzsgIlJvZ296aGtpbiwgRG1pdHJ5IFYiIDxkbWl0cnkudi5yb2dv emhraW5AaW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xs LmNoPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AbGludXguaW50ZWwuY29t Pgo+IENjOiBFZXJvIFRhbW1pbmVuIDxlZXJvLnQudGFtbWluZW5AaW50ZWwuY29tPgo+IENjOiAi UmFudGFsYSwgVmFsdHRlcmkiIDx2YWx0dGVyaS5yYW50YWxhQGludGVsLmNvbT4KPiBDYzogc3Rh YmxlQGtlcm5lbC52Z2VyLm9yZwo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jIHwgMjggKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQo+ICAxIGZpbGUgY2hhbmdlZCwg MjUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKPiBpbmRleCA3NDA1MzBjNTcxZDEuLjJhODgxNThiZDFmNyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwo+IEBAIC0xMTQ2LDE0ICsxMTQ2LDM2IEBAIHN0YXRpYyBib29sIG1pc3NlZF9p cnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJcmV0dXJuIHRlc3RfYml0 KHJpbmctPmlkLCAmZGV2X3ByaXYtPmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzKTsKPiAgfQo+ ICAKPiArc3RhdGljIHU2NCBsb2NhbF9jbG9ja191cyh1bnNpZ25lZCAqY3B1KQo+ICt7Cj4gKwl1 NjQgdDsKPiArCj4gKwkqY3B1ID0gZ2V0X2NwdSgpOwo+ICsJdCA9IGxvY2FsX2Nsb2NrKCkgPj4g MTA7Cj4gKwlwdXRfY3B1KCk7Cj4gKwo+ICsJcmV0dXJuIHQ7Cj4gK30KPiArCj4gK3N0YXRpYyBi b29sIGJ1c3l3YWl0X3N0b3AodTY0IHRpbWVvdXQsIHVuc2lnbmVkIGNwdSkKPiArewo+ICsJdW5z aWduZWQgdGhpc19jcHU7Cj4gKwo+ICsJaWYgKHRpbWVfYWZ0ZXI2NChsb2NhbF9jbG9ja191cygm dGhpc19jcHUpLCB0aW1lb3V0KSkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlyZXR1cm4gdGhp c19jcHUgIT0gY3B1Owo+ICt9CgpQZXJoYXBzIHlvdSB3YW50IHRvIGFzayB0aGUgdGltZWtlZXBp bmcgcGVvcGxlIGZvciB0aGUgcmlnaHQKcHJpbWl0aXZlPyBJIGd1ZXNzIHlvdSBhcmUgbm90IHRo ZSBvbmx5IG9uZSBuZWVkaW5nIHRoaXMuLgoJCQkJCQkJCQlQYXZlbAoJCQkJCQkJCQkKLS0gCihl bmdsaXNoKSBodHRwOi8vd3d3LmxpdmVqb3VybmFsLmNvbS9+cGF2ZWxtYWNoZWsKKGNlc2t5LCBw aWN0dXJlcykgaHR0cDovL2F0cmV5Lmthcmxpbi5tZmYuY3VuaS5jei9+cGF2ZWwvcGljdHVyZS9o b3JzZXMvYmxvZy5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752689AbbLCWDV (ORCPT ); Thu, 3 Dec 2015 17:03:21 -0500 Received: from atrey.karlin.mff.cuni.cz ([195.113.26.193]:37178 "EHLO atrey.karlin.mff.cuni.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752516AbbLCWDT (ORCPT ); Thu, 3 Dec 2015 17:03:19 -0500 Date: Thu, 3 Dec 2015 23:03:17 +0100 From: Pavel Machek To: Chris Wilson Cc: Jens Axboe , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Daniel Vetter , Tvrtko Ursulin , Eero Tamminen , "Rantala, Valtteri" , stable@kernel.vger.org Subject: Re: [PATCH 2/2] drm/i915: Limit the busy wait on requests to 2us not 10ms! Message-ID: <20151203220317.GE14427@amd> References: <1447594364-4206-1-git-send-email-chris@chris-wilson.co.uk> <1447594364-4206-2-git-send-email-chris@chris-wilson.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1447594364-4206-2-git-send-email-chris@chris-wilson.co.uk> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi! > Reported-by: Jens Axboe > Link: https://lkml.org/lkml/2015/11/12/621 > Cc: Jens Axboe > Cc; "Rogozhkin, Dmitry V" > Cc: Daniel Vetter > Cc: Tvrtko Ursulin > Cc: Eero Tamminen > Cc: "Rantala, Valtteri" > Cc: stable@kernel.vger.org > --- > drivers/gpu/drm/i915/i915_gem.c | 28 +++++++++++++++++++++++++--- > 1 file changed, 25 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 740530c571d1..2a88158bd1f7 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -1146,14 +1146,36 @@ static bool missed_irq(struct drm_i915_private *dev_priv, > return test_bit(ring->id, &dev_priv->gpu_error.missed_irq_rings); > } > > +static u64 local_clock_us(unsigned *cpu) > +{ > + u64 t; > + > + *cpu = get_cpu(); > + t = local_clock() >> 10; > + put_cpu(); > + > + return t; > +} > + > +static bool busywait_stop(u64 timeout, unsigned cpu) > +{ > + unsigned this_cpu; > + > + if (time_after64(local_clock_us(&this_cpu), timeout)) > + return true; > + > + return this_cpu != cpu; > +} Perhaps you want to ask the timekeeping people for the right primitive? I guess you are not the only one needing this.. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html