Date: Sat, 14 Jun 1997 18:40:25 -0700 From: "Jordan K. Hubbard" <jkh@time.cdrom.com> To: "Serge A. Babkin" <babkin@hq.icb.chel.su> Cc: hackers@FreeBSD.ORG Subject: Re: C optimizer bug ? Message-ID: <10597.866338825@time.cdrom.com> In-Reply-To: Your message of "Sun, 15 Jun 1997 07:36:45 %2B0600." <199706150136.HAA07646@hq.icb.chel.su>
next in thread | previous in thread | raw e-mail | index | archive | help
> Okay, here is the description: The function scsi_done() must check
> whether xs->bp is zero and then depending on it call biodone()
> or wakeup(xs). Sometimes it confuses these cases and does the
> wrong thing, in this case the process hangs on tsleep(...,"scsicmd")
> or waiting for biodone() (I can't remember the argument of
> tsleep() for biodone exactly). The probability of hangup on missing
> wakeup(xs) is about 1/4. The hangups on missing biodone() are
> rare.
Erm, I think you missed my fundamental point. :-)
This is NOT how you demonstrate compiler bugs to those who might fix
them. You demonstrate compiler bugs by saying things like (to
make up an extremely simplistic example):
"If I have the following program fragment:
int a, b, c;
a = 10, b = 20;
c = a & b;
It generates the following code:
...
movl $10,-4(%ebp)
movl $20,-8(%ebp)
movl -4(%ebp),%eax
andl -10(%ebp),%eax
movl %eax,-12(%ebp)
But shouldn't that be:
andl -8(%ebp),%eax
For the proper stack offset to `b'? This is a compiler bug."
*That* is the kind of thing that compiler folks can act on.
What you have reported is not, however, and it's almost certainly
likely to generate no response at all. That helps neither you nor
us. :-)
Jordan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?10597.866338825>
