Linux Kernel performance/power mechanisms

[www.kernel.org] CPU and Device Power Management

  CPU Idle Time Management

[www.kernel.org] CPU hotplug in the Kernel

[by1994.github.io] Linux CPU and Power

[www.kernel.org] Power Management

[ostconf.com] Power Management in Linux* - State of The Art

[www.kernel.org] Working-State Power Management

  CPU Idle Time Management

CPU DVFS

[www.kernel.org] CPUFreq Governor

Scheduler

CPU Affinity

[www.how-hard-can-it.be] CPU Affinity Introduction ☑ CPU affinity 是指限制某個 thread 只能跑在哪些 CPU 上. CPU affinity 的好處: 1. optimize cache performance: 如果 thread 不斷地被 schedule 到不同的 CPU, 會帶來比較高的 cache invalidate penalty. 2. optimize cache performance: 如果多個 thread 會常常 access 到同一組 data, 把它們綁在同一顆 CPU, 可以增加 cache his rate. 3. ensure performance of time-sensitive applications: 讓對時間需求敏感的 threads, 確保有充足的 CPU 來 serve 它們. [man7.org] [Linux Programmer's Manual] sched_setaffinity ☑ 設定某個 thread 可以跑在哪些 CPU 上.

CPUSET

[www.kernel.org] [The Linux kernel user's and administrator's guide] CPUSETS ☑ [man7.org][Linux Programmer's Manual] cpuset

Energy Aware Scheduling

[kernel.org] Energy Aware Scheduling

Scheduler

[man7.org][Linux Programmer's Manual] sched ☑ - overview of CPU scheduling [android.googlesource.com] sched-tune [kernel.org] Capacity Aware Scheduling - CPU capacity, Task Utilization [kernel.org] CFS Scheduler [LWN.et] Per-entity load tracking