]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: task: remove the unused and mishandled global_rqueue_size
authorWilly Tarreau <w@1wt.eu>
Sun, 18 Oct 2020 12:24:51 +0000 (14:24 +0200)
committerWilly Tarreau <w@1wt.eu>
Mon, 19 Oct 2020 12:08:13 +0000 (14:08 +0200)
This counter is only updated and never used, and in addition it's done
without any atomicity so it's very unlikely to be correct on multi-CPU
systems! Let's just remove it since it's not used.

include/haproxy/task.h
src/task.c

index 24be2b6ed475baf17f2d7eba1053bc59345e749a..41885c2fc59e3eaaea0b996e4e5fe724151f527e 100644 (file)
@@ -101,7 +101,6 @@ extern THREAD_LOCAL struct task_per_thread *sched; /* current's thread scheduler
 #ifdef USE_THREAD
 extern struct eb_root timers;      /* sorted timers tree, global */
 extern struct eb_root rqueue;      /* tree constituting the run queue */
-extern int global_rqueue_size; /* Number of element sin the global runqueue */
 #endif
 
 extern struct task_per_thread task_per_thread[MAX_THREADS];
@@ -295,10 +294,9 @@ static inline struct task *__task_unlink_rq(struct task *t)
 {
        _HA_ATOMIC_SUB(&tasks_run_queue, 1);
 #ifdef USE_THREAD
-       if (t->state & TASK_GLOBAL) {
+       if (t->state & TASK_GLOBAL)
                _HA_ATOMIC_AND(&t->state, ~TASK_GLOBAL);
-               global_rqueue_size--;
-       } else
+       else
 #endif
                sched->rqueue_size--;
        eb32sc_delete(&t->rq);
index 3336ebc70f89df81e71c43da7b9c4503ae8e2537..325fd2e864a1606b71035d51353349b6bec78b89 100644 (file)
@@ -50,7 +50,6 @@ __decl_aligned_rwlock(wq_lock);   /* RW lock related to the wait queue */
 #ifdef USE_THREAD
 struct eb_root timers;      /* sorted timers tree, global */
 struct eb_root rqueue;      /* tree constituting the run queue */
-int global_rqueue_size; /* Number of element sin the global runqueue */
 #endif
 
 static unsigned int rqueue_ticks;  /* insertion count */
@@ -150,7 +149,6 @@ void __task_wakeup(struct task *t, struct eb_root *root)
        eb32sc_insert(root, &t->rq, t->thread_mask);
 #ifdef USE_THREAD
        if (root == &rqueue) {
-               global_rqueue_size++;
                _HA_ATOMIC_OR(&t->state, TASK_GLOBAL);
                HA_SPIN_UNLOCK(TASK_RQ_LOCK, &rq_lock);
        } else