Messages in this thread | | | Subject | Re: [RFC][PATCH 1/5] sched/fair: Fix select_idle_cpu()s cost accounting | From | "Li, Aubrey" <> | Date | Tue, 15 Dec 2020 20:13:07 +0800 |
| |
On 2020/12/15 15:59, Peter Zijlstra wrote: > On Tue, Dec 15, 2020 at 11:36:35AM +0800, Li, Aubrey wrote: >> On 2020/12/15 0:48, Peter Zijlstra wrote: >>> We compute the average cost of the total scan, but then use it as a >>> per-cpu scan cost when computing the scan proportion. Fix this by >>> properly computing a per-cpu scan cost. >>> >>> This also fixes a bug where we would terminate early (!--nr, case) and >>> not account that cost at all. >> >> I'm a bit worried this may introduce a regression under heavy load. >> The overhead of adding another cpu_clock() and calculation becomes >> significant when sis_scan is throttled by nr. > > The thing is, the code as it exists today makes no sense what so ever. > It's plain broken batshit. > > We calculate the total scanning time (irrespective of how many CPUs we > touched), and then use that calculate the number of cpus to scan. That's > just daft. > > After this patch we calculate the avg cost of scanning 1 cpu and use > that to calculate how many cpus to scan. Which is coherent and sane.
I see and all of these make sense to me.
> > Maybe it can be improved, but that's a completely different thing. >
OK, I'll go through the workloads in hand and paste the data here.
Thanks, -Aubrey
| |