[Mesa-dev] [PATCH 0/6] Gallium multithreaded queue - cleanup and multiple threads per queue

Nicolai Hähnle nhaehnle at gmail.com
Tue Jun 21 14:47:39 UTC 2016


On 21.06.2016 14:17, Marek Olšák wrote:
> Hi,
>
> This improves u_queue to be more usable in more cases.
>
> With this, the size of the queue (maximum number of jobs waiting) is configurable as well as the number of threads executing the jobs. The semaphores are ditched in favor of simpler condvars, and multiple waiters on fences are allowed as well.
>
> This is a prerequisite for a later series that will add multithreaded shader compilation into radeonsi.

I like the overall cleanup, but I'd appreciate it if you could rearrange 
patch #3 and #5 a little to avoid the temporary deadlock. No need to 
risk someone running into that while bisecting.

I think it would suffice to add queue->lock locking around the 
queue->kill_threads already in patch #3, but tbh I'd also be fine with 
the slightly less-work option of squashing the two patches together.

Nicolai

>
> Please review,
>
>   src/gallium/auxiliary/util/u_queue.c              | 214 +++++++++++++++++-----
>   src/gallium/auxiliary/util/u_queue.h              |  41 +++--
>   src/gallium/winsys/amdgpu/drm/amdgpu_cs.c         |   7 +-
>   src/gallium/winsys/amdgpu/drm/amdgpu_cs.h         |   2 +-
>   src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c     |   2 +-
>   src/gallium/winsys/radeon/drm/radeon_drm_cs.c     |   7 +-
>   src/gallium/winsys/radeon/drm/radeon_drm_cs.h     |   2 +-
>   src/gallium/winsys/radeon/drm/radeon_drm_winsys.c |   3 +-
>   8 files changed, 205 insertions(+), 73 deletions(-)
>
> Marek
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>


More information about the mesa-dev mailing list