From: Jérémie Galarneau Date: Fri, 7 Dec 2018 22:06:38 +0000 (-0500) Subject: Fix: don't wait after completion of a work queue job batch X-Git-Tag: v0.11.0~31 X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=commitdiff_plain;h=c6871b650af872296c57dc65f93bd912d2b4435e Fix: don't wait after completion of a work queue job batch As indicated in the previous patch of this series, waiting on completion of a job batch from the work queue artificially increases the latency of the work queue. The previous patch removed the wait that is performed when the work queue is observed to be empty and was observed as the cause of a performance problem. It is likely that waiting when the queue is observed to be non-empty is similarly unintended. Note that I have not observed such a problem myself. If a workqueue user even need the explicit delay for batching (e.g. if a call-rcu implementation would ever use the workqueue worker thread), it can add it within the worker_before_wait_fct callback received as argument from workqueue creation. Signed-off-by: Jérémie Galarneau Signed-off-by: Mathieu Desnoyers --- diff --git a/src/workqueue.c b/src/workqueue.c index 0b1a9ea..39d0e07 100644 --- a/src/workqueue.c +++ b/src/workqueue.c @@ -244,8 +244,6 @@ static void *workqueue_thread(void *arg) * urcu_work list. */ cmm_smp_mb(); - } else { - (void) poll(NULL, 0, 10); } } else { (void) poll(NULL, 0, 10);