From 4be235af7ca3f06af41ba8217565f7c2627deba4 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sat, 10 Dec 2022 15:17:12 -0800 Subject: [PATCH] freedreno/drm/virtio: Remove prealloc_list Now that we are allocating cmdstream from the heap, we shouldn't need this. Signed-off-by: Rob Clark Part-of: --- src/freedreno/drm/virtio/virtio_bo.c | 39 ++---------------------- src/freedreno/drm/virtio/virtio_device.c | 2 -- src/freedreno/drm/virtio/virtio_pipe.c | 2 -- src/freedreno/drm/virtio/virtio_priv.h | 6 ---- 4 files changed, 2 insertions(+), 47 deletions(-) diff --git a/src/freedreno/drm/virtio/virtio_bo.c b/src/freedreno/drm/virtio/virtio_bo.c index a42599a2606..9c96a9423f3 100644 --- a/src/freedreno/drm/virtio/virtio_bo.c +++ b/src/freedreno/drm/virtio/virtio_bo.c @@ -361,8 +361,8 @@ fail: } /* allocate a buffer object: */ -static struct fd_bo * -virtio_bo_new_impl(struct fd_device *dev, uint32_t size, uint32_t flags) +struct fd_bo * +virtio_bo_new(struct fd_device *dev, uint32_t size, uint32_t flags) { struct virtio_device *virtio_dev = to_virtio_device(dev); struct drm_virtgpu_resource_create_blob args = { @@ -438,38 +438,3 @@ fail: } return NULL; } - -struct fd_bo * -virtio_bo_new(struct fd_device *dev, uint32_t size, uint32_t flags) -{ - struct fd_bo *bo = virtio_bo_new_impl(dev, size, flags); - - if (bo && (flags == RING_FLAGS) && (size == SUBALLOC_SIZE)) { - struct virtio_device *virtio_dev = to_virtio_device(dev); - - /* - * Swap the bo with an earlier pre-allocated one, since we know - * this one will be immediately mmap'd and want to avoid the - * latency hit of waiting for the host to catch up. - */ - simple_mtx_lock(&virtio_dev->eb_lock); - list_addtail(&bo->node, &virtio_dev->prealloc_list); - bo = first_bo(&virtio_dev->prealloc_list); - list_delinit(&bo->node); - simple_mtx_unlock(&virtio_dev->eb_lock); - } - - return bo; -} - -void virtio_bo_setup_prealloc(struct fd_device *dev) -{ - struct virtio_device *virtio_dev = to_virtio_device(dev); - - for (int i = 0; i < 16; i++) { - struct fd_bo *bo = virtio_bo_new_impl(dev, SUBALLOC_SIZE, RING_FLAGS); - if (!bo) - break; - list_addtail(&bo->node, &virtio_dev->prealloc_list); - } -} diff --git a/src/freedreno/drm/virtio/virtio_device.c b/src/freedreno/drm/virtio/virtio_device.c index 83f4944a538..2e8f52dd58d 100644 --- a/src/freedreno/drm/virtio/virtio_device.c +++ b/src/freedreno/drm/virtio/virtio_device.c @@ -205,8 +205,6 @@ virtio_device_new(int fd, drmVersionPtr version) set_debuginfo(dev); - list_inithead(&virtio_dev->prealloc_list); - util_vma_heap_init(&virtio_dev->address_space, caps.u.msm.va_start, caps.u.msm.va_size); diff --git a/src/freedreno/drm/virtio/virtio_pipe.c b/src/freedreno/drm/virtio/virtio_pipe.c index f109cfb57d2..bb54442cbfb 100644 --- a/src/freedreno/drm/virtio/virtio_pipe.c +++ b/src/freedreno/drm/virtio/virtio_pipe.c @@ -220,8 +220,6 @@ init_shmem(struct fd_device *dev) uint32_t offset = virtio_dev->shmem->rsp_mem_offset; virtio_dev->rsp_mem_len = fd_bo_size(virtio_dev->shmem_bo) - offset; virtio_dev->rsp_mem = &((uint8_t *)virtio_dev->shmem)[offset]; - - virtio_bo_setup_prealloc(dev); } simple_mtx_unlock(&virtio_dev->rsp_lock); diff --git a/src/freedreno/drm/virtio/virtio_priv.h b/src/freedreno/drm/virtio/virtio_priv.h index 4915f39e07a..a1e021f25d7 100644 --- a/src/freedreno/drm/virtio/virtio_priv.h +++ b/src/freedreno/drm/virtio/virtio_priv.h @@ -81,11 +81,6 @@ struct virtio_device { struct util_vma_heap address_space; simple_mtx_t address_space_lock; - /** - * Pre-allocated cmdstream buffers to avoid stalling on mmap. - */ - struct list_head prealloc_list; - uint32_t reqbuf_len; uint32_t reqbuf_cnt; uint8_t reqbuf[0x4000]; @@ -181,7 +176,6 @@ FD_DEFINE_CAST(fd_bo, virtio_bo); struct fd_bo *virtio_bo_new(struct fd_device *dev, uint32_t size, uint32_t flags); struct fd_bo *virtio_bo_from_handle(struct fd_device *dev, uint32_t size, uint32_t handle); -void virtio_bo_setup_prealloc(struct fd_device *dev); /* * Internal helpers: