Re: [PATCH 0/4] sched: Various reweight_entity() fixes

From: Vincent Guittot

Date: Wed Feb 11 2026 - 03:51:45 EST


On Wed, 11 Feb 2026 at 06:21, Doug Smythies <dsmythies@xxxxxxxxx> wrote:
>
> On 2026.02.10 12:52 Vincent Guittot wrote:
> > On Mon, 9 Feb 2026 at 16:47, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> >> On Wed, Feb 04, 2026 at 03:45:58PM +0530, K Prateek Nayak wrote:
> >
> ... delete ...
>
> > This patch w/ the patchset on top of tip/sched/core create regressions
> > for hackbench (tbench doesn't seem to be impacted) on my dragonboard
> > rb5
> > All hackbench tests are regressing. Some results below
> ...
> > hackbench 8 group process socket
> > 0.650(+/-1%) vs 2.361(+/-8.8%) : -263%
> ...
>
> Very interesting.
> I only know of the Phoronix version of hackbench.
> I ran what I believe to be a similar scenario to yours:
> 10 test runs each (the default is 3):
>
> Kernel 6.19-rc8: 23.228 seconds average, deviation 0.39%
> Kernel 6.19-rc8-pz-v2: 85.755 seconds average, deviation 3.33%
> 269% regression. (very similar to Vicent's results)

patch 3 + a default value for sum_shift restore the performance
cfs_rq->sum_shift = SCHED_FIXEDPOINT_SHIFT;

There 2 issues with patch 3

*one scale_load_down remains in avg_vruntime

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 25c398ff0d59..3143ae7f07b0 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -778,7 +778,7 @@ u64 avg_vruntime(struct cfs_rq *cfs_rq)

if (weight) {
if (curr) {
- unsigned long w = scale_load_down(curr->load.weight);
+ unsigned long w =
avg_vruntime_weight(curr->load.weight);

runtime += entity_key(cfs_rq, curr) * w;
weight += w;

and we still use calc_delta_fair() in update_entity_lag() but
calc_delta_fair() use scale_load_down()


>
> System:
> Processor: Intel(R) Core(TM) i5-10600K CPU @ 4.10GHz, 6 cores 12 CPUs.
> CPU frequency scaling driver: intel_pstate.
> CPU frequency scaling governor: powersave.
> HWP: enabled.
> idle governor teo.
>
>