summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/sync/work_osd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/sync/work_osd.c')
-rw-r--r--src/osd/modules/sync/work_osd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/osd/modules/sync/work_osd.c b/src/osd/modules/sync/work_osd.c
index 8a337cb7ff1..cb48614b229 100644
--- a/src/osd/modules/sync/work_osd.c
+++ b/src/osd/modules/sync/work_osd.c
@@ -207,9 +207,9 @@ osd_work_queue *osd_work_queue_alloc(int flags)
// on a single-CPU system, create 1 thread for I/O queues, and 0 threads for everything else
if (numprocs == 1)
threadnum = (flags & WORK_QUEUE_FLAG_IO) ? 1 : 0;
- // on an n-CPU system, create n threads for multi queues, and 1 thread for everything else
+ // on an n-CPU system, create n-1 threads for multi queues, and 1 thread for everything else
else
- threadnum = (flags & WORK_QUEUE_FLAG_MULTI) ? numprocs : 1;
+ threadnum = (flags & WORK_QUEUE_FLAG_MULTI) ? (numprocs - 1) : 1;
if (osdworkqueuemaxthreads != NULL && sscanf(osdworkqueuemaxthreads, "%d", &osdthreadnum) == 1 && threadnum > osdthreadnum)
threadnum = osdthreadnum;