Mesa (master): util/disk_cache: bump thread count assigned to disk cache queue

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Sep 19 05:29:35 UTC 2019


Module: Mesa
Branch: master
Commit: a2ee29c3daad8fcfe98204f9d8927b0b1a637713
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a2ee29c3daad8fcfe98204f9d8927b0b1a637713

Author: Timothy Arceri <tarceri at itsqueeze.com>
Date:   Tue Sep  3 14:13:05 2019 +1000

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 at amd.com>

---

 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);




More information about the mesa-commit mailing list