Yes I had similar in mind.
On 7/9/19 5:38 AM, Subhra Mazumdar wrote:
On 7/8/19 10:24 AM, Parth Shah wrote:I agree, can be done with latency-nice.
When searching for an idle_sibling, scheduler first iterates to search forI believe this can co-exist with latency-nice? We can derive the 'nr' in
an idle core and then for an idle CPU. By maintaining the idle CPU mask
while iterating through idle cores, we can mark non-idle CPUs for which
idle CPU search would not have to iterate through again. This is especially
true in a moderately load system
Optimize idle CPUs search by marking already found non idle CPUs during
idle core search. This reduces iteration count when searching for idle
CPUs, resulting in lower iteration count.
select_idle_cpu from latency-nice and use the new mask to iterate.
Maybe something like below?
smt = nr_cpus / nr_cores
nr = smt + (p->latency_nice * (total_cpus-smt) / max_latency_nice)
This limits lower bounds to 1 core and goes through all the cores if
latency_nice is maximum for a task.