mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
sched/numa: Favour moving tasks towards the preferred node
This patch favours moving tasks towards NUMA node that recorded a higher number of NUMA faults during active load balancing. Ideally this is self-reinforcing as the longer the task runs on that node, the more faults it should incur causing task_numa_placement to keep the task running on that node. In reality a big weakness is that the nodes CPUs can be overloaded and it would be more efficient to queue tasks on an idle node and migrate to the new node. This would require additional smarts in the balancer so for now the balancer will simply prefer to place the task on the preferred node for a PTE scans which is controlled by the numa_balancing_settle_count sysctl. Once the settle_count number of scans has complete the schedule is free to place the task on an alternative node if the load is imbalanced. [[email protected]: Fixed statistics] Signed-off-by: Mel Gorman <[email protected]> Reviewed-by: Rik van Riel <[email protected]> Cc: Andrea Arcangeli <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Srikar Dronamraju <[email protected]> [ Tunable and use higher faults instead of preferred. ] Signed-off-by: Peter Zijlstra <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
This commit is contained in:
parent
745d61476d
commit
3a7053b322
6 changed files with 83 additions and 6 deletions
|
|
@ -375,7 +375,8 @@ feature should be disabled. Otherwise, if the system overhead from the
|
|||
feature is too high then the rate the kernel samples for NUMA hinting
|
||||
faults may be controlled by the numa_balancing_scan_period_min_ms,
|
||||
numa_balancing_scan_delay_ms, numa_balancing_scan_period_reset,
|
||||
numa_balancing_scan_period_max_ms and numa_balancing_scan_size_mb sysctls.
|
||||
numa_balancing_scan_period_max_ms, numa_balancing_scan_size_mb and
|
||||
numa_balancing_settle_count sysctls.
|
||||
|
||||
==============================================================
|
||||
|
||||
|
|
@ -420,6 +421,11 @@ scanned for a given scan.
|
|||
numa_balancing_scan_period_reset is a blunt instrument that controls how
|
||||
often a tasks scan delay is reset to detect sudden changes in task behaviour.
|
||||
|
||||
numa_balancing_settle_count is how many scan periods must complete before
|
||||
the schedule balancer stops pushing the task towards a preferred node. This
|
||||
gives the scheduler a chance to place the task on an alternative node if the
|
||||
preferred node is overloaded.
|
||||
|
||||
==============================================================
|
||||
|
||||
osrelease, ostype & version:
|
||||
|
|
|
|||
Loading…
Reference in a new issue