Re: make world/kernel, welche Optimierungen machen Sinn?

From: Christian Weisgerber <naddy(at)mips.inka.de>
Date: Mon, 5 Mar 2001 16:50:24 +0000 (UTC)

Martin Cracauer <cracauer(at)cons.org> wrote:

> Wer weiss z.B. schon, dass
> bla = setjmp(...);
> nicht zulaessig ist? Bisher ist m.W. kein Compiler bekannt, der das
> nicht packen wuerde, aber mit genau sowas kann man eben gut auf die
> Nase fallen, wenn man den neuesten Compiler mit hoechster Optimierung
> benutzt. Aber was soll bei einem danebengegangenen longjmp schon
> passieren? Bestimmt leicht zu debuggen... NIIIIECHT

Oh, z.B. bleibt dump(8) auf OpenBSD/sparc und *manchen* langsamen
Maschinen *manchmal* stehen, wenn tape.c mit -O2 (auf OpenBSD
Default) übersetzt wird. Alle fünf Prozesse schlafen einfach.

Ich konnte das auf einer IPC ganz gut reproduzieren, auf einer IPX
nicht. Auf Theos Anraten habe ich testweise ein paar handvoll
volatiles und statics verteilt, was das Vorkommen der Hänger etwas
reduziert, aber nicht beseitigt hat. dump treibt irgendwelche
signal()- und setjmp()-Schweinereien zur Koordination der Kinder.
Fürchterlicher Code.

Der Fehler ist bis heute nicht diagnostiziert, und wenn ihn kein
gcc-Update zufällig erschlagen hat, auch nicht behoben. Abhilfe
für Betroffene: tape.c nur mit -O bauen.

Und, oh Wunder, dump ist aktuell auf FreeBSD-CURRENT/alpha kaputt,
stirbt mit SEGV.

-- 
Christian "naddy" Weisgerber                          naddy(at)mips.inka.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 05 Mar 2001 - 18:31:32 CET

search this site