[PATCH v8 00/18] drm/virtio: switch from ttm to gem shmem helpers.

Chia-I Wu olvaffe at gmail.com
Wed Aug 28 23:14:26 UTC 2019


On Fri, Aug 23, 2019 at 2:55 AM Gerd Hoffmann <kraxel at redhat.com> wrote:
>
> ttm increasingly gets into the way while hacking on virtio-gpu memory
> management.  It also overkill for what virtio-gpu needs.  Lets get rid
> of it.
>
> v8:
>  - rebase to latest drm-misc-next, adapt to changes.
Other than two (minor) comments on patch 2 and 7, the series looks good to me.

I was concerned that this series maps BOs write-combine (from
drm_gem_mmap_obj) rather than cached (was the case with ttm because of
TTM_PL_FLAG_CACHED).  But memory types seem to have no effect inside a
guest.  It should still be fixed at some point, but it does not block
this series.


> v7:
>  - rebase to latest drm-misc-next
>  - reorder patches: switch all virtio commands to object array helpers
>    first. then drop ttm, to make sure we don't release objects still in
>    use.
>  - misc fixes.
> v6:
>  - largely rewrite fencing logic, using the virtio_gpu_array_* helpers
>  - add more patches to the series.
> v5:
>  - fence bugfixes.
>  - minor optimizations.
> v4:
>  - make gem array helpers private to virtio.
>  - misc minor fixes.
> v3:
>  - add gem array helpers.
>  - rework fencing.
>
> please review.
>
> thanks,
>   Gerd
>
> Gerd Hoffmann (18):
>   drm/virtio: pass gem reservation object to ttm init
>   drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
>   drm/virtio: simplify cursor updates
>   drm/virtio: remove virtio_gpu_object_wait
>   drm/virtio: drop no_wait argument from virtio_gpu_object_reserve
>   drm/virtio: remove ttm calls from in
>     virtio_gpu_object_{reserve,unreserve}
>   drm/virtio: add virtio_gpu_object_array & helpers
>   drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing
>   drm/virtio: rework virtio_gpu_object_create fencing
>   drm/virtio: rework virtio_gpu_transfer_from_host_ioctl fencing
>   drm/virtio: rework virtio_gpu_transfer_to_host_ioctl fencing
>   drm/virtio: rework virtio_gpu_cmd_context_{attach,detach}_resource
>   drm/virtio: drop virtio_gpu_object_list_validate/virtio_gpu_unref_list
>   drm/virtio: switch from ttm to gem shmem helpers
>   drm/virtio: remove virtio_gpu_alloc_object
>   drm/virtio: drop virtio_gpu_object_{ref,unref}
>   drm/virtio: drop virtio_gpu_object_{reserve,unreserve}
>   drm/virtio: add fence sanity check
>
>  drivers/gpu/drm/virtio/virtgpu_drv.h    | 123 +++-------
>  drivers/gpu/drm/virtio/virtgpu_drv.c    |  20 +-
>  drivers/gpu/drm/virtio/virtgpu_fence.c  |   4 +
>  drivers/gpu/drm/virtio/virtgpu_gem.c    | 156 ++++++++----
>  drivers/gpu/drm/virtio/virtgpu_ioctl.c  | 221 ++++++-----------
>  drivers/gpu/drm/virtio/virtgpu_kms.c    |   9 -
>  drivers/gpu/drm/virtio/virtgpu_object.c | 220 +++++------------
>  drivers/gpu/drm/virtio/virtgpu_plane.c  |  34 +--
>  drivers/gpu/drm/virtio/virtgpu_prime.c  |  34 ---
>  drivers/gpu/drm/virtio/virtgpu_ttm.c    | 305 ------------------------
>  drivers/gpu/drm/virtio/virtgpu_vq.c     |  78 ++++--
>  drivers/gpu/drm/virtio/Kconfig          |   2 +-
>  drivers/gpu/drm/virtio/Makefile         |   2 +-
>  13 files changed, 370 insertions(+), 838 deletions(-)
>  delete mode 100644 drivers/gpu/drm/virtio/virtgpu_ttm.c
>
> --
> 2.18.1
>


More information about the dri-devel mailing list