Skip to content

Convert TTM to the new fence interface.

Maarten Lankhorst dri-devel lkml nouveau 1 version NAK

Status from this message: NAK, that's just the bad design I've talked about. Checking fence state inside the same driver from interrupt context is OK, because it's the drivers interrupt that we are talking about here.

Get series with b4
b4 am 20140709093124.11354.3774.stgit@patser

Versions newest first

  1. v1 Latest17 patches 75 repliesNAK

Patches in v1

#Subject and filesSizeRepliesApplied
1/17drm/ttm: add interruptible parameter to ttm_eu_reserve_buffersdrivers/gpu/drm/qxl/qxl_release.c drivers/gpu/drm/radeon/radeon_object.c drivers/gpu/drm/radeon/radeon_uvd.c +5 more+25 -230 replies
2/17drm/ttm: kill off some members to ttm_validate_bufferdrivers/gpu/drm/qxl/qxl_release.c drivers/gpu/drm/ttm/ttm_execbuf_util.c drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +1 more+50 -970 replies
3/17drm/nouveau: add reservation to nouveau_gem_ioctl_cpu_prepdrivers/gpu/drm/nouveau/nouveau_gem.c+18 -40 replies
4/17drm/nouveau: require reservations for nouveau_fence_sync and nouveau_bo_fencedrivers/gpu/drm/nouveau/nouveau_bo.c drivers/gpu/drm/nouveau/nouveau_display.c+15 -40 replies
5/17drm/ttm: call ttm_bo_wait while inside a reservationdrivers/gpu/drm/ttm/ttm_bo.c+12 -130 replies
6/17drm/ttm: kill fence_lockdrivers/gpu/drm/nouveau/nouveau_bo.c drivers/gpu/drm/nouveau/nouveau_display.c drivers/gpu/drm/nouveau/nouveau_gem.c +14 more+45 -1400 replies
7/17drm/nouveau: rework to new fence interfacedrivers/gpu/drm/nouveau/core/core/event.c drivers/gpu/drm/nouveau/nouveau_bo.c drivers/gpu/drm/nouveau/nouveau_display.c +8 more+330 -1790 replies
8/17drm/radeon: add timeout argument to radeon_fence_wait_seqdrivers/gpu/drm/radeon/radeon_fence.c+40 -200 replies
9/17drm/radeon: use common fence implementation for fencesdrivers/gpu/drm/radeon/radeon.h drivers/gpu/drm/radeon/radeon_device.c drivers/gpu/drm/radeon/radeon_fence.c+248 -5074 replies
10/17drm/qxl: rework to new fence interfacedrivers/gpu/drm/qxl/Makefile drivers/gpu/drm/qxl/qxl_cmd.c drivers/gpu/drm/qxl/qxl_debugfs.c +6 more+220 -1750 replies
11/17drm/vmwgfx: get rid of different types of fence_flags entirelydrivers/gpu/drm/vmwgfx/vmwgfx_buffer.c drivers/gpu/drm/vmwgfx/vmwgfx_drv.h drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +2 more+26 -520 replies
12/17drm/vmwgfx: rework to new fence interfacedrivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c drivers/gpu/drm/vmwgfx/vmwgfx_fence.c drivers/gpu/drm/vmwgfx/vmwgfx_fence.h +1 more+200 -1390 replies
13/17drm/ttm: flip the switch, and convert to dma_fencedrivers/gpu/drm/nouveau/nouveau_bo.c drivers/gpu/drm/nouveau/nouveau_fence.c drivers/gpu/drm/nouveau/nouveau_fence.h +21 more+208 -3930 replies
14/17drm/nouveau: use rcu in nouveau_gem_ioctl_cpu_prepdrivers/gpu/drm/nouveau/nouveau_gem.c+12 -160 replies
15/17drm/radeon: use rcu waits in some ioctlsdrivers/gpu/drm/radeon/radeon_gem.c+14 -50 replies
16/17drm/vmwgfx: use rcu in vmw_user_dmabuf_synccpu_grabdrivers/gpu/drm/vmwgfx/vmwgfx_resource.c+10 -70 replies
17/17drm/ttm: use rcu in core ttmdrivers/gpu/drm/ttm/ttm_bo.c+13 -630 replies

Reviews trailers per patch

1 of 17 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchChristian KönigThomas Hellstrom
SeriesA-b
1/17
2/17
3/17
4/17
5/17
6/17
7/17
8/17R-b
9/17
10/17
11/17
12/17
13/17
14/17
15/17
16/17
17/17

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/17] Convert TTM to the new fence interface.

This series applies on top of the driver-core-next branch of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git

Before converting ttm to the new fence interface I had to fix some drivers to require a reservation before poking with fence_obj. After flipping the switch RCU becomes available instead, and the extra reservations can be dropped again. :-)

I've done at least basic testing on all the drivers I've converted at some point, but more testing is definitely welcomed!

---

Maarten Lankhorst (17):
drm/ttm: add interruptible parameter to ttm_eu_reserve_buffers drm/ttm: kill off some members to ttm_validate_buffer drm/nouveau: add reservation to nouveau_gem_ioctl_cpu_prep drm/nouveau: require reservations for nouveau_fence_sync and nouveau_bo_fence drm/ttm: call ttm_bo_wait while inside a reservation
drm/ttm: kill fence_lock
drm/nouveau: rework to new fence interface
drm/radeon: add timeout argument to radeon_fence_wait_seq drm/radeon: use common fence implementation for fences
drm/qxl: rework to new fence interface
drm/vmwgfx: get rid of different types of fence_flags entirely drm/vmwgfx: rework to new fence interface
drm/ttm: flip the switch, and convert to dma_fence
drm/nouveau: use rcu in nouveau_gem_ioctl_cpu_prep
drm/radeon: use rcu waits in some ioctls
drm/vmwgfx: use rcu in vmw_user_dmabuf_synccpu_grab
drm/ttm: use rcu in core ttm

 drivers/gpu/drm/nouveau/core/core/event.c |    4 
 drivers/gpu/drm/nouveau/nouveau_bo.c      |   59 +---
 drivers/gpu/drm/nouveau/nouveau_display.c |   25 +-
 drivers/gpu/drm/nouveau/nouveau_fence.c   |  431 +++++++++++++++++++----------
 drivers/gpu/drm/nouveau/nouveau_fence.h   |   22 +
 drivers/gpu/drm/nouveau/nouveau_gem.c     |   55 +---
 drivers/gpu/drm/nouveau/nv04_fence.c      |    4 
 drivers/gpu/drm/nouveau/nv10_fence.c      |    4 
 drivers/gpu/drm/nouveau/nv17_fence.c      |    2 
 drivers/gpu/drm/nouveau/nv50_fence.c      |    2 
 drivers/gpu/drm/nouveau/nv84_fence.c      |   11 -
 drivers/gpu/drm/qxl/Makefile              |    2 
 drivers/gpu/drm/qxl/qxl_cmd.c             |    7 
 drivers/gpu/drm/qxl/qxl_debugfs.c         |   16 +
 drivers/gpu/drm/qxl/qxl_drv.h             |   20 -
 drivers/gpu/drm/qxl/qxl_fence.c           |   91 ------
 drivers/gpu/drm/qxl/qxl_kms.c             |    1 
 drivers/gpu/drm/qxl/qxl_object.c          |    2 
 drivers/gpu/drm/qxl/qxl_object.h          |    6 
 drivers/gpu/drm/qxl/qxl_release.c         |  172 ++++++++++--
 drivers/gpu/drm/qxl/qxl_ttm.c             |   93 ------
 drivers/gpu/drm/radeon/radeon.h           |   15 -
 drivers/gpu/drm/radeon/radeon_cs.c        |   10 +
 drivers/gpu/drm/radeon/radeon_device.c    |   60 ++++
 drivers/gpu/drm/radeon/radeon_display.c   |   21 +
 drivers/gpu/drm/radeon/radeon_fence.c     |  283 +++++++++++++++----
 drivers/gpu/drm/radeon/radeon_gem.c       |   19 +
 drivers/gpu/drm/radeon/radeon_object.c    |    8 -
 drivers/gpu/drm/radeon/radeon_ttm.c       |   34 --
 drivers/gpu/drm/radeon/radeon_uvd.c       |   10 -
 drivers/gpu/drm/radeon/radeon_vm.c        |   16 +
 drivers/gpu/drm/ttm/ttm_bo.c              |  187 ++++++-------
 drivers/gpu/drm/ttm/ttm_bo_util.c         |   28 --
 drivers/gpu/drm/ttm/ttm_bo_vm.c           |    3 
 drivers/gpu/drm/ttm/ttm_execbuf_util.c    |  146 +++-------
 drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c    |   47 ---
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h       |    1 
 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c   |   24 --
 drivers/gpu/drm/vmwgfx/vmwgfx_fence.c     |  329 ++++++++++++----------
 drivers/gpu/drm/vmwgfx/vmwgfx_fence.h     |   35 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c  |   43 +--
 include/drm/ttm/ttm_bo_api.h              |    7 
 include/drm/ttm/ttm_bo_driver.h           |   29 --
 include/drm/ttm/ttm_execbuf_util.h        |   22 +
 44 files changed, 1256 insertions(+), 1150 deletions(-)
 delete mode 100644 drivers/gpu/drm/qxl/qxl_fence.c
Signature · 1 line
Signature