drm/virtio: Refactor and optimize job submission code path
authorDmitry Osipenko <dmitry.osipenko@collabora.com>
Sun, 16 Apr 2023 11:52:35 +0000 (14:52 +0300)
committerDmitry Osipenko <dmitry.osipenko@collabora.com>
Sat, 3 Jun 2023 01:50:40 +0000 (04:50 +0300)
commite4812ab8e6b142e1ce19b50fcf744e20ea9adfe3
tree81ca66979508ed95762bb420bd1db33378c57fb8
parent0fcf8ffdfe9013b05807b99a4c28da59b2d39bec
drm/virtio: Refactor and optimize job submission code path

Move virtio_gpu_execbuffer_ioctl() into separate virtgpu_submit.c file,
refactoring and optimizing the code along the way to ease addition of new
features to the ioctl.

The optimization is done by using optimal ordering of the job's submission
steps, reducing code path from the start of the ioctl to the point of
pushing job to virtio queue. Job's initialization is now performed before
in-fence is awaited and out-fence setup is made after sending out job to
virtio.

Reviewed-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Tested-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230416115237.798604-2-dmitry.osipenko@collabora.com
drivers/gpu/drm/virtio/Makefile
drivers/gpu/drm/virtio/virtgpu_drv.h
drivers/gpu/drm/virtio/virtgpu_ioctl.c
drivers/gpu/drm/virtio/virtgpu_submit.c [new file with mode: 0644]