freedreno/drm/virtio: Pre-allocate cmdstream buffers
authorRob Clark <robdclark@chromium.org>
Thu, 10 Nov 2022 15:36:22 +0000 (07:36 -0800)
committerMarge Bot <emma+marge@anholt.net>
Fri, 11 Nov 2022 01:27:03 +0000 (01:27 +0000)
commit5a6f95db135a0f52859088a83a960fde528e0980
treedb5e7dbd313ca7140b3e8d3785f53db19aa259a1
parent1bb0cd66828a20ba56089d15d122e60f66d28f54
freedreno/drm/virtio: Pre-allocate cmdstream buffers

We know cmdstream buffers are immediately mmap'd, which is both
expensive on the host, and breaks the pipelining as guest is forced
to stall waiting for the host.  So pre-allocate some cmdestream
buffers, so that we have something that is (hopefully) already
allocated and mapped to guest's physical memory before we need it.
The older buffer from the head of the prealloc list replaces the
newly allocated buffer which is pushed to the tail of the prealloc
list.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19656>
src/freedreno/drm/freedreno_bo.c
src/freedreno/drm/freedreno_drmif.h
src/freedreno/drm/freedreno_priv.h
src/freedreno/drm/virtio/virtio_bo.c
src/freedreno/drm/virtio/virtio_device.c
src/freedreno/drm/virtio/virtio_pipe.c
src/freedreno/drm/virtio/virtio_priv.h