Re: wie lese ich meine kerneldumps?

From: Peter <pmc(at)citylink.dinoex.sub.org>
Date: Mon, 17 Oct 2016 22:17:05 +0200

Alexander Klein wrote:
> Guten Morgen,

Moin!

> Kann es sein, daß der Debugger hier versucht, $edi und $ecx als
> Hex-Zahlen zu interpretieren, über das fehlende 0x am Anfang stolpert
> und dann 0 ausgibt; und es stattdessen %ecx wie im Listing heißen müßte?

Mit einigem Weiterforschen sieht es wohl so aus, dass hier ein ARCbuffer
daherkommt, der auf 0x0 zeigt. Was ne ziemlich böse Sache ist - ich habs
jetzt erstmal liegenlassen -weil ich für sowas mehr zeit brauche- und
versuche stattdessen per rückbau der Änderungen die panics wieder
loszuwerden.

>> Ich täte jetzt meinen, der "sub" Befehl schafft
>> platz auf dem Stack für die lokalen Variablen der Funktion (0x10 für
>> zwei Pointer und einen int64), und die zwei mov danach gehören schon
>> zur Funktion selber. Was geht da ab?
>
> Ich würde es vorsichtig so zuordnen, wenn man mal annimmt, daß in %edi
> schon "from" steht und ich in der richtigen Quelle nachgesehen habe:
>
> arc_buf_clone(arc_buf_t *from)
> {
> arc_buf_t *buf;
> push %ebp
> mov %esp,%ebp
> push %ebx
> push %edi
> push %esi
> sub $0x10,%esp
> mov %ecx,%edi
>
> arc_buf_hdr_t *hdr = from->b_hdr; mov (%edi),%ebx
> uint64_t size = hdr->b_size; mov 0x24(%ebx),%eax
>
>
>> ASSERT(HDR_HAS_L1HDR(hdr));
>> ASSERT(hdr->b_l1hdr.b_state != arc_anon);
>
> Ich sehe nicht, wo die Assertions ausgewertet werden sollten, aber das
> sind ohnehin nur Makros, die vielleicht abgeschaltet sind.
>
> Der Rest wäre dann wohl Parameterübergabe und das auf den ersten Blick
> intransparente Gerechne, das optimierende Compiler gerne mal halten, bis
> zum Aufruf von "kmem_cache_alloc".

Ja, so sehe ich das m.o.w. auch.

> Aber abseits von allem Assembler: Was sagt denn der SMART-Status der
> Platte? Kann es sein, daß sie wirklich nur ein paar defekte Flash-Seiten
> hat und deswegen zwischendurch IO-Fehler wirft?

Ich denke mal, dass ich (echte) IO-Errors im msgbuf sehen sollte - da
ist aber nix.

Die Verdächtigen sind angeblich alle okay, nur eine SCSI im Raid ist
angeblich defekt - komischerweise klettern da die ECC Zähler wie wild
wenn ZFS drauf zugreift, wenn man aber mit einem normalen UFS drauf ist,
gibts keine ECC errors. Muss man nicht verstehen, will man auch nicht
wirklich wissen, und ich bin eh dafür SMART zu ignorieren (ausser den
Temperaturanzeigen, denn die sagen einem wann man Staubsaugen muss).
Problem ist hier jedenfalls ziemlich sicher die SSD, und bei SSD macht
ein Surface-Test keinerlei Sinn...

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 17 Oct 2016 - 23:13:50 CEST

search this site