From 6982c2539f11c8e64368043b58e537b86cf5a7c5 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sat, 21 Mar 2026 16:40:59 +0000 Subject: [PATCH] MINOR: sched: do not punish self-waking tasklets anymore Nowadays due to yield etc, it's counter-productive to permanently punish self-waking tasklets, let's abandon this principle as it prevent finer task priority handling. We continue to check for the TASK_SELF_WAKING flag to place a task into TL_BULK in case some code wants to make use of it in the future (similarly to TASK_HEAVY), but no code sets it anymore. It could possible make sense in the future to replace this flag with a one-shot variant requesting low-priority. --- src/task.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/task.c b/src/task.c index 08de79f4f..4761e7b7a 100644 --- a/src/task.c +++ b/src/task.c @@ -148,7 +148,6 @@ void __tasklet_wakeup_on(struct tasklet *tl, int thr) th_ctx->tl_class_mask |= 1 << TL_BULK; } else if ((struct task *)tl == th_ctx->current) { - _HA_ATOMIC_OR(&tl->state, TASK_SELF_WAKING); LIST_APPEND(&th_ctx->tasklets[TL_BULK], &tl->list); th_ctx->tl_class_mask |= 1 << TL_BULK; } @@ -187,7 +186,6 @@ struct list *__tasklet_wakeup_after(struct list *head, struct tasklet *tl) th_ctx->tl_class_mask |= 1 << TL_BULK; } else if ((struct task *)tl == th_ctx->current) { - _HA_ATOMIC_OR(&tl->state, TASK_SELF_WAKING); LIST_INSERT(&th_ctx->tasklets[TL_BULK], &tl->list); th_ctx->tl_class_mask |= 1 << TL_BULK; }