On 14/05/2019 11:05, Chris Wilson wrote:
Use the client id to alternate the static_vcs balancer (-b context) across clients - otherwise all clients end up on vcs0 and do not match the context balancing employed by media-driver. This may want to be behind the -R flag, but I felt it was a fundamental property of static context balancing that to keep it disabled by default causes unfair comparisons and poor workload scheduling, defeating the purpose of testing.
I see your reasoning but it also completely matches the design of other balancers to keep it under control of -R switch. It can also already be achieved with the -G switch. Which is perhaps a bit confusing.. Having both would still make sense I think. (-G gives out engines rr to contexts sequentially across all clients, -R start each client contexts by rr.)
But I wouldn't enable it unconditionally. Because consider another balancer like rr and a two same workload instances of a long context followed by short second context batch. If suffers the same problem of poor scheduling until -R is added.
So I think we want to have the two balancers compatible in behaviour in this respect.
Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> --- benchmarks/gem_wsim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/gem_wsim.c b/benchmarks/gem_wsim.c index afb9644dd..8c7e30eb4 100644 --- a/benchmarks/gem_wsim.c +++ b/benchmarks/gem_wsim.c @@ -939,7 +939,7 @@ alloc_step_batch(struct workload *wrk, struct w_step *w, unsigned int flags) static void prepare_workload(unsigned int id, struct workload *wrk, unsigned int flags) { - unsigned int ctx_vcs = 0; + unsigned int ctx_vcs = id & 1;
Therefore I think "ctx_vcs = (flags & INITVCSRR) ? id & 1 : 0" here.
int max_ctx = -1; struct w_step *w; int i;
Regards, Tvrtko _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx