From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755222AbaLHMgA (ORCPT ); Mon, 8 Dec 2014 07:36:00 -0500 Received: from mga03.intel.com ([134.134.136.65]:38156 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754534AbaLHMf7 (ORCPT ); Mon, 8 Dec 2014 07:35:59 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,538,1413270000"; d="scan'208";a="620377335" From: Jani Nikula To: Daniel Vetter , Intel Graphics Development Cc: Daniel Vetter , LKML , John Stultz , Daniel Vetter , Thomas Gleixner Subject: Re: [Intel-gfx] [PATCH] drm/i915: compute wait_ioctl timeout correctly In-Reply-To: <1417687974-18681-1-git-send-email-daniel.vetter@ffwll.ch> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <1417166995-10803-1-git-send-email-daniel.vetter@ffwll.ch> <1417687974-18681-1-git-send-email-daniel.vetter@ffwll.ch> User-Agent: Notmuch/0.19~rc1+1~g08b4944 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-pc-linux-gnu) Date: Mon, 08 Dec 2014 14:34:51 +0200 Message-ID: <87lhmimiac.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 04 Dec 2014, Daniel Vetter wrote: > We've lost the +1 required for correct timeouts in > > commit 5ed0bdf21a85d78e04f89f15ccf227562177cbd9 > Author: Thomas Gleixner > Date: Wed Jul 16 21:05:06 2014 +0000 > > drm: i915: Use nsec based interfaces > > Use ktime_get_raw_ns() and get rid of the back and forth timespec > conversions. > > Signed-off-by: Thomas Gleixner > Acked-by: Daniel Vetter > Signed-off-by: John Stultz > > So fix this up by reinstating our handrolled _timeout function. While > at it bother with handling MAX_JIFFIES. > > v2: Convert to usecs (we don't care about the accuracy anyway) first > to avoid overflow issues Dave Gordon spotted. > > v3: Drop the explicit MAX_JIFFY_OFFSET check, usecs_to_jiffies should > take care of that already. It might be a bit too enthusiastic about it > though. > > v4: Chris has a much nicer color, so use his implementation. > > This requires to export nsec_to_jiffies from time.c. > > Cc: Chris Wilson > Cc: Dave Gordon > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82749 > Cc: Thomas Gleixner > Cc: John Stultz > Signed-off-by: Daniel Vetter Pushed to drm-intel-next-fixes, thanks for the patch. BR, Jani. > --- > drivers/gpu/drm/i915/i915_drv.h | 5 +++++ > drivers/gpu/drm/i915/i915_gem.c | 3 ++- > kernel/time/time.c | 1 + > 3 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 049482f5d9ac..564a45f4a0ab 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -3097,6 +3097,11 @@ static inline unsigned long msecs_to_jiffies_timeout(const unsigned int m) > return min_t(unsigned long, MAX_JIFFY_OFFSET, j + 1); > } > > +static inline unsigned long nsecs_to_jiffies_timeout(const u64 n) > +{ > + return min_t(u64, MAX_JIFFY_OFFSET, nsecs_to_jiffies64(n) + 1); > +} > + > static inline unsigned long > timespec_to_jiffies_timeout(const struct timespec *value) > { > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 9d362d320d82..04a9f26407ae 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -1226,7 +1226,8 @@ int __i915_wait_request(struct drm_i915_gem_request *req, > if (i915_gem_request_completed(req, true)) > return 0; > > - timeout_expire = timeout ? jiffies + nsecs_to_jiffies((u64)*timeout) : 0; > + timeout_expire = timeout ? > + jiffies + nsecs_to_jiffies_timeout((u64)*timeout) : 0; > > if (INTEL_INFO(dev)->gen >= 6 && ring->id == RCS && can_wait_boost(file_priv)) { > gen6_rps_boost(dev_priv); > diff --git a/kernel/time/time.c b/kernel/time/time.c > index a9ae20fb0b11..8fae82ca5cbf 100644 > --- a/kernel/time/time.c > +++ b/kernel/time/time.c > @@ -745,6 +745,7 @@ u64 nsecs_to_jiffies64(u64 n) > return div_u64(n * 9, (9ull * NSEC_PER_SEC + HZ / 2) / HZ); > #endif > } > +EXPORT_SYMBOL(nsecs_to_jiffies64); > > /** > * nsecs_to_jiffies - Convert nsecs in u64 to jiffies > -- > 1.9.3 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Technology Center From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: compute wait_ioctl timeout correctly Date: Mon, 08 Dec 2014 14:34:51 +0200 Message-ID: <87lhmimiac.fsf@intel.com> References: <1417166995-10803-1-git-send-email-daniel.vetter@ffwll.ch> <1417687974-18681-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 78A9E6E561 for ; Mon, 8 Dec 2014 04:35:11 -0800 (PST) In-Reply-To: <1417687974-18681-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel Graphics Development Cc: Daniel Vetter , Thomas Gleixner , John Stultz , LKML , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAwNCBEZWMgMjAxNCwgRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5j aD4gd3JvdGU6Cj4gV2UndmUgbG9zdCB0aGUgKzEgcmVxdWlyZWQgZm9yIGNvcnJlY3QgdGltZW91 dHMgaW4KPgo+IGNvbW1pdCA1ZWQwYmRmMjFhODVkNzhlMDRmODlmMTVjY2YyMjc1NjIxNzdjYmQ5 Cj4gQXV0aG9yOiBUaG9tYXMgR2xlaXhuZXIgPHRnbHhAbGludXRyb25peC5kZT4KPiBEYXRlOiAg IFdlZCBKdWwgMTYgMjE6MDU6MDYgMjAxNCArMDAwMAo+Cj4gICAgIGRybTogaTkxNTogVXNlIG5z ZWMgYmFzZWQgaW50ZXJmYWNlcwo+Cj4gICAgIFVzZSBrdGltZV9nZXRfcmF3X25zKCkgYW5kIGdl dCByaWQgb2YgdGhlIGJhY2sgYW5kIGZvcnRoIHRpbWVzcGVjCj4gICAgIGNvbnZlcnNpb25zLgo+ Cj4gICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRl Pgo+ICAgICBBY2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4K PiAgICAgU2lnbmVkLW9mZi1ieTogSm9obiBTdHVsdHogPGpvaG4uc3R1bHR6QGxpbmFyby5vcmc+ Cj4KPiBTbyBmaXggdGhpcyB1cCBieSByZWluc3RhdGluZyBvdXIgaGFuZHJvbGxlZCBfdGltZW91 dCBmdW5jdGlvbi4gV2hpbGUKPiBhdCBpdCBib3RoZXIgd2l0aCBoYW5kbGluZyBNQVhfSklGRklF Uy4KPgo+IHYyOiBDb252ZXJ0IHRvIHVzZWNzICh3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSBhY2N1 cmFjeSBhbnl3YXkpIGZpcnN0Cj4gdG8gYXZvaWQgb3ZlcmZsb3cgaXNzdWVzIERhdmUgR29yZG9u IHNwb3R0ZWQuCj4KPiB2MzogRHJvcCB0aGUgZXhwbGljaXQgTUFYX0pJRkZZX09GRlNFVCBjaGVj aywgdXNlY3NfdG9famlmZmllcyBzaG91bGQKPiB0YWtlIGNhcmUgb2YgdGhhdCBhbHJlYWR5LiBJ dCBtaWdodCBiZSBhIGJpdCB0b28gZW50aHVzaWFzdGljIGFib3V0IGl0Cj4gdGhvdWdoLgo+Cj4g djQ6IENocmlzIGhhcyBhIG11Y2ggbmljZXIgY29sb3IsIHNvIHVzZSBoaXMgaW1wbGVtZW50YXRp b24uCj4KPiBUaGlzIHJlcXVpcmVzIHRvIGV4cG9ydCBuc2VjX3RvX2ppZmZpZXMgZnJvbSB0aW1l LmMuCj4KPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6 IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Cj4gQnVnemlsbGE6IGh0dHBz Oi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTgyNzQ5Cj4gQ2M6IFRob21h cyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgo+IENjOiBKb2huIFN0dWx0eiA8am9obi5z dHVsdHpAbGluYXJvLm9yZz4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGludGVsLmNvbT4KClB1c2hlZCB0byBkcm0taW50ZWwtbmV4dC1maXhlcywgdGhhbmtz IGZvciB0aGUgcGF0Y2guCgpCUiwKSmFuaS4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggfCA1ICsrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg fCAzICsrLQo+ICBrZXJuZWwvdGltZS90aW1lLmMgICAgICAgICAgICAgIHwgMSArCj4gIDMgZmls ZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiBpbmRleCAwNDk0ODJmNWQ5YWMuLjU2NGE0NWY0YTBhYiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0zMDk3LDYgKzMwOTcsMTEgQEAgc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBsb25nIG1zZWNzX3RvX2ppZmZpZXNfdGltZW91dChjb25zdCB1bnNpZ25lZCBp bnQgbSkKPiAgCXJldHVybiBtaW5fdCh1bnNpZ25lZCBsb25nLCBNQVhfSklGRllfT0ZGU0VULCBq ICsgMSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBuc2Vjc190b19q aWZmaWVzX3RpbWVvdXQoY29uc3QgdTY0IG4pCj4gK3sKPiArICAgICAgICByZXR1cm4gbWluX3Qo dTY0LCBNQVhfSklGRllfT0ZGU0VULCBuc2Vjc190b19qaWZmaWVzNjQobikgKyAxKTsKPiArfQo+ ICsKPiAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCj4gIHRpbWVzcGVjX3RvX2ppZmZpZXNf dGltZW91dChjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnZhbHVlKQo+ICB7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCj4gaW5kZXggOWQzNjJkMzIwZDgyLi4wNGE5ZjI2NDA3YWUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMTIyNiw3ICsxMjI2LDggQEAgaW50IF9faTkxNV93YWl0 X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gIAlpZiAoaTkxNV9n ZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVxLCB0cnVlKSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4gLQl0 aW1lb3V0X2V4cGlyZSA9IHRpbWVvdXQgPyBqaWZmaWVzICsgbnNlY3NfdG9famlmZmllcygodTY0 KSp0aW1lb3V0KSA6IDA7Cj4gKwl0aW1lb3V0X2V4cGlyZSA9IHRpbWVvdXQgPwo+ICsJCWppZmZp ZXMgKyBuc2Vjc190b19qaWZmaWVzX3RpbWVvdXQoKHU2NCkqdGltZW91dCkgOiAwOwo+ICAKPiAg CWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2ICYmIHJpbmctPmlkID09IFJDUyAmJiBjYW5f d2FpdF9ib29zdChmaWxlX3ByaXYpKSB7Cj4gIAkJZ2VuNl9ycHNfYm9vc3QoZGV2X3ByaXYpOwo+ IGRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS90aW1lLmMgYi9rZXJuZWwvdGltZS90aW1lLmMKPiBp bmRleCBhOWFlMjBmYjBiMTEuLjhmYWU4MmNhNWNiZiAxMDA2NDQKPiAtLS0gYS9rZXJuZWwvdGlt ZS90aW1lLmMKPiArKysgYi9rZXJuZWwvdGltZS90aW1lLmMKPiBAQCAtNzQ1LDYgKzc0NSw3IEBA IHU2NCBuc2Vjc190b19qaWZmaWVzNjQodTY0IG4pCj4gIAlyZXR1cm4gZGl2X3U2NChuICogOSwg KDl1bGwgKiBOU0VDX1BFUl9TRUMgKyBIWiAvIDIpIC8gSFopOwo+ICAjZW5kaWYKPiAgfQo+ICtF WFBPUlRfU1lNQk9MKG5zZWNzX3RvX2ppZmZpZXM2NCk7Cj4gIAo+ICAvKioKPiAgICogbnNlY3Nf dG9famlmZmllcyAtIENvbnZlcnQgbnNlY3MgaW4gdTY0IHRvIGppZmZpZXMKPiAtLSAKPiAxLjku Mwo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJ bnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK Ci0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK