From: Willy Tarreau Date: Fri, 12 Apr 2019 14:10:55 +0000 (+0200) Subject: CLEANUP: task: do not export rq_next anymore X-Git-Tag: v2.0-dev3~282 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24f382f55520dd509f23401a36555dbbdcfbde4e;p=thirdparty%2Fhaproxy.git CLEANUP: task: do not export rq_next anymore This one hasn't been used anymore since the scheduler changes after 1.8 but it kept being exported and maintained up to date while it's always reset when scanning the trees. Let's stop exporting it and updating it. --- diff --git a/include/proto/task.h b/include/proto/task.h index 1f4b52e971..fdf4d6a648 100644 --- a/include/proto/task.h +++ b/include/proto/task.h @@ -92,7 +92,6 @@ extern struct pool_head *pool_head_task; extern struct pool_head *pool_head_tasklet; extern struct pool_head *pool_head_notification; extern THREAD_LOCAL struct task *curr_task; /* task currently running or NULL */ -extern THREAD_LOCAL struct eb32sc_node *rq_next; /* Next task to be potentially run */ #ifdef USE_THREAD extern struct eb_root timers; /* sorted timers tree, global */ extern struct eb_root rqueue; /* tree constituting the run queue */ @@ -229,11 +228,8 @@ static inline struct task *task_unlink_rq(struct task *t) if (is_global) HA_SPIN_LOCK(TASK_RQ_LOCK, &rq_lock); - if (likely(task_in_rq(t))) { - if (&t->rq == rq_next) - rq_next = eb32sc_next(rq_next, tid_bit); + if (likely(task_in_rq(t))) __task_unlink_rq(t); - } if (is_global) HA_SPIN_UNLOCK(TASK_RQ_LOCK, &rq_lock); return t; diff --git a/src/task.c b/src/task.c index 9dddd89f7e..aa980485ba 100644 --- a/src/task.c +++ b/src/task.c @@ -42,7 +42,6 @@ unsigned int nb_tasks_cur = 0; /* copy of the tasks count */ unsigned int niced_tasks = 0; /* number of niced tasks in the run queue */ THREAD_LOCAL struct task *curr_task = NULL; /* task currently running or NULL */ -THREAD_LOCAL struct eb32sc_node *rq_next = NULL; /* Next task to be potentially run */ __decl_aligned_spinlock(rq_lock); /* spin lock related to run queue */ __decl_aligned_spinlock(wq_lock); /* spin lock related to wait queue */ @@ -317,6 +316,7 @@ int wake_expired_tasks() */ void process_runnable_tasks() { + struct eb32sc_node *rq_next; struct task *t; int max_processed;