summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorXavi Hernandez <xhernandez@redhat.com>2020-04-30 11:19:01 +0200
committerRinku Kothiya <rkothiya@redhat.com>2020-05-30 05:17:12 +0000
commit67cd2b1ab5c9a8db637506b9a6be57fc79672c99 (patch)
tree87fef926b8766becdf5cd708ae580483ddf73927 /api
parent49713a7ea1d30613a8810b85eca8ab35f6e9fa8a (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 <xhernandez@redhat.com>
Diffstat (limited to 'api')
-rw-r--r--api/src/glfs-internal.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/api/src/glfs-internal.h b/api/src/glfs-internal.h
index ecee473a9d8..2a50e1d46b3 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 */ \