mesa/src/virtio
Yiwei Zhang 1a475c70b2 venus: add a more relaxed polling strategy
The default vn_relax is mainly targeting Vulkan commands expecting a
rely like object creation and property queries. The defined relax reason
here is VN_RELAX_REASON_RING_SPACE. The polling strategy involves more
busy waits to overcome sleep penalty affecting cpu utilization, as well
as an edge case for Android system server which forces to sleep longer
even with trivial hrtimer interval.

However, for the below relax reasons:
- VN_RELAX_REASON_RING_SPACE
- VN_RELAX_REASON_FENCE
- VN_RELAX_REASON_SEMAPHORE
- VN_RELAX_REASON_QUERY

It's a waste of cpu cycles if we do more busy waits if the initial
polled signals are not "ready". Having less busy waits there allows to
jump to higher order of sleeps sooner to disturb the scheduler less
until signaled.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28287>
2024-03-26 00:37:24 +00:00
..
ci ci: Update virglrenderer and crosvm 2024-03-07 21:19:05 +00:00
vdrm virtio/vdrm: Fix lockup in vdrm_host_sync() 2024-01-12 16:53:59 +00:00
venus-protocol venus: sync protocol for VK_KHR_fragment_shading_rate 2024-03-04 10:11:16 -08:00
virtio-gpu virgl: Use better reporting for mirror_clamp features 2024-01-29 09:01:26 +00:00
vtest venus: rename sync_queue -> timeline 2022-12-16 21:12:38 +00:00
vulkan venus: add a more relaxed polling strategy 2024-03-26 00:37:24 +00:00
meson.build virtio: Add vdrm native-context helper 2023-11-04 03:00:04 +00:00