On 2020/11/12 18:57, Qais Yousef wrote: > On 10/21/20 23:03, Aubrey Li wrote: >> From: Aubrey Li <aubrey...@intel.com> >> >> Added idle cpumask to track idle cpus in sched domain. When a CPU >> enters idle, its corresponding bit in the idle cpumask will be set, >> and when the CPU exits idle, its bit will be cleared. >> >> When a task wakes up to select an idle cpu, scanning idle cpumask >> has low cost than scanning all the cpus in last level cache domain, >> especially when the system is heavily loaded. >> >> v2->v3: >> - change setting idle cpumask to every idle entry, otherwise schbench >> has a regression of 99th percentile latency. >> - change clearing idle cpumask to nohz_balancer_kick(), so updating >> idle cpumask is ratelimited in the idle exiting path. >> - set SCHED_IDLE cpu in idle cpumask to allow it as a wakeup target. >> >> v1->v2: >> - idle cpumask is updated in the nohz routines, by initializing idle >> cpumask with sched_domain_span(sd), nohz=off case remains the original >> behavior. > > Did you intend to put the patch version history in the commit message? > > I started looking at this last week but got distracted. I see you already got > enough reviews, so my 2p is that I faced some compilation issues: > > aarch64-linux-gnu-ld: kernel/sched/idle.o: in function > `set_next_task_idle': > /mnt/data/src/linux/kernel/sched/idle.c:405: undefined reference to > `update_idle_cpumask' > aarch64-linux-gnu-ld: kernel/sched/fair.o: in function > `nohz_balancer_kick': > /mnt/data/src/linux/kernel/sched/fair.c:10150: undefined reference to > `update_idle_cpumask' > aarch64-linux-gnu-ld: /mnt/data/src/linux/kernel/sched/fair.c:10148: > undefined reference to `update_idle_cpumask' > > Because of the missing CONFIG_SCHED_SMT in my .config. I think > update_idle_cpumask() should be defined unconditionally.
Thanks to point this out timely, :), I'll fix it in the next version. -Aubrey