[BUG] sched: don't leave 3 lasts tasks unprocessed when niced tasks are present
When there are niced tasks, we would only process #tasks/4 per
turn, without taking care of running #tasks when #tasks was below
4, leaving those tasks waiting for a few other tasks to push them.
The fix simply consists in checking (#tasks+3)/4.
diff --git a/src/task.c b/src/task.c
index b4e2b97..b46420a 100644
--- a/src/task.c
+++ b/src/task.c
@@ -182,7 +182,7 @@
max_processed = 200;
if (likely(niced_tasks))
- max_processed /= 4;
+ max_processed = (max_processed + 3) / 4;
expire = *next;
eb = eb32_lookup_ge(&rqueue, rqueue_ticks - TIMER_LOOK_BACK);