diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2017-05-13 10:41:54 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2017-05-15 14:40:44 +0100 |
commit | 9081d0805638aa7d4f9cbc05c881217d3eaf30e8 (patch) | |
tree | 1549d6f8ad433c24b784334ea3ebb9d0bc510d65 /drivers/gpu/drm/i915/selftests | |
parent | 2388cd9c5056b10c8e461ca2ab075f49d6f1b25d (diff) | |
download | op-kernel-dev-9081d0805638aa7d4f9cbc05c881217d3eaf30e8.zip op-kernel-dev-9081d0805638aa7d4f9cbc05c881217d3eaf30e8.tar.gz |
drm/i915: Fixup 64bit divides in timelines selftest
Some 64b divides snuck in when doing the prng timing compensation.
Fixes: 4797948071f6 ("drm/i915: Squash repeated awaits on the same fence")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170513094154.3581-1-chris@chris-wilson.co.uk
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/selftests')
-rw-r--r-- | drivers/gpu/drm/i915/selftests/i915_gem_timeline.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_timeline.c b/drivers/gpu/drm/i915/selftests/i915_gem_timeline.c index 6df00cc..7a44dab 100644 --- a/drivers/gpu/drm/i915/selftests/i915_gem_timeline.c +++ b/drivers/gpu/drm/i915/selftests/i915_gem_timeline.c @@ -126,7 +126,6 @@ static unsigned int random_engine(struct rnd_state *rnd) static int bench_sync(void *arg) { -#define M (1 << 20) struct rnd_state prng; struct intel_timeline *tl; unsigned long end_time, count; @@ -158,7 +157,7 @@ static int bench_sync(void *arg) kt = ktime_sub(ktime_get(), kt); pr_debug("%s: %lu random evaluations, %lluns/prng\n", __func__, count, (long long)div64_ul(ktime_to_ns(kt), count)); - prng32_1M = ktime_to_ns(kt) * M / count; + prng32_1M = div64_ul(ktime_to_ns(kt) << 20, count); /* Benchmark (only) setting random context ids */ prandom_seed_state(&prng, i915_selftest.random_seed); @@ -172,7 +171,7 @@ static int bench_sync(void *arg) count++; } while (!time_after(jiffies, end_time)); kt = ktime_sub(ktime_get(), kt); - kt = ktime_sub_ns(kt, count * prng32_1M * 2 / M); + kt = ktime_sub_ns(kt, (count * prng32_1M * 2) >> 20); pr_info("%s: %lu random insertions, %lluns/insert\n", __func__, count, (long long)div64_ul(ktime_to_ns(kt), count)); @@ -190,7 +189,7 @@ static int bench_sync(void *arg) } } kt = ktime_sub(ktime_get(), kt); - kt = ktime_sub_ns(kt, count * prng32_1M * 2 / M); + kt = ktime_sub_ns(kt, (count * prng32_1M * 2) >> 20); pr_info("%s: %lu random lookups, %lluns/lookup\n", __func__, count, (long long)div64_ul(ktime_to_ns(kt), count)); @@ -248,7 +247,7 @@ static int bench_sync(void *arg) count++; } while (!time_after(jiffies, end_time)); kt = ktime_sub(ktime_get(), kt); - kt = ktime_sub_ns(kt, count * prng32_1M * 2 / M); + kt = ktime_sub_ns(kt, (count * prng32_1M * 2) >> 20); pr_info("%s: %lu repeated insert/lookups, %lluns/op\n", __func__, count, (long long)div64_ul(ktime_to_ns(kt), count)); mock_timeline_destroy(tl); @@ -287,7 +286,6 @@ static int bench_sync(void *arg) } return 0; -#undef M } int i915_gem_timeline_mock_selftests(void) |