Re: [PATCH 2/2] bcachefs: set rebalance thread to SCHED_BATCH and nice 19

From: Peter Zijlstra
Date: Tue Jan 14 2025 - 09:40:15 EST


On Tue, Jan 14, 2025 at 01:29:04PM +0000, Christian Loehle wrote:

> I know nothing about bcachefs internals, but could this also be a problem?
> The rebalance thread might not run for O(second) or so?

SCHED_BATCH should not behave anything like that, mostly SCHED_BATCH
tasks will not cause wakeup preemption. But otherwise they compete at
the same level as everybody else.

Notably a BATCH and NORMAL task that are each while(1) loops will get
the normal 50-50 distribution of time. It's just that when a NORMAL task
is running, the waking of a BATCH task won't ever kick the NORMAL from
the CPU, instead waiting for the tick to do so.

So a task that is IO heavy (as suggested here), that wakes a lot to
issue further IO, will not immediately interrupt whatever is on the CPU,
instead it waits until it gets selected through other means.