[Intel-gfx] [PATCH] drm/i915: Extend wait-ioctl to only wait on writes

Chris Wilson chris at chris-wilson.co.uk
Wed Mar 29 16:09:05 UTC 2017


On Wed, Mar 29, 2017 at 03:58:26PM +0100, Chris Wilson wrote:
> Currently, we allow read-read CPU/GPU concurrency via set-domain-ioctl,
> but we don't have a similar facility for a plain wait-ioctl. If we add a
> new flag that userspace can use to opt-in for only waiting for GPU
> writes, userspace can use it to co-ordinate its own read-read
> concurrency (without the side-effect of touching cache domains on the
> GEM object).
> 
> To test whether this flag is available, userspace needs to do a query
> operation like:
> 
> bool test_wait_has_read_only(int fd)
> {
> 	struct drm_i915_gem_wait arg = { .flags = I915_WAIT_READ_ONLY };
> 	int err = 0;
> 	if (ioctl(fd, DRM_IOCTL_I915_GEM_WAIT, &arg))
> 		err = -errno;
> 	return err == -ENOENT;
> }

Even though it is used for read-read concurrency, and that future access
should be read-only, the wait itself is only for writes, which suggests
the flag should be I915_WAIT_WRITE_ONLY.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list