From a2ee29c3daad8fcfe98204f9d8927b0b1a637713 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Tue, 3 Sep 2019 14:13:05 +1000 Subject: [PATCH] util/disk_cache: bump thread count assigned to disk cache queue MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/util/disk_cache.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c index b14a723c5cd..ed2e437a159 100644 --- a/src/util/disk_cache.c +++ b/src/util/disk_cache.c @@ -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); -- 2.30.2