Subject: Re: disk i/o linux vs netbsd
To: UUCP <port-alpha@netbsd.org>
From: Jason R Thorpe <thorpej@zembu.com>
List: port-alpha
Date: 04/17/2000 08:11:47
On Sun, Apr 09, 2000 at 12:31:22PM +0200, Tobias Ernst wrote:

 > On my Multia/UDB running Linux, this test shows no problem if I use
 > 0x00, 0x55 or 0xAA as byte value. It fails when I use 0xFF as byte
 > value, yielding to the average about 10 bytes per Gigabye that have
 > mystically changed their values. But on each run, those bytes are at
 > different locations and also their number is different. 

...

 > Now the really queer thing is that if I use NetBSD 1.4.2, the problem
 > does NOT show up (!). I have tested countless times, of course.
 > 
 > So I don't think it is a hardware failure any more. I can also exclude
 > a programming error, as I originally came to write this program because
 > the Linux badblocks utilitiy showed bad blocks, but others each time I
 > ran it.
 > 
 > So what is the difference? Perhaps the PAL-Code? Which leads me to the
 > question: Does Linux, booted via SRM+aboot, use the DEC SRM firmware
 > palcode like NetBSD does, or does it still use it's own Palcode like it
 > does when using ARC+Milo?

Debian, booted via SRM+aboot, *IS* using the genuine OSF/1 PALcode, the
same that NetBSD is using.

 > I still cannot believe Alphalinux has such a blatant bug!? Perhaps
 > Linux uses some part of my hardware which is faulty that NetBSD does
 > not use?

I can.  In fact, there is no other reason to suspect anything other than
an operating system software bug.

One thing, tho, you might try changing your program to use "/dev/rsd0c"
on NetBSD, as using "/dev/sd0c" will cause NetBSD to use the buffer cache
to do I/O to the disk, which might change how the test behaves (i.e. if
a block is cached, it's not going to be read from the disk, thus you might
not see the bogus data).

-- 
        -- Jason R. Thorpe <thorpej@zembu.com>