Frage zur Kernel Panic?

G

gustavmega

Aktives Mitglied
Thread Starter
Dabei seit
19.12.2004
Beiträge
1.823
Reaktionspunkte
26
Hallo,

wodurch wird eine Kernel panic verursacht?
 
Durch Hardware- oder Software-Fehler.

z.B. Kernel Extensions können Kernel Panics verursachen, da sie nicht im Speicherschutz laufen.

Was sind Kernel Extensions (KEXTs)?

Mac OS X unterscheidet sich in vielerlei Hinsicht von Mac OS 9, die tiefgreifenste Neuerung war der Umstieg auf den Mach-Kernel. Dieser brachte den Mac-Benutzern präemptives Multitasking und Speicherschutz, beendete allerdings die Kompatibilität mit älteren Applikationen und Systemerweiterungen.

Systemerweiterungen und Treiber für Geräte mussten also für Mac OS X von Grund auf neu entwickelt werden. Um den Kernel um Fähigkeiten zu erweitern, führte Apple die Kernel Extensions (Kurz KEXT) ein, mit denen man, ohne den Kernel wie in den meisten Unix-Systemen rekompilieren zu müssen, das Betriebssystem um Kernfunktionalitäten, wie z.B. um ein neues Dateiformat oder einen Gerätetreiber, erweitern kann.

Kernel Extensions haben die Eigenschaft, dass sie nicht dem Speicherschutz des Kernels unterliegen, da diese im Supervisor-Mode laufen. Damit können die Kernel-Extensions auf alle Endgeräte und auf alle Speicheradressen ungehindert zugreifen, erst mit dieser Funktionalität kann man Treiber für Geräte schreiben. Allerdings hat diese Eigenschaft der KEXTs auch einen entscheidenden Nachteil: Ist ein Fehler in einer Kernel Extension aufgetreten, führt dies unter umständen direkt zu einer Kernel Panic. Applikationen unter Mac OS X genießen kompletten Speicherschutz, sodass eine Applikation nicht den ganzen Mac zum Absturz bringen kann, so wie es noch unter Mac OS 9 der Fall war.

KEXTs werden, wie fast alles in Mac OS X, als Bundle verpackt, das heißt, dass es sich in Wirklichkeit um einen Ordner handelt, der aber von Finder als eine Datei angezeigt wird. Das hat den Vorteil, dass man alle Resourcen (Bilder, Lokalisierungen etc) und die Binaries (die ausführbaren Dateien) in einer logischen Einheit zusammenfasst. Die Kernel Extensions können in C oder in C++ implementiert werden, man muss sich allerdings an sehr strenge Vorgaben halten.

Die Erweiterungen können, anders als in Mac OS 9 und den meisten anderen Betriebssystemen, dynamisch nachgeladen werden, sodass man beispielsweise die Unterstützung für ein USB-Gerät erst beim Einstecken nachgeladen wird um davor nicht unnötig Ressourcen zu verbrauchen. Im System finden Sie die Kernel Extensions im Verzeichnis /System/Library/Extensions/ , im Apple System Profiler können Sie sich anzeigen lassen, welche Kernel Extensions auf Ihrem System geladen wurden und welche nicht benötigt werden.
 
ich habe vor einer Stunde eine Kernel Panic gehabt und nach dem ich den Mini neu gestartet habe, habe ich auf dem Bericht geklickt aber kein Bericht gesehen, kann ich es irgendwo nachlesen?
 
Ruf das Programm "Konsole" auf unter Programme -> Dienstprogramme
Da sollte sich unter den Protokolldateien (Button "Protokolle" anklicken) auch eine "panic.log" Datei befinden.
 
Such mal in der Konsole (Dienstprogramme)
Klick auf Protokolle, dann auf Crash Reporter.
 
Hallo,

ich habe folgendes gefunden:
Code:
Sat Sep  1 22:41:04 2007
panic(cpu 0 caller 0x0035D0BB): mbuf address out of range 0x2c4288
Backtrace, Format - Frame : Return Address (4 potential args on stack) 
0x2522bd38 : 0x128d08 (0x3cc0a4 0x2522bd5c 0x131de5 0x0) 
0x2522bd78 : 0x35d0bb (0x3ecf78 0x2c4288 0xffffffff 0x6) 
0x2522bd98 : 0x35da5f (0x1 0x1 0x0 0x0) 
0x2522bde8 : 0x34c7fd (0x3722fd00 0x1 0xbc334245 0x467) 
0x2522be08 : 0x520883bf (0x3722fd00 0x1 0x2522be98 0x1a1ee8) 
0x2522be28 : 0x5208a86c (0x3722fd00 0x2522be98 0x2522be58 0x1a37c0) 
0x2522beb8 : 0x5208acf4 (0x3722fd00 0x0 0x0 0x372a581a) 
0x2522bf48 : 0x204c68 (0x439cc00 0x403d804 0x2 0x2522bfa4) 
0x2522bf98 : 0x204e4b (0x403d804 0x3722fd00 0x372a581a 0x1) 
0x2522bfc8 : 0x19ad2c (0x0 0x0 0x19e0b5 0x47f5364) Backtrace terminated-invalid frame pointer 0x0
      Kernel loadable modules in backtrace (with dependencies):
         com.vmware.kext.vmnet(1.0)@0x52087000

Kernel version:
Darwin Kernel Version 8.10.1: Wed May 23 16:33:00 PDT 2007; root:xnu-792.22.5~1/RELEASE_I386


*********
so wie ich es verstehe, es war einen Software-Fehler (vmware) und es lag nicht an meinem neuen Speicher, richtig?
 
so wie ich es verstehe, es war einen Software-Fehler (vmware) und es lag nicht an meinem neuen Speicher, richtig?
Ja würde ich auch sagen!

"com.vmware.kext.vmnet" ist eine Kernel-Extension von vmware.
 
Wenn die Kernel Panics gehäuft auftreten und auch ohne vmware kann es natürlich auch der Speicher sein. Wenn es aber NUR in Verbindung mit vmware auftritt, würde ich eher ein vmware-Softwareproblem vermuten. Eventuell gibts ja ein Software-Update?

Zum Test kannst du den Mac ja einige Tage ohne vmware betreiben und schauen, ob dann ebenfalls Kernel Panics auftreten.
 
Hallo,

ich habe mit meinem MacBook nun schon dreimal innerhalb der letzten zwei Monate eine Kernel Panic gehabt. Letztes mal am 28.08.2007. Garantie ist noch auf dem Mac. Würdet Ihr mir raten damit zum Händler zu gehen, oder kommt das hin und wieder mal vor?

Grüße
JMo
 
Man muss eben herausfinden, was der Grund für die Kernel Panics war. Die Palette der Ursachen reicht vom defekten RAM (da treten die Panics fast täglich auf) über andere defekte (interne wie externe) Hardware bis hin zu "normalen" Software- oder Treiber-Fehlern (siehe oben).
 
Hallo, ich hänge mich mal hier an. Mir war bisher unbekannt, dass es dieses panic.log gibt. Habe es, durch diesen Thread angeregt, auch bei mir mal geöffnet, da ich auch des öfteren und seit geraumer Zeit Kernel Panics habe.

Anbei ein Log von einer der Panics. Könnt ihr daraus etwas lesen?

Unresolved kernel trap(cpu 0): 0x400 - Inst access DAR=0x0000000021724040 PC=0x0000000000000000
Latest crash info for cpu 0:
Exception state (sv=0x3BFB3A00)
PC=0x00000000; MSR=0x40009030; DAR=0x21724040; DSISR=0x40000000; LR=0x00000000; R1=0x1753BBE0; XCP=0x00000010 (0x400 - Inst access)
Backtrace:
0x0091B974 0x008F4B50 0x002E9200 0x002EB0CC 0x0008C06C 0x0002921C
0x000233F8 0x000ABCAC 0x00000000
Kernel loadable modules in backtrace (with dependencies):
com.apple.ATIRadeon8500(4.1.8)@0x8ed000
dependency: com.apple.iokit.IOPCIFamily(1.7)@0x469000
dependency: com.apple.iokit.IOGraphicsFamily(1.4.1)@0x82e000
dependency: com.apple.iokit.IONDRVSupport(1.4.1)@0x852000
Proceeding back via exception chain:
Exception state (sv=0x3BFB3A00)
previously dumped as "Latest" state. skipping...
Exception state (sv=0x2D099000)
PC=0x9000B348; MSR=0x0000F030; DAR=0x0022700E; DSISR=0x42000000; LR=0x9000B29C; R1=0xBFFFE930; XCP=0x00000030 (0xC00 - System call)

Kernel version:
Darwin Kernel Version 8.10.0: Wed May 23 16:50:59 PDT 2007; root:xnu-792.21.3~1/RELEASE_PPC
panic(cpu 0 caller 0xFFFF0004): 0x400 - Inst access
Latest stack backtrace for cpu 0:
Backtrace:
0x000952D8 0x000957F0 0x00026898 0x000A8004 0x000AB980
Proceeding back via exception chain:
Exception state (sv=0x3BFB3A00)
PC=0x00000000; MSR=0x40009030; DAR=0x21724040; DSISR=0x40000000; LR=0x00000000; R1=0x1753BBE0; XCP=0x00000010 (0x400 - Inst access)
Backtrace:
0x0091B974 0x008F4B50 0x002E9200 0x002EB0CC 0x0008C06C 0x0002921C
0x000233F8 0x000ABCAC 0x00000000
Kernel loadable modules in backtrace (with dependencies):
com.apple.ATIRadeon8500(4.1.8)@0x8ed000
dependency: com.apple.iokit.IOPCIFamily(1.7)@0x469000
dependency: com.apple.iokit.IOGraphicsFamily(1.4.1)@0x82e000
dependency: com.apple.iokit.IONDRVSupport(1.4.1)@0x852000
Exception state (sv=0x2D099000)
PC=0x9000B348; MSR=0x0000F030; DAR=0x0022700E; DSISR=0x42000000; LR=0x9000B29C; R1=0xBFFFE930; XCP=0x00000030 (0xC00 - System call)

Kernel version:
Darwin Kernel Version 8.10.0: Wed May 23 16:50:59 PDT 2007; root:xnu-792.21.3~1/RELEASE_PPC
 
Hallo, ich hänge mich mal hier an. Mir war bisher unbekannt, dass es dieses panic.log gibt. Habe es, durch diesen Thread angeregt, auch bei mir mal geöffnet, da ich auch des öfteren und seit geraumer Zeit Kernel Panics habe.

Anbei ein Log von einer der Panics. Könnt ihr daraus etwas lesen?

Unresolved kernel trap(cpu 0): 0x400 - Inst access

com.apple.ATIRadeon8500(4.1.8)@0x8ed000
dependency: com.apple.iokit.IOPCIFamily(1.7)@0x469000
dependency: com.apple.iokit.IOGraphicsFamily(1.4.1)@0x82e000
dependency: com.apple.iokit.IONDRVSupport(1.4.1)@0x852000

du hast ein problem mit deiner grafik-karte bzw mit dem treiber....
 
  • Gefällt mir
Reaktionen: Grossernarr
Sehr schön kann man das am Stacktrace der oberen Exception sehen:

Code:
0x2522bd38 : 0x128d08 (0x3cc0a4 0x2522bd5c 0x131de5 0x0) 
0x2522bd78 : 0x35d0bb (0x3ecf78 0x2c4288 0xffffffff 0x6) 
0x2522bd98 : 0x35da5f (0x1 0x1 0x0 0x0) 
0x2522bde8 : 0x34c7fd (0x3722fd00 0x1 0xbc334245 0x467) 
0x2522be08 : [b]0x520883bf[/b] (0x3722fd00 0x1 0x2522be98 0x1a1ee8) 
0x2522be28 : [b]0x5208a86c[/b] (0x3722fd00 0x2522be98 0x2522be58 0x1a37c0) 
0x2522beb8 : [b]0x5208acf4[/b] (0x3722fd00 0x0 0x0 0x372a581a) 
0x2522bf48 : 0x204c68 (0x439cc00 0x403d804 0x2 0x2522bfa4) 
0x2522bf98 : 0x204e4b (0x403d804 0x3722fd00 0x372a581a 0x1) 
0x2522bfc8 : 0x19ad2c (0x0 0x0 0x19e0b5 0x47f5364) Backtrace terminated-invalid frame pointer 0x0
      Kernel loadable modules in backtrace (with dependencies):
         com.vmware.kext.vmnet(1.0)@[b]0x52087000[/b]

Hier liegt die VMKext also im Backtrace. Kaputter speicher ist trotzdem nicht aus dem Spiel, jedenfalls nicht ohne genauere Untersuchungen!

Es kann Zufall sein, dass die VMKext gerade Zugriff hatte

Alex
 
In dem Du die Symbole zu den Kexts bzw. zum Kernel hast.

Einfacher ist: VMWare kext abschalten. Tritt das Problem dann noch auf?

Ja => Offenbar ist es doch was anderes
Nein => Könnte auch wieder Zufall sein, dann am besten gegenprobe und wieder aktivieren. Tritt der Fehler wieder auf, Bugreport an VMWare

Alex
 
oder vmware mal auf den neuesten stand mit dem 1.0 release bringen? ;)
 
Zurück
Oben Unten