[erledigt] i8kutils stoppt Kernel: Verständnisfrage zum Verhalten?

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
hikaru
Moderator
Beiträge: 13585
Registriert: 09.04.2008 12:48:59

[erledigt] i8kutils stoppt Kernel: Verständnisfrage zum Verhalten?

Beitrag von hikaru » 14.12.2021 10:15:54

Hallo,

ich betreibe ein Dell-Notebook (E6230) als HTPC. Weil der Lüfter etwas übereifrig ist, steuere ich ihn mit Debiani8kutils statt dies dem BIOS zu überlassen.
Dabei habe ich den Effekt, dass bei der Wiedergabe von Videos ca. einmal alle drei oder vier Stunden der Bildschirm für ein bis zwei Sekunden schwarz wird und gleichzeitig der Ton aussetzt. Dem Videoinhalt nach zu urteilen läuft das Video in dieser Zeit weiter.
Ob der Fernseher während des Aussetzers überhaupt noch ein Signal erhält weiß ich nicht. Falls nicht, ist es offenbar wieder da, bevor er seine "kein Signal"-Meldung ausgeben kann.

Laut [1] (was zu [2] führt) wird bei jedem i8k-BIOS-Call der Kernel kurz gestoppt, wozu einige User Audio-Aussetzer berichten. Bei der reinen Audioausgabe (Musik) habe ich das noch nicht beobachtet, aber ich habe die Zeiten für die BIOS-Calls gemessen (repräsentatives Beispiel aus mehreren Messungen):

Code: Alles auswählen

# probe_i8k_calls_time 
functions time
i8k_get_bios_version() = 0.014060
i8k_get_machine_id() = 0.000003
i8k_get_cpu_temp() = 0.000444
i8k_get_fan_status() = 0.000538
i8k_get_fan_status() = 0.011528
i8k_get_fan_speed() = 0.001387
i8k_get_fan_speed() = 0.000488
i8k_get_power_status() = 0.000134
i8k_get_fn_status() = 0.000146
i8k_set_fan() = 0.000456
i8k_set_fan() = 0.000455
i8k_set_fan() = 0.000427
i8k_set_fan() = 0.011917
i8k_set_fan() = 0.012124
i8k_set_fan() = 0.011860
Die längsten Calls dauern also etwas über 1/100 Sekunde. Das passt nicht zu den Bild- und Ton-Aussetzern von 1-2 Sekunden. Ist es trotzdem plausibel, dass diese i8k-Calls die Ursache für die Aussetzer sind?
Weil die Aussetzer so selten sind bin ich mir noch nicht ganz sicher, aber ich glaube, dass sie nicht zwangsläufig mit Änderungen der Lüftergeschwindigkeit zusammenfallen. Natürlich stoppen auch andere Calls wie das Auslesen der CPU-Temperatur oder der Lüfterstufe den Kernel, aber da diese Ereignisse laut der Messungen den Kernel meist im Microsekundenbereich stoppen, würde ich daraus den Schluss ziehen, dass zwar das Stoppen des Kernels zu den Aussetzern führen kann, die Dauer der Kernel-Stopps aber nichts mit der Dauer der Aussetzer zu tun hat, sondern höchstens mit deren Auftretenswahrscheinlichkeit.

Da in [2] erwähnt wird, dass verschiedene BIOS-Versionen unterschiedlich lange für die Ausführung der Calls brauchen spiele ich mit dem Gedanken, verschiedene BIOS-Versionen daraufhin zu testen. Das ergäbe für mich aber wenig Sinn, wenn es bei der Länge der Kernel-Stopps keine Obergrenze gibt, ab der ich davon ausgehen könnte, dass es nicht mehr zu Aussetzern kommt.
Gibt es also einen Schwellwert von N µs, unterhalb dessen ich annehmen könnte, dass es keine sekundenlangen Aussetzer in der BIld- und Tonausgabe mehr gibt?
Hat jemand generell eine Erklärung, warum Kernel-Stopps im µs-Bereich zu Ausgabeaussetzern im Sekundenbereich führen?


[1] https://wiki.archlinux.org/title/fan_sp ... ll_laptops
[2] https://github.com/vitorafsr/i8kutils/issues/15

Benutzeravatar
hikaru
Moderator
Beiträge: 13585
Registriert: 09.04.2008 12:48:59

Re: [erledigt] i8kutils stoppt Kernel: Verständnisfrage zum Verhalten?

Beitrag von hikaru » 19.12.2021 13:51:14

Da war ich wohl auf einer falschen Fährte. i8k war offenbar nicht der Schuldige, sondern es gab ein Kommunikationsproblem zwichen dem HTPC und dem Fernseher, über das direkt an den Laptop angeschlossene HDMI-Kabel. Problemberichte mit ähnlichen Symptomen (sporadische, kurze Aussetzer ohne klare Diagnose) gibt es zu Hauf um Netz, unabhängig von Software, Betriebssystem oder Zuspielgerät.
Ich habe den Fernseher jetzt über ein Displayport-HDMI-Kabel an der Docking Station angeschlossen und seit Tagen keine Aussetzer mehr.

Antworten