util/disk_cache: bump thread count assigned to disk cache queue
Since we set the UTIL_QUEUE_INIT_USE_MINIMUM_PRIORITY flag this should have little impact on low core systems. However just about all modern CPUs currently available that run Mesa have *at least* 4 cores. For these CPUs allowing more threads can result in the queue being processed faster and avoid excessive memory use due to a backlog of cache entrys building up in the queue. This change helps avoid a huge build up of cache entrys in the queue due to using both the UTIL_QUEUE_INIT_USE_MINIMUM_PRIORITY and UTIL_QUEUE_INIT_RESIZE_IF_FULL flags. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
@@ -369,13 +369,17 @@ disk_cache_create(const char *gpu_name, const char *driver_id,
|
||||
|
||||
cache->max_size = max_size;
|
||||
|
||||
/* 1 thread was chosen because we don't really care about getting things
|
||||
* to disk quickly just that it's not blocking other tasks.
|
||||
/* 4 threads were chosen below because just about all modern CPUs currently
|
||||
* available that run Mesa have *at least* 4 cores. For these CPUs allowing
|
||||
* more threads can result in the queue being processed faster, thus
|
||||
* avoiding excessive memory use due to a backlog of cache entrys building
|
||||
* up in the queue. Since we set the UTIL_QUEUE_INIT_USE_MINIMUM_PRIORITY
|
||||
* flag this should have little negative impact on low core systems.
|
||||
*
|
||||
* The queue will resize automatically when it's full, so adding new jobs
|
||||
* doesn't stall.
|
||||
*/
|
||||
util_queue_init(&cache->cache_queue, "disk$", 32, 1,
|
||||
util_queue_init(&cache->cache_queue, "disk$", 32, 4,
|
||||
UTIL_QUEUE_INIT_RESIZE_IF_FULL |
|
||||
UTIL_QUEUE_INIT_USE_MINIMUM_PRIORITY |
|
||||
UTIL_QUEUE_INIT_SET_FULL_THREAD_AFFINITY);
|
||||
|
||||
Reference in New Issue
Block a user