Fix: mixup between URCU_WORKQUEUE_RT and URCU_CALL_RCU_RT
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 7 Dec 2018 22:06:36 +0000 (17:06 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 16 Dec 2021 20:43:39 +0000 (15:43 -0500)
The work queue implementation is derived from the call-rcu thread. A
number of references seem to have been left in place when adapting the
code for its new purpose.

The URCU_CALL_RCU_RT flag is used by wake_worker_thread() while the
rest of the workqueue.c code uses URCU_WORKQUEUE_RT to determine if
the work queue was configured in real-time mode. Both flags are defined
to the same value (0x1) and the current internal user of the
work queue (lfht) never specifies any flags.

In practice, this does not cause any problem, but this mixup should
be fixed nevertheless.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
workqueue.c

index 3c15afc064c2c81f68cf5fdda0f052e0cdac3b33..3aa734f2aaa0a8285832fd0a6a6996c327b3aa80 100644 (file)
@@ -310,7 +310,7 @@ struct urcu_workqueue *urcu_workqueue_create(unsigned long flags,
 
 static void wake_worker_thread(struct urcu_workqueue *workqueue)
 {
-       if (!(_CMM_LOAD_SHARED(workqueue->flags) & URCU_CALL_RCU_RT))
+       if (!(_CMM_LOAD_SHARED(workqueue->flags) & URCU_WORKQUEUE_RT))
                futex_wake_up(&workqueue->futex);
 }
 
This page took 0.028142 seconds and 4 git commands to generate.