qxl: convert qxl driver to proper use for reservations
The recent addition of lockdep support to reservations and their subsequent
use by TTM showed up a number of potential problems with the way qxl was using
TTM objects.
a) it was allocating objects, and reserving them later without validating
underneath the reservation, which meant in extreme conditions the objects could
be evicted before the reservation ever used them.
b) it was reserving objects straight after allocating them, but with no
ability to back off should the reservations fail. It now allocates the necessary
objects then does a complete reservation pass on them to avoid deadlocks.
c) it had two lists per release tracking objects, unnecessary complicating
the reservation process.
This patch removes the dual object tracking, adds reservations ticket support
to the release and fence object handling. It then ports the internal fb
drawing code and the userspace facing ioctl to use the new interfaces properly,
along with cleanup up the error path handling in some codepaths.
Signed-off-by: Dave Airlie <airlied@redhat.com>
parent
4f49ec92
-
mentioned in commit 1c78ac39
-
mentioned in commit f4027b73
-
mentioned in commit e3a63b72
-
mentioned in commit 9148b1aa
-
mentioned in commit c1dcdab5
-
mentioned in commit a8d36f64
-
mentioned in commit a6018a58
-
mentioned in commit 4441fb2a
-
mentioned in commit c465bc31
-
mentioned in commit dc8d00bf
-
mentioned in commit 659f8d92
Please register or sign in to comment