Re: drm: Asynchronouse page flipping interface and Intelimplementation

From: Daniel Vetter
Date: Tue Jul 23 2013 - 16:16:11 EST


On Mon, Jul 22, 2013 at 06:49:57PM -0700, Keith Packard wrote:
> Here's a sequence of five patches that exposes an interface to request
> of the driver that the page flipping request be executed without
> waiting for vblank. It's optional, and drivers can expose whether it
> is supported through the existing GETCAP ioctl.
>
> This supports only Ivybridge and Sandybridge Intel graphics chips as
> that's what I've got to test on; of course all of the other drivers
> have been modified so that they still compile cleanly.

Quick comments on the i915 kernel part:
- Iirc the w/a database has a bunch of entries about async flips. Those
need to be addressed and annoted with the new w/a tag comment format
Damien recently created.

- We should exercise userspace abi cornercases and check that we get an
-EINVAL everywhere we expect one. Since the current vblank-synced
pageflips seem to also get this wrong it'd be good to exercise both
modes.

- kms_flip needs to be extended to beat on async flips. Obviously the
timing checks don't apply but otherwise I think it won't hurt to enable
all the existing interaction tests with async flips, too. On top of that
I think we should test interactions between async flips and vblank
synced flips. Without the timing checks the other tests will run as fast
as possible, so that should gives us good coverage of the
non-ratelimited nature of async flips - even with vblank flips we've hit
ugly issues by e.g. starving the unpin workers.

Oh and my little comment about moving all checks into core code is a bit
wrong, we'd still need to check for X-tiling with async flips ofc.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/