https://gihyo.jp/admin/clip/01/linux_dt/41187/02
Die wichtigsten Updates in Linux 5.7 sind: Implementierung von "Thermal Pressure ", den der Taskplaner bei Überhitzung der CPU anpasst, damit die Leistung aufgrund der Frequenzänderung durch den Regler nicht zu stark abnimmt.
Lassen Sie uns dies auf Implementierungsbasis überprüfen!
Der Speicherort des geänderten Quellcodes hängt mit dem Zeitplan zusammen.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/kernel/sched?h=v5.7.1
Wenn Sie sich das Festschreibungsprotokoll ansehen, finden Sie es hier.
sched/pelt: Add support to track thermal pressure
Extrapolating on the existing framework to track rt/dl utilization using pelt signals, add a similar mechanism to track thermal pressure.
Extrapolieren Sie auf ein vorhandenes Framework und fügen Sie einen ähnlichen Mechanismus hinzu, um die RT / DL-Nutzung mithilfe von Pert-Signalen und dem thermischen Druck zu verfolgen.
The difference here from rt/dl utilization tracking is that, instead of tracking time spent by a CPU running a RT/DL task through util_avg, the average thermal pressure is tracked through load_avg.
Der Unterschied zur Verfolgung der RT / DL-Nutzung besteht darin, dass anstelle der Verfolgung der verstrichenen Zeit der CPU, auf der die RT / DL-Task über util_avg ausgeführt wird, der durchschnittliche thermische Druck über load_avg verfolgt wird.
This is because thermal pressure signal is weighted time "delta" capacity unlike util_avg which is binary.
Dies liegt daran, dass das thermische Drucksignal im Gegensatz zum binären util_avg die "Delta" -Kapazität der gewichteten Zeit ist.
"delta capacity" here means delta between the actual capacity of a CPU and the decreased capacity a CPU due to a thermal event.
"Delta-Kapazität" bedeutet hier die Differenz zwischen der tatsächlichen Kapazität der CPU und der durch das thermische Ereignis reduzierten Kapazität der CPU. .
In order to track average thermal pressure, a new sched_avg variable avg_thermal is introduced. Function update_thermal_load_avg can be called to do the periodic bookkeeping (accumulate, decay and average) of the thermal pressure.
Mit anderen Worten, der durchschnittliche thermische Druck ist die Einführung einer neuen Variable sched_avg, avg_thermal. Die Funktion update_thermal_load_avg wird aufgerufen, um eine periodische Buchhaltung durchzuführen (kumulativ / Zerfall / Mittelwertbildung).
sched/fair: Enable periodic update of average thermal pressure
Introduce support in scheduler periodic tick and other CFS bookkeeping APIs to trigger the process of computing average thermal pressure for a CPU.
Innerhalb des Schedulers unterstützen regelmäßige Ticks und andere CFS-Buchhaltungs-APIs das Auslösen der Berechnung des durchschnittlichen thermischen Drucks der CPU.
Also consider avg_thermal.load_avg in others_have_blocked which allows for decay of pelt signals.
Berücksichtigen Sie außerdem avg_thermal.load_avg von Others_have_blocked, unter anderem blockiert von pert-Signalen.
sched/fair: Update cpu_capacity to reflect thermal pressure
cpu_capacity initially reflects the maximum possible capacity of a CPU. Thermal pressure on a CPU means this maximum possible capacity is unavailable due to thermal events.
cpu_capacity spiegelt zunächst die maximal zulässige Kapazität der CPU wider. Der thermische Druck der CPU ist die maximal mögliche Kapazität, die durch das thermische Ereignis deaktiviert wird.
This patch subtracts the average thermal pressure for a CPU from its maximum possible capacity so that cpu_capacity reflects the remaining maximum capacity.
Dieser Patch subtrahiert den durchschnittlichen thermischen Druck der CPU von der maximal möglichen Kapazität, sodass cpu_capacity die verbleibende maximale Kapazität widerspiegelt.
sched/fair: Enable tuning of decay period
Thermal pressure follows pelt signals which means the decay period for thermal pressure is the default pelt decay period.
Der thermische Druck folgt dem pert-Signal. Mit anderen Worten ist die thermische Druckabfallperiode die Standard-pert-Abklingperiode.
Depending on SoC characteristics and thermal activity, it might be beneficial to decay thermal pressure slower, but still in-tune with the pelt signals.
Abhängig von den Eigenschaften des SoC und der relativen Aktivität ist es vorteilhaft, den thermischen Druck zu verlangsamen, aber er stimmt mit dem pert-Signal überein.
One way to achieve this is to provide a command line parameter to set a decay shift parameter to an integer between 0 and 10.
Eine Möglichkeit, dies zu tun, besteht darin, Befehlszeilenparameter anzugeben und den Decay Shift-Parameter auf eine Ganzzahl von 0 bis 10 zu setzen.
Recommended Posts