On Tue, 19 Jan 2021 at 12:22, Mel Gorman <[email protected]> wrote: > > Changelog since v2 > o Remove unnecessary parameters > o Update nr during scan only when scanning for cpus
Hi Mel, I haven't looked at your previous version mainly because I'm chasing a performance regression on v5.11-rcx which prevents me from testing the impact of your patchset on my !SMT2 system. Will do this as soon as this problem is fixed > > Changlog since v1 > o Move extern declaration to header for coding style > o Remove unnecessary parameter from __select_idle_cpu > > This series of 5 patches reposts three patches from Peter entitled > "select_idle_sibling() wreckage". It only scans the runqueues in a single > pass when searching for an idle sibling. > > Two patches from Peter were dropped. The first patch altered how scan > depth was calculated. Scan depth deletion is a random number generator > with two major limitations. The avg_idle time is based on the time > between a CPU going idle and being woken up clamped approximately by > 2*sysctl_sched_migration_cost. This is difficult to compare in a sensible > fashion to avg_scan_cost. The second issue is that only the avg_scan_cost > of scan failures is recorded and it does not decay. This requires deeper > surgery that would justify a patch on its own although Peter notes that > https://lkml.kernel.org/r/[email protected] is > potentially useful for an alternative avg_idle metric. > > The second patch dropped converted the idle core scan throttling > mechanism to SIS_PROP. While this would unify the throttling of core > and CPU scanning, it was not free of regressions and has_idle_cores is > a fairly effective throttling mechanism with the caveat that it can have > a lot of false positives for workloads like hackbench. > > Peter's series tried to solve three problems at once, this subset addresses > one problem. As with anything select_idle_sibling, it's a mix of wins and > losses but won more than it lost across a range of workloads and machines. > > kernel/sched/core.c | 18 +++-- > kernel/sched/fair.c | 161 ++++++++++++++++++++-------------------- > kernel/sched/features.h | 1 - > kernel/sched/sched.h | 2 + > 4 files changed, 95 insertions(+), 87 deletions(-) > > -- > 2.26.2 >

