PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kernel Panik ca. 1 Sekunde nach rmmod



7.e.Q
29.11.04, 09:27
Hallo,

wie kann ich herausfinden, warum ca. 1 bis 2 Sekunden nach dem Entladen eines Treibers mit rmmod der Kernel mit einer Panic abraucht? Kurzzeitig kommt noch ein Prompt, aber so schnell kann ich gar keine Eingaben mehr machen. Dann kommt plötzlich die Kernel Panic mit kryptischen Speicheradressen und so... ihr kennt das ja...

Gruß, Hendrik

Tomek
29.11.04, 09:32
Du kannst ins Syslog gucken, falls dort was geloggt worden ist. Aber es wird wohl ein Kernel-Bug sein. Welche Version hast du denn, und bei welchem Treiber passiert das?

7.e.Q
29.11.04, 09:35
Haha, da kommts jetzt...

leider ist das ein proprietärer, selbstentwickelter Treiber. Also steht auch im Syslog nix vernünftiges drin, da die printk-Meldungen von uns stammen...

Kernel Version ist 2.6.7

Das Entladen des Treibers scheint gut zu funktionieren. Scheinbar wird dabei aber irgendwas vergessen, was kurze Zeit nach dem Entladen noch zuschlägt. Und das herauszufinden, darum geht's.

zander
29.11.04, 10:18
Wie sieht die vollständige Oops Meldung denn genau aus?

7.e.Q
29.11.04, 10:25
Schwer hier hereinzubekommen... kann sie nicht kopieren, da ich sie nicht im Telnet sehen kann und das System ja auch nicht mehr reagiert.

Aber es steht unten was von Bad EIP value und es finden Aufrufe auf IRQ-Handler statt... Irgendwie scheint da was mit dem freigebend es IRQ nicht ganz zu klappen.

zander
29.11.04, 10:41
Du solltest eine serielle Konsole installieren, die Fehlersuche gestaltet sich damit (insbesondere auch mit z.B. kdb) wesentlich komfortabler. Ist in dem stack trace die Rede von SoftIRQ's?

7.e.Q
29.11.04, 12:33
Ja, softirqs werden erwähnt im Stack Trace.

Serielle Konsole ist uns aufgrund der Hardwareausstattung der Systeme leider nicht möglich. Schön wär's.

zander
29.11.04, 12:59
Es gibt auch die Möglichkeit, über Netzwerk eine Konsole zu bekommen; zu dem Problem, benutzt Du tasklets? Falls ja, stellst Du sicher, daß diese vollständig abgearbeitet sind, bevor Du das Modul entlädst?

7.e.Q
29.11.04, 13:01
Das weiß ich nicht genau. So tief stecke ich in dem Treiber leider nicht drin. Aber es ist ein guter Ansatz. Ich werd das mal untersuchen.

Ich weiß, daß wir mit Timern arbeiten. Kann das auch damit zusammen hängen?

Was genau ist ein SoftIRQ?

Achso und wie richtet man sich eine solche Netzwerk-Konsole ein?

zander
30.11.04, 10:03
Das Stichwort bei Netzwerkkonsolen ist netconsole; ich habe selber noch keine solche Konsole benutzt und kann daher keine Schritt für Schritt Anleitung anbieten, von dessen Richtigkeit ich mich überzeugen konnte, google spuckt aber z.B. diesen Artikel aus: http://technocrat.net/article.pl?sid=04/08/14/0236245&mode=thread.

Eine detaillierte Erklärung von SoftIRQ's würde wohl den Rahmen dieses Forums sprengen, falls Dich die Details interessieren solltest Du Dich entweder im Internet oder in den Quellen umsehen, bzw. Dir ein Buch über den Linux 2.6 Kernel zulegen. Es handelt es sich grob gesagt um einen Mechanismus, mit dem der Kernel die Bearbeitung von Aufgaben auf einen späteren Zeitpunkt verschieben kann (wobei die Bearbeitung asynchron erfolgt); die Funktionsweise orientiert sich dabei sehr stark an Hardware-Interrupts, daher der Name. tasklets werden mit Hilfe von SoftIRQ's implementiert.