[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHk-=wgb5WcfMEgsOQg4wzVWuYNgCL-e17YX33ZET_G3-ZCo7g@mail.gmail.com>
Date: Fri, 2 May 2025 10:52:20 -0700
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: "Prundeanu, Cristian" <cpru@...zon.com>
Cc: Peter Zijlstra <peterz@...radead.org>, K Prateek Nayak <kprateek.nayak@....com>,
"Mohamed Abuelfotoh, Hazem" <abuehaze@...zon.com>, "Saidi, Ali" <alisaidi@...zon.com>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>, "Blake, Geoff" <blakgeof@...zon.com>,
"Csoma, Csaba" <csabac@...zon.com>, "Doebel, Bjoern" <doebel@...zon.de>,
Gautham Shenoy <gautham.shenoy@....com>, Swapnil Sapkal <swapnil.sapkal@....com>,
Joseph Salisbury <joseph.salisbury@...cle.com>, Dietmar Eggemann <dietmar.eggemann@....com>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
"linux-arm-kernel@...ts.infradead.org" <linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-tip-commits@...r.kernel.org" <linux-tip-commits@...r.kernel.org>, "x86@...nel.org" <x86@...nel.org>
Subject: Re: EEVDF regression still exists
On Fri, 2 May 2025 at 10:25, Prundeanu, Cristian <cpru@...zon.com> wrote:
>
> Another, more recent observation is that 6.15-rc4 has worse performance than
> rc3 and earlier kernels. Maybe that can help narrow down the cause?
> I've added the perf reports for rc3 and rc2 in the same location as before.
The only _scheduler_ change that looks relevant is commit bbce3de72be5
("sched/eevdf: Fix se->slice being set to U64_MAX and resulting
crash"). Which does affect the slice calculation, although supposedly
only under special circumstances.
Of course, it could be something else.
For example, we have a AMD performance regression in general due to
_another_ CPU leak mitigation issue, but that predates rc3 (happened
during the merge window), so that one isn't relevant, but maybe
something else is..
Although honestly, that slice calculation still looks just plain odd.
It defaults the slice to zero, so if none of the 'break' conditions in
the first loop happens, it will reset the slice to that zero value and
then the
slice = cfs_rq_min_slice(cfs_rq);
ion that second loop looks like it might just pick up that zero value again.
I clearly don't understand the code.
Linus
Powered by blists - more mailing lists