[igt-dev] [PATCH i-g-t 17/21] gem_wsim: Infinite batch support

Chris Wilson chris at chris-wilson.co.uk
Mon May 13 14:11:34 UTC 2019


Quoting Tvrtko Ursulin (2019-05-13 14:59:01)
> 
> On 10/05/2019 14:48, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2019-05-08 13:10:54)
> > So preemption check interval is given by batch_start - mmap_start.
> > Which is limited to a max of 64 bytes. That might be a bit excessive on
> > the frequency of doing MI_BB_START, certainly for gen7, gen8+ is a tad
> > more forgiving i.e. it has more bw and doesn't starve the cpu as much.
> 
> Nope, mmap_start is not controlling the batch buffer at all. It is just 
> to find the calculated batch_start given that mmap() was given a 
> round-down PAGE_ALIGN start address. Actual preemption check interval is 
> one MI_NOOP. /o\ How much would you recommend to be safe?

We've been using 64 bytes routinely without too much hassle, but that
can be noticeable. For the dummyload we use roughly the full page and
that seems ok, with a few microseconds of extra latency. If that's
tolerable, I would opt for trying to use a full page for the recursive
batch. Alternatively, we can use a MI_SEMA_WAIT | POLL on a user
address (just throwing it out there as an option).
-Chris


More information about the igt-dev mailing list