path: root/api
diff options
authorXavi Hernandez <>2020-04-30 11:19:01 +0200
committerMOHIT AGRAWAL <>2020-05-13 16:17:35 +0000
commit3da22f8cb08b05562a4c6bd2694f2f19199cff7f (patch)
tree9e8f69a2634fe6866aca1a82d46676c81dc08448 /api
parent03a6b11179f325f6c7d91989c4f7b2acd6438d1a (diff)
syncop: improve scaling and implement more tools
The current scaling of the syncop thread pool is not working properly and can leave some tasks in the run queue more time than necessary when the maximum number of threads is not reached. This patch provides a better scaling condition to react faster to pending work. Condition variables and sleep in the context of a synctask have also been implemented. Their purpose is to replace regular condition variables and sleeps that block synctask threads and prevent other tasks to be executed. The new features have been applied to several places in glusterd. Change-Id: Ic50b7c73c104f9e41f08101a357d30b95efccfbf Fixes: #1116 Signed-off-by: Xavi Hernandez <>
Diffstat (limited to 'api')
1 files changed, 1 insertions, 1 deletions
diff --git a/api/src/glfs-internal.h b/api/src/glfs-internal.h
index ecee473..2a50e1d 100644
--- a/api/src/glfs-internal.h
+++ b/api/src/glfs-internal.h
@@ -453,7 +453,7 @@ glfs_process_upcall_event(struct glfs *fs, void *data)
if (task) { \
list_add_tail(&task->waitq, &fs->waitq); \
pthread_mutex_unlock(&fs->mutex); \
- synctask_yield(task); \
+ synctask_yield(task, NULL); \
pthread_mutex_lock(&fs->mutex); \
} else { \
/* non-synctask */ \