From: Mika Matti Jalava (mjalava@lk-hp-21.hut.fi)
Date: 10/05/92


From: mjalava@lk-hp-21.hut.fi (Mika Matti Jalava)
Subject: Re: Weird disk corruption (tar off msdos partition)
Date: 5 Oct 1992 07:59:07 GMT

This disk corruption has plagued me, too. The HD driver doesn't seem
to do everything quite right.

For example I noticed that the "compiler internal error" where cc1
gets a fatal signal 11 is caused by a corrupted cc1 binary. The reason
why so many people seem to have the same problem might be that the cc1
program is quite big. If I copy (or tar or anything) a big file onto
the HD it occasionally gets corrupted. I also get error messages

HD: write_intr: status = 0x51
HD: write_intr: error = 0x10

(Linus already told me what these mean. Sorry I don't remember what it
was, anyway something isn't ready when it should)

Setting the HD_DELAY in hd.c to something else than 0 doesn't remove
the messages, but it reduces the corruption problems. With the 0.98
kernel (or anything else I had on bootable diskettes) without HD_DELAY
I couldn't install gcc correctly on the disk (and I had just deleted
the old compiler!), so I had to link the bigger parts (cc1 and libc.a)
from a floppy in order to compile the kernel. You bet it took some
time! After that I got the compiler on the HD and now everything seems
to be OK as long as I don't copy huge files. I still can't get the
full emacs sources tar file copied from a partition to another without
corrupting it, but files the size of cc1 copy OK most of the time.

So, there is still something to do with the HD driver. It seems to be
rather marginally reliable as so many people have problems with file
and filesystem corruption. An interesting thing to notice is that the
older kernels (0.95 and before) didn't seem to have similar problems
at least on my machine. Maybe the speedups Linus has made have
something to do with this.

        Mika