From: Jani Nikula <jani.nikula@linux.intel.com> To: Daniel Vetter <daniel.vetter@ffwll.ch>, Intel Graphics Development <intel-gfx@lists.freedesktop.org> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, LKML <linux-kernel@vger.kernel.org>, John Stultz <john.stultz@linaro.org>, Daniel Vetter <daniel.vetter@intel.com>, Thomas Gleixner <tglx@linutronix.de> Subject: Re: [Intel-gfx] [PATCH] drm/i915: compute wait_ioctl timeout correctly Date: Mon, 08 Dec 2014 14:34:51 +0200 [thread overview] Message-ID: <87lhmimiac.fsf@intel.com> (raw) In-Reply-To: <1417687974-18681-1-git-send-email-daniel.vetter@ffwll.ch> On Thu, 04 Dec 2014, Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > We've lost the +1 required for correct timeouts in > > commit 5ed0bdf21a85d78e04f89f15ccf227562177cbd9 > Author: Thomas Gleixner <tglx@linutronix.de> > 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 <tglx@linutronix.de> > Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > Signed-off-by: John Stultz <john.stultz@linaro.org> > > 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 <chris@chris-wilson.co.uk> > Cc: Dave Gordon <david.s.gordon@intel.com> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82749 > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: John Stultz <john.stultz@linaro.org> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> 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
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com> To: Intel Graphics Development <intel-gfx@lists.freedesktop.org> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Thomas Gleixner <tglx@linutronix.de>, John Stultz <john.stultz@linaro.org>, LKML <linux-kernel@vger.kernel.org>, Daniel Vetter <daniel.vetter@intel.com> Subject: Re: [PATCH] drm/i915: compute wait_ioctl timeout correctly Date: Mon, 08 Dec 2014 14:34:51 +0200 [thread overview] Message-ID: <87lhmimiac.fsf@intel.com> (raw) In-Reply-To: <1417687974-18681-1-git-send-email-daniel.vetter@ffwll.ch> On Thu, 04 Dec 2014, Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > We've lost the +1 required for correct timeouts in > > commit 5ed0bdf21a85d78e04f89f15ccf227562177cbd9 > Author: Thomas Gleixner <tglx@linutronix.de> > 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 <tglx@linutronix.de> > Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > Signed-off-by: John Stultz <john.stultz@linaro.org> > > 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 <chris@chris-wilson.co.uk> > Cc: Dave Gordon <david.s.gordon@intel.com> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82749 > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: John Stultz <john.stultz@linaro.org> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2014-12-08 12:36 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-11-28 9:29 [PATCH 1/2] drm/i915: compute wait_ioctl timeout correctly Daniel Vetter 2014-11-28 9:29 ` [PATCH 2/2] drm/i915: Handle inaccurate time conversion issues Daniel Vetter 2014-11-28 11:08 ` Chris Wilson 2014-11-28 13:30 ` Daniel Vetter 2014-11-28 12:13 ` Chris Wilson 2014-11-28 19:09 ` [PATCH 2/2] drm/i915: Handle inaccurate time conversion shuang.he 2014-12-08 12:34 ` [PATCH 2/2] drm/i915: Handle inaccurate time conversion issues Jani Nikula 2014-11-28 10:09 ` [PATCH 1/2] drm/i915: compute wait_ioctl timeout correctly Chris Wilson 2014-11-28 13:46 ` Dave Gordon 2014-12-02 14:56 ` Daniel Vetter 2014-12-02 15:22 ` [PATCH] " Daniel Vetter 2014-12-02 15:22 ` Daniel Vetter 2014-12-02 15:36 ` Daniel Vetter 2014-12-02 15:36 ` Daniel Vetter 2014-12-02 16:35 ` [Intel-gfx] " Chris Wilson 2014-12-02 16:35 ` Chris Wilson 2014-12-02 16:54 ` [Intel-gfx] " John Stultz 2014-12-03 9:22 ` Daniel Vetter 2014-12-03 9:22 ` Daniel Vetter 2014-12-03 10:28 ` [Intel-gfx] " Imre Deak 2014-12-03 10:28 ` Imre Deak 2014-12-03 14:30 ` [Intel-gfx] " Daniel Vetter 2014-12-03 14:30 ` Daniel Vetter 2014-12-03 19:07 ` [Intel-gfx] " John Stultz 2014-12-03 19:07 ` John Stultz 2014-12-04 10:42 ` [Intel-gfx] " Daniel Vetter 2014-12-04 10:42 ` Daniel Vetter 2014-12-04 17:42 ` [Intel-gfx] " John Stultz 2014-12-04 17:42 ` John Stultz 2014-12-04 17:50 ` [Intel-gfx] " Daniel Vetter 2014-12-04 17:50 ` Daniel Vetter 2014-12-04 18:16 ` [Intel-gfx] " John Stultz 2014-12-04 18:16 ` John Stultz 2014-12-04 18:51 ` [Intel-gfx] " Daniel Vetter 2014-12-04 18:51 ` Daniel Vetter 2014-12-04 20:35 ` [Intel-gfx] " John Stultz 2014-12-04 20:35 ` John Stultz 2014-12-05 9:16 ` [Intel-gfx] " Daniel Vetter 2014-12-05 9:16 ` Daniel Vetter 2014-12-03 5:21 ` shuang.he 2014-12-03 5:51 ` shuang.he 2014-12-04 10:12 ` Daniel Vetter 2014-12-04 10:12 ` Daniel Vetter 2014-12-04 17:03 ` shuang.he 2014-12-04 17:45 ` John Stultz 2014-12-04 17:45 ` John Stultz 2014-12-08 12:34 ` Jani Nikula [this message] 2014-12-08 12:34 ` Jani Nikula
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=87lhmimiac.fsf@intel.com \ --to=jani.nikula@linux.intel.com \ --cc=daniel.vetter@ffwll.ch \ --cc=daniel.vetter@intel.com \ --cc=intel-gfx@lists.freedesktop.org \ --cc=john.stultz@linaro.org \ --cc=linux-kernel@vger.kernel.org \ --cc=tglx@linutronix.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.