Commit 2a0f6e7a authored by aumgn's avatar aumgn
Browse files

Avancement analyse load_balancing

parent 9b038a7d
......@@ -231,8 +231,8 @@ This function will never be called at runtime and probably be optimized away by
=> Seems to be only set for domain whose SD_NUMA flag is also set.
=> TODO Checks if when this lock is not used, this is because :
- Another held lock might prevent concurrency problems
- It is (assumed) not (to be) a problem to do multiple load balancings concurrently
+ TODO Use some kind of decay heuristics related to fields :
- It is not a problem to do multiple load balancings concurrently
+ TODO Use some kind of decay heuristics related to the fields :
- sched_domain.next_decay_max_lb_cost
- sched_domain.max_newidle_lb_cost
+ Call load_balance to actually do the balancing for the current CPU and each relevant domain
......@@ -278,6 +278,14 @@ This function will never be called at runtime and probably be optimized away by
+ Starts by computing stats inside a two level struct sd_lb_stats with field
struct sg_lb_stats by calling update_sd_lb_stats.
+ Calls check_asym_packing.
+ Differentiate between a group which is (enum group_type fair.c#6715):
- Overloaded, i.e. its load is greater than its capacity
=> Slight difference between being overloaded and having no capacity
(when the load is eaqual to the capacity)
- TODO Imbalanced, from field sched_group_capacity->imbalance
which may have been set by a previous call to load_balance
(set in function load_balance lines 7824 & unset line 7914)
- Other, for others cases
*** TODO update_sd_lb_stats
+ Uses field sched_domain->{busy,idle,newidle}_idx which are not really documented
......@@ -304,11 +312,17 @@ This function will never be called at runtime and probably be optimized away by
the tasks on the system).
"""
+ TLDR; Will iterates on all groups and update their stats. It will also sums them
for the domain.
+ TLDR; Will iterates on all groups of the domain and update their stats.
It will also sums them for the domain.
*** TODO update_sg_lb_stats
+ TODO Contains a comment "Bias balancing toward cpus of our domain"
+ The load of one group is computed as the sum of its CPUs (sched_capacity->cpumask)
+ For each CPU the load stats is choosen between :
- Its runqueue load decaying average, field rq->cpu_load
(using the idx describe in update_sd_lb_stats)
- TODO Its runqueue field rq->runnable_load_avg
=> Use minimum if the destination CPU is part of the considered group, maximum otherwise
Described as "Bias balancing toward cpus of our domain"
*** TODO check_asym_packing
+ Related to the POWER7 family of processor
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment