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