CPU Frequency Statistics ohne cpufreq_stats in 4.9?

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Lookbehind
Beiträge: 143
Registriert: 12.08.2011 18:09:13

CPU Frequency Statistics ohne cpufreq_stats in 4.9?

Beitrag von Lookbehind » 23.06.2018 14:42:26

Hallo zusammen,

ich weiß nicht ob ich hier so absolut richtig bin. Compilen wollte ich den Kernel dafür jetzt eigentlich nicht. Aber irgendwie hats ja letztlich doch auch mit dem Kernel zu tun.

Das ganze passiert auf einem 64Bit Debian Stretch mit folgender Kernel-Version aus den Repos: #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07)

Grundproblem war, dass ich auf einem System Munin einrichten wollte um diverse Parameter im Auge behalten zu können. Dabei fiel mir auf, dass, im Gegensatz zu anderen Systemen die CPU-Frequenz nicht als Graph auftauchte. ... Naja, fehlt das Munin-Plugin. Nach geladen, immer noch nix. Plugin beschwert sich, dass es /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state nicht öffnen könne. Da begann die Fehlersuche ...

Damit es das stats/ Verzeichnis in cpufreq/ gibt, muss wohl das Kernel-Modul cpufreq_stats geladen sein. lsmod verrät, dass dem nicht so ist, also laden. Denkste!

Code: Alles auswählen

# modprobe cpufreq_stats
modprobe: FATAL: Module cpufreq_stats not found in directory /lib/modules/4.9.0-6-amd64
Google verrät, dass in 4.9 das cpufreq_stats Modul wohl fest in den Kernel eingebacken wurde. Ok, aber wie aktiviert man es? Oder spuckt es seine Werte jetzt an anderer Stelle aus?

Und dann fiel mir ein, dass ich ja noch ein zweites Stretch System habe. Im Gegensatz zu dem Problemsystem war das aber keine frische Neuinstallation, sondern wurde von Wheezy über Jessie auf Stretch gezogen. Der interessante Teil: Dort funktioniert das Munin-Plugin seit jeher, und /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state existiert auch und spuckt fröhlich Daten aus. ... Kernel-Version ist exakt die gleiche. Aber cpufreq_stats ist auch dort nicht geladen.
Magie existiert also doch? *kratz*

Nunja, irgendwas muss auf dem zweiten System anders sein, als auf dem ersten. Kann mir mal jemand verraten was das sein soll?

Problemsystem:

Code: Alles auswählen

# uname -v
#1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07)
# lsmod | grep cpu
xt_tcpudp              16384  21
pcc_cpufreq            16384  0
x_tables               36864  8 ipt_REJECT,ip_tables,iptable_filter,xt_tcpudp,ipt_MASQUERADE,ip6table_filter,xt_conntrack,ip6_tables
# ls /sys/devices/system/cpu/cpu0/cpufreq/
affected_cpus     cpuinfo_transition_latency   scaling_driver    scaling_setspeed
cpuinfo_cur_freq  related_cpus                 scaling_governor
cpuinfo_max_freq  scaling_available_governors  scaling_max_freq
cpuinfo_min_freq  scaling_cur_freq             scaling_min_freq
Funktionierendes System:

Code: Alles auswählen

$ uname -v
#1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07)
$ lsmod | grep cpu
xt_tcpudp              16384  16
cpufreq_powersave      16384  0
cpufreq_userspace      16384  0
cpufreq_conservative    16384  0
acpi_cpufreq           20480  1
x_tables               36864  5 ipt_REJECT,ip_tables,iptable_filter,xt_tcpudp,xt_iprange
$ ls /sys/devices/system/cpu/cpu0/cpufreq/
affected_cpus               freqdomain_cpus                scaling_governor
bios_limit                  related_cpus                   scaling_max_freq
cpuinfo_cur_freq            scaling_available_frequencies  scaling_min_freq
cpuinfo_max_freq            scaling_available_governors    scaling_setspeed
cpuinfo_min_freq            scaling_cur_freq               stats
cpuinfo_transition_latency  scaling_driver
$ ls /sys/devices/system/cpu/cpu0/cpufreq/stats/
time_in_state  total_trans
Wahrscheinlich werdet ihr noch weitere Informationen brauchen. Bloß welche?

TIA

Look

geier22

Re: CPU Frequency Statistics ohne cpufreq_stats in 4.9?

Beitrag von geier22 » 23.06.2018 15:23:54

Was bringt denn die Ausgabe von

Code: Alles auswählen

# cpupower frequency-info
Edit:

Installiere doch mal bitte Debianinxi

und dann die Ausgabe von

Code: Alles auswählen

inxi -C
die Ausgabe von:

Code: Alles auswählen

ls -al /lib/modules/$(uname -r)/kernel/drivers/cpufreq/
sowie von

Code: Alles auswählen

dpkg -l *acpi* |grep ii

Lookbehind
Beiträge: 143
Registriert: 12.08.2011 18:09:13

Re: CPU Frequency Statistics ohne cpufreq_stats in 4.9?

Beitrag von Lookbehind » 23.06.2018 16:37:43

Hallo geier22,

inxi will einen kompletten X-Server hinterher ziehen, auch wenn ich explizit die recommends weg lasse. Hab ich dann mal lieber gelassen. X hat auf der Kiste nix verloren. Aber ich kann dir auch so sagen, welcher Prozessor das ist ;)

Problemsystem:

Code: Alles auswählen

# cpupower frequency-info
analysiere CPU 0:
  driver: pcc-cpufreq
  Folgende CPUs laufen mit der gleichen Hardware-Taktfrequenz: 0
  Die Taktfrequenz folgender CPUs werden per Software koordiniert: 0
  Maximale Dauer eines Taktfrequenzwechsels:  Cannot determine or is not supported.
  Hardwarebedingte Grenzen der Taktfrequenz: 2.13 GHz - 2.30 GHz
  mögliche Regler: conservative ondemand performance schedutil
  momentane Taktik: die Frequenz soll innerhalb 2.13 GHz und 2.30 GHz.
                    liegen. Der Regler "ondemand" kann frei entscheiden,
                    welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
  current CPU frequency: 23.0 MHz (asserted by call to hardware)
  boost state support:
    Supported: no
    Active: no
    2300 MHz max turbo 4 active cores
    2300 MHz max turbo 3 active cores
    2300 MHz max turbo 2 active cores
    2300 MHz max turbo 1 active cores

# cat /proc/cpuinfo 
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 58
model name      : Intel(R) Celeron(R) CPU G1610T @ 2.30GHz
stepping        : 9
microcode       : 0x1c
cpu MHz         : 2128.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave lahf_lm epb kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm arat pln pts
bugs            : cpu_meltdown spectre_v1 spectre_v2
bogomips        : 4589.59
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 58
model name      : Intel(R) Celeron(R) CPU G1610T @ 2.30GHz
stepping        : 9
microcode       : 0x1c
cpu MHz         : 2128.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 2
initial apicid  : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave lahf_lm epb kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm arat pln pts
bugs            : cpu_meltdown spectre_v1 spectre_v2
bogomips        : 4589.59
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

# ls -al /lib/modules/$(uname -r)/kernel/drivers/cpufreq/
insgesamt 216
drwxr-xr-x 1 root root   360 Mai  9 20:41 .
drwxr-xr-x 1 root root   660 Mär  5 17:20 ..
-rw-r--r-- 1 root root 39088 Mai  8 00:38 acpi-cpufreq.ko
-rw-r--r-- 1 root root  7344 Mai  8 00:38 amd_freq_sensitivity.ko
-rw-r--r-- 1 root root 12408 Mai  8 00:38 cpufreq_conservative.ko
-rw-r--r-- 1 root root  6320 Mai  8 00:38 cpufreq_powersave.ko
-rw-r--r-- 1 root root 11512 Mai  8 00:38 cpufreq_userspace.ko
-rw-r--r-- 1 root root 13088 Mai  8 00:38 p4-clockmod.ko
-rw-r--r-- 1 root root 25568 Mai  8 00:38 pcc-cpufreq.ko
-rw-r--r-- 1 root root 51616 Mai  8 00:38 powernow-k8.ko
-rw-r--r-- 1 root root 11736 Mai  8 00:38 speedstep-centrino.ko
-rw-r--r-- 1 root root 21376 Mai  8 00:38 speedstep-lib.ko
# dpkg -l *acpi* |grep ii
ii  acpi-support-base  0.142-8       all          scripts for handling base ACPI events such as the power button
ii  acpid              1:2.0.28-1+b1 amd64        Advanced Configuration and Power Interface event daemon
Funktionierendes System:

Code: Alles auswählen

$ cpupower frequency-info
analysiere CPU 0:
  driver: acpi-cpufreq
  Folgende CPUs laufen mit der gleichen Hardware-Taktfrequenz: 0
  Die Taktfrequenz folgender CPUs werden per Software koordiniert: 0
  Maximale Dauer eines Taktfrequenzwechsels: 10.0 us
  Hardwarebedingte Grenzen der Taktfrequenz: 1.60 GHz - 2.93 GHz
  available frequency steps:  2.93 GHz, 1.60 GHz
  mögliche Regler: powersave userspace conservative ondemand performance schedutil
  momentane Taktik: die Frequenz soll innerhalb 1.60 GHz und 2.93 GHz.
                    liegen. Der Regler "ondemand" kann frei entscheiden,
                    welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 1.60 GHz (asserted by call to kernel)
  boost state support:
    Supported: no
    Active: no

$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 23
model name	: Intel(R) Core(TM)2 Duo CPU     E7500  @ 2.93GHz
stepping	: 10
microcode	: 0xa0b
cpu MHz		: 1596.000
cache size	: 3072 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf eagerfpu pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm kaiser tpr_shadow vnmi flexpriority dtherm
bugs		: cpu_meltdown spectre_v1 spectre_v2
bogomips	: 5866.78
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 23
model name	: Intel(R) Core(TM)2 Duo CPU     E7500  @ 2.93GHz
stepping	: 10
microcode	: 0xa0b
cpu MHz		: 1596.000
cache size	: 3072 KB
physical id	: 0
siblings	: 2
core id		: 1
cpu cores	: 2
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf eagerfpu pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm kaiser tpr_shadow vnmi flexpriority dtherm
bugs		: cpu_meltdown spectre_v1 spectre_v2
bogomips	: 5866.78
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

$ ls -al /lib/modules/$(uname -r)/kernel/drivers/cpufreq/
insgesamt 224
drwxr-xr-x  2 root root  4096 Mai  9 19:38 .
drwxr-xr-x 71 root root  4096 Feb 22 17:42 ..
-rw-r--r--  1 root root 39088 Mai  8 00:38 acpi-cpufreq.ko
-rw-r--r--  1 root root  7344 Mai  8 00:38 amd_freq_sensitivity.ko
-rw-r--r--  1 root root 12408 Mai  8 00:38 cpufreq_conservative.ko
-rw-r--r--  1 root root  6320 Mai  8 00:38 cpufreq_powersave.ko
-rw-r--r--  1 root root 11512 Mai  8 00:38 cpufreq_userspace.ko
-rw-r--r--  1 root root 13088 Mai  8 00:38 p4-clockmod.ko
-rw-r--r--  1 root root 25568 Mai  8 00:38 pcc-cpufreq.ko
-rw-r--r--  1 root root 51616 Mai  8 00:38 powernow-k8.ko
-rw-r--r--  1 root root 11736 Mai  8 00:38 speedstep-centrino.ko
-rw-r--r--  1 root root 21376 Mai  8 00:38 speedstep-lib.ko
$ dpkg -l *acpi* |grep ii
ii  acpi               1.7-1+b1      amd64        displays information on ACPI devices
ii  acpi-support-base  0.142-8       all          scripts for handling base ACPI events such as the power button
ii  acpid              1:2.0.28-1+b1 amd64        Advanced Configuration and Power Interface event daemon

geier22

Re: CPU Frequency Statistics ohne cpufreq_stats in 4.9?

Beitrag von geier22 » 23.06.2018 17:19:35

Lookbehind hat geschrieben: ↑ zum Beitrag ↑
23.06.2018 16:37:43

Code: Alles auswählen

cpupower frequency-info 
analysiere CPU 0: 
driver: pcc-cpufreq
Lookbehind hat geschrieben: ↑ zum Beitrag ↑
23.06.2018 16:37:43

Code: Alles auswählen

$ cpupower frequency-info 
analysiere CPU 0: 
driver: acpi-cpufreq
Wenn man über die Unterschiede pcc-cpufreq / acpi-cpufreq liest, wird allgemein empfohlen acpi-cpufreq zu benutzen.
nach https://wiki.archlinux.org/index.php/CP ... ncy_driver scheint er sogar nicht geeignet.
Wie man das aber umstellt, da bin ich überfragt.

Lookbehind
Beiträge: 143
Registriert: 12.08.2011 18:09:13

Re: CPU Frequency Statistics ohne cpufreq_stats in 4.9?

Beitrag von Lookbehind » 23.06.2018 17:30:48

Das ist in der Theorie ganz einfach ...

Erst den alten raus:

Code: Alles auswählen

# lsmod | grep cpu
xt_tcpudp              16384  21
pcc_cpufreq            16384  0
x_tables               36864  8 ipt_REJECT,ip_tables,iptable_filter,xt_tcpudp,ipt_MASQUERADE,ip6table_filter,xt_conntrack,ip6_tables
# modprobe -r pcc_cpufreq 
# lsmod | grep cpu
xt_tcpudp              16384  21
x_tables               36864  8 ipt_REJECT,ip_tables,iptable_filter,xt_tcpudp,ipt_MASQUERADE,ip6table_filter,xt_conntrack,ip6_tables
Dann den neuen rein:

Code: Alles auswählen

# modprobe acpi-cpufreq 
modprobe: ERROR: could not insert 'acpi_cpufreq': No such device
# lsmod | grep cpu
xt_tcpudp              16384  21
x_tables               36864  8 ipt_REJECT,ip_tables,iptable_filter,xt_tcpudp,ipt_MASQUERADE,ip6table_filter,xt_conntrack,ip6_tables
Dann sich wundern, und den alten wieder rein laden:

Code: Alles auswählen

# modprobe pcc_cpufreq 
# lsmod | grep cpu
pcc_cpufreq            16384  0
xt_tcpudp              16384  21
x_tables               36864  8 ipt_REJECT,ip_tables,iptable_filter,xt_tcpudp,ipt_MASQUERADE,ip6table_filter,xt_conntrack,ip6_tables
*kratz*

Edit: Google sagt, ich solle diesbezüglich nochmal ins BIOS schauen. ... Is grad schlecht. Die Kiste steht etliche Kilometer weg. Werd ich machen, wenn ich das nächste mal vor Ort bin.


Lookbehind
Beiträge: 143
Registriert: 12.08.2011 18:09:13

Re: CPU Frequency Statistics ohne cpufreq_stats in 4.9?

Beitrag von Lookbehind » 23.06.2018 18:28:26

Siehe meinen Edit im letzten Post:
Ist möglich, dass es an BIOS-Einstellungen liegt. Zumindest kann ich das zum gegenwärtigen Zeitpunkt nicht gänzlich ausschließen, allerdings auch gerade schlecht überprüfen.

Danke so weit schon mal.

whiizy
Beiträge: 662
Registriert: 23.07.2011 22:09:37

Re: CPU Frequency Statistics ohne cpufreq_stats in 4.9?

Beitrag von whiizy » 24.06.2018 11:00:45

Ich hatte jetzt gerade nicht genug Zeit alles genau zu lesen. Aber meines Wissens ist auf Intel Systemen unter Stretch der default scaling_driver der intel_pstate.

Eine Rückfallmöglichkeit auf den scaling_driver acpi-cpufreq existiert, wenn man es dem Kernel über einen grub-Eintrag explizit sagt.

Ein scaling_driver pcc-cpufreq ist mir bisher noch auf keinem meiner Systeme begegnet, ist möglicherweise etwas exotisch.

Auf einem Debian Stretch bei mir kontrolliere ich es bspw. so:

Code: Alles auswählen

# cat /sys/bus/cpu/drivers/processor/cpu0/cpufreq/scaling_driver 
intel_pstate

Antworten