Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932777AbbKMPgr (ORCPT ); Fri, 13 Nov 2015 10:36:47 -0500 Received: from mail-io0-f175.google.com ([209.85.223.175]:33084 "EHLO mail-io0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932374AbbKMPgo (ORCPT ); Fri, 13 Nov 2015 10:36:44 -0500 Date: Fri, 13 Nov 2015 08:36:29 -0700 From: Jens Axboe To: Chris Wilson Cc: Daniel Vetter , DRI Development , LKML Subject: Re: __i915_spin_request() sucks Message-ID: <20151113153629.GB8939@kernel.dk> References: <5644F850.2060803@kernel.dk> <5644F941.9090505@kernel.dk> <20151112221908.GA26194@nuc-i3427.alporthouse.com> <56451812.2050704@kernel.dk> <20151113091558.GN6247@nuc-i3427.alporthouse.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151113091558.GN6247@nuc-i3427.alporthouse.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1115 Lines: 38 Previous patch was obvious pre-coffee crap, this should work for using ktime to spin max 1usec. diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 5cf4a1998273..21192e55c33c 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -1148,17 +1148,18 @@ static bool missed_irq(struct drm_i915_private *dev_priv, static int __i915_spin_request(struct drm_i915_gem_request *req) { - unsigned long timeout; + ktime_t timeout; if (i915_gem_request_get_ring(req)->irq_refcount) return -EBUSY; - timeout = jiffies + 1; + timeout = ktime_get(); + ktime_add_us(timeout, 1); while (!need_resched()) { if (i915_gem_request_completed(req, true)) return 0; - if (time_after_eq(jiffies, timeout)) + if (ktime_after(ktime_get(), timeout)) break; cpu_relax_lowlatency(); -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/