From 62a1f544fcbb264b8b70d25ed9fb7395e109160a Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 9 May 2017 12:42:41 +0100 Subject: wsim: Per-client prng pool for miscellaneous randoms Signed-off-by: Chris Wilson --- benchmarks/gem_wsim.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'benchmarks/gem_wsim.c') diff --git a/benchmarks/gem_wsim.c b/benchmarks/gem_wsim.c index 8023cd0e..2a8af7ba 100644 --- a/benchmarks/gem_wsim.c +++ b/benchmarks/gem_wsim.c @@ -105,6 +105,8 @@ struct workload unsigned int nr_steps; struct w_step *steps; + uint32_t prng; + struct timespec repeat_start; int pipe[2]; @@ -628,6 +630,8 @@ prepare_workload(unsigned int id, struct workload *wrk, unsigned int flags) struct w_step *w; int i; + wrk->prng = rand(); + if (flags & INITVCSRR) wrk->vcs_rr = id & 1; @@ -818,7 +822,7 @@ __rt_balance(const struct workload_balancer *balancer, else if (qd[VCS2] < qd[VCS1]) n = 1; else if (random) - n = hars_petruska_f54_1_random_unsafe() & 1; + n = hars_petruska_f54_1_random(&wrk->prng) & 1; else n = wrk->vcs_rr; @@ -845,7 +849,6 @@ static enum intel_engine_id rtr_balance(const struct workload_balancer *balancer, struct workload *wrk, struct w_step *w) { - return __rt_balance(balancer, wrk, w, true); } -- cgit v1.2.3