aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/docs/source/exts
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-07-10 21:59:43 +0200
committerMarek Olšák <[email protected]>2017-07-17 10:57:25 -0400
commit4cae27411607d8680401faa2fc971d2be0f715fd (patch)
tree7baa1905b8f7c7ed8d177e1d9c121032a17a4e0b /src/gallium/docs/source/exts
parent59ad7697705a65940f6370c28729aff87d446b46 (diff)
radeonsi: prevent a deadlock in util_queue_add_job with too many GL contexts
If the queue is full, util_queue_add_job will wait while bo_fence_lock is held. It pb_slab wants to reuse a buffer, it will lock the pb_slab mutex and try to check BO fence busyness, but it has to wait for bo_fence_lock to get released. Both bo_fence_lock and pb_slab mutex are locked now. When the CS thread unreferences and releases a suballocated buffer, it will try to lock the pb_slab mutex and has to wait. The CS thread can't finish its job in order to free a queue slot and unblock util_queue_add_job ==> deadlock. Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/docs/source/exts')
0 files changed, 0 insertions, 0 deletions