• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Kworker legt System lahm

mojo

Member
Hallo, habe ein Acer 1810TZ (Intel Pentium SU4100 1.3GHz, 2GB RAM, 250GB HDD, Intel GMA 4500MHD) und seit der Installation von Opensuse 11.4 (x86), KDE 4.6.5, Probleme mit einem einfrierendem System.

Opensuse 11.4 wurde neu installiert (kein Upgrade).

Konkret bemerkbar macht sich das, indem der Mauszeiger anfängt zu ruckeln und dann komplett einfriert.
Auch die Anzeige von Monitoringdaten (Gkrellm und/oder top) bleibt dann stehen.
Nach etlichen Sekunden lässt sich der Mauszeiger dann einige Millimeter bewegen, friert aber sofort wieder ein. Das kann einige Minuten dauern bis das System wieder benutzbar ist (oftmals fahre ich aber das System mittels Powerknopf runter - das dauert zwar auch, bis auf den Powerknopf reagiert wird, aber klappt nach unterschiedlichen Wartezeiten mehr oder minder).

Folgendes habe ich mittlerweile festgestellt:

- wenn das System belastet wird (beispielsweise mit Flashvideos oder Laufbändern auf Webseiten) sind bei top ein bis zwei Threads von kworker zu sehen, die dann zwischen 20% und 50% CPU-Last erzeugen

- bewege ich die Maus (alternativ Touchpad) friert der Mauszeiger ein und die Ausgabe von top ebenfalls

- nach einigen Sekunden reagiert top dann wieder, es sind aber immer noch die kworker-Threads zu sehen

- bewege ich die Maus erneut, friert wieder alles ein

- rühre ich das System nicht an (oftmals minutenlang), verschwinden die kworker-Threads wieder und ich kann ganz normal weiterarbeiten, bis ich wieder eine höhere Systemlast erzeuge (Anm.: ich surfe eigentlich nur im Web, es läuft keine Hintergrundmusik o.ä.)

- solange ich das System nicht belaste (also auf "ruhigen" Webseiten ohne Gezappel oder Flashvideos surfe), taucht das Problem nicht auf.

Das geschilderte Problem ist seit der Erstinstallation von Opensuse 11.4 vorhanden.
Deshalb habe ich vor einiger Zeit auch das Tumbleweed-Repo eingebunden, in der Hoffnung durch Updates und neuere Kernel das Problem beseitigen zu können. Leider hat dies alles nix genutzt (obwohl mittlerweile schon mehrere Kernelupdates erfolgt sind).

Was ist das Problem? X? Intel Grafikkartentreiber? KDE? Irgendwo fand ich mal einen Hinweis auf ein "IRQ-Flood"?

Würde gern wieder vernünftig mit dem System arbeiten, aber der Fehler ist trotz neuer Kernel und Updates bisher nicht behoben worden, obwohl ich bei Tante Google einige Hinweise auf hohe Systemlast durch kworker gefunden habe (aber leider auch keine Lösung dazu).

Offensichtlich scheint das Problem den Entwicklern gar nicht bekannt zu sein.

mojo

Nachtrag:
stelle eben reproduzierbar fest, dass ich, wenn ich beim Schreiben dieses Threads auf den "Vorschau"-Button klicke, top sofort zwei kworker-Thread anzeigt, die auf Platz eins und zwei der top-Ausgabe springen. Der Mauszeiger wird dann zwar "ruppig", aber bleibt nicht ganz stehen (die CPU-Last der kworker-Threads liegt zw. 12% und 15%). Nach einigen Sekunden beruhigt es sich dann wieder.
 
kworker ist eine Art Platzhalter-thread, der diverse Kernel-Prozesse zusammenfasst - das 'k' in kworker bezieht sich also nicht auf KDE. Dies schließt in erster Linie Prozesse wie interrupts, Festplattenaktivitäten etc. ein.

Denkbar wäre, dass sich kworker an einem i/o-Prozess abarbeitet (bad blocks?), deshalb würde ich mir an Deiner Stelle mal /var/log/messages genauer anschauen (oder via Strg + Alt + F10 die laufenden Kernelmeldungen). Nützlich wäre u.U. auch ein Monitor wie 'iotop' (den Du nachinstallieren müsstest).
 
OP
M

mojo

Member
Habe jetzt nochmal getestet.

Ich konnte eben eine gute halbe Stunde vollkommen normal mit dem System arbeiten.

Dann habe ich (absichtlich) auf Youtube eine HD Demo ablaufen lassen. Und siehe da: das System stockte, kworker sprang an die Spitze von top.

Smartctl zeigte keine Auffälligkeiten:
Code:
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   103   099   006    Pre-fail  Always       -       5822817
  3 Spin_Up_Time            0x0003   099   099   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       344
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   067   060   030    Pre-fail  Always       -       6242059
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       265
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   037   020    Old_age   Always       -       299
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   096   000    Old_age   Always       -       259
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   067   057   045    Old_age   Always       -       33 (Min/Max 24/33)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       1
193 Load_Cycle_Count        0x0032   088   088   000    Old_age   Always       -       25669
194 Temperature_Celsius     0x0022   033   043   000    Old_age   Always       -       33 (0 9 0 0)
195 Hardware_ECC_Recovered  0x001a   046   044   000    Old_age   Always       -       5822817
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

/var/log/messages sieht auch normal aus:
Code:
Jul 13 18:14:51 linux-9l2x acpid: 1 client rule loaded
Jul 13 18:15:15 linux-9l2x su: (to root) test on /dev/pts/3
Jul 13 18:18:33 linux-9l2x su: (to root) test on /dev/pts/5
Jul 13 18:18:34 linux-9l2x su: (to root) test on /dev/pts/5
Jul 13 18:20:38 linux-9l2x pulseaudio[2243]: ratelimit.c: 7 events suppressed
Jul 13 18:21:50 linux-9l2x acpid: 1 client rule loaded
Jul 13 18:32:36 linux-9l2x smartd[1707]: Device: /dev/sda [SAT], SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 68 to 66
Jul 13 18:32:36 linux-9l2x smartd[1707]: Device: /dev/sda [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 32 to 34
Jul 13 18:33:14 linux-9l2x acpid: 1 client rule loaded

Aber Powertop war interessant:
Code:
Keine ACPI Stromverbrauch-Schätzung verfügbar

Häufigste Ursachen für das Aufwachen:
  53,9% (390,8)   PS/2 keyboard/mouse/touchpad interrupt
  11,8% ( 85,7)   kworker/0:0
  10,2% ( 73,7)   [kernel scheduler] Load balancing tick
   8,4% ( 61,0)   [extra timer interrupt]
   3,2% ( 22,9)   [iwlagn] <interrupt>
   2,8% ( 20,0)   knotify4
   2,0% ( 14,3)   firefox-bin
   1,5% ( 10,5)   gkrellm
   1,4% ( 10,0)   [kernel core] call_timer_fn (poll_spurious_irqs)
   1,1% (  8,3)   [kernel core] hrtimer_start (tick_sched_timer)
   0,9% (  6,5)   Xorg
   0,4% (  2,6)   [Rescheduling interrupts] <kernel IPI>
   0,3% (  2,4)   [acpi] <interrupt>
   0,3% (  2,2)   mysqld
   0,3% (  2,0)   [kernel core] call_timer_fn (iwl_bg_watchdog)
   0,1% (  1,0)   kworker/0:1
   0,1% (  1,0)   kworker/u:5
   0,1% (  0,9)   [Function call interrupts] <kernel IPI>
   0,1% (  0,9)   watchdog/0
   0,1% (  0,7)   [ahci] <interrupt>

Der erste Eintrag
53,9% (390,8) PS/2 keyboard/mouse/touchpad interrupt
tauchte bisher gar nicht in powertop auf. Erst nach dem "ruckeln" war der Eintrag da - und dann gleich als "Spitzenreiter". Das würde ja erklären, warum Maus und Touchpad nicht mehr reagieren. Aber: wo liegt der Fehler, bzw. wie kann man dies abstellen?

mojo
 
Oben