IOTEST 1.2 - Disk I/O Reliability Test
Copyright 1995 PowerQuest Corporation
All Rights Reserved
 
PowerQuest Corporation
1083 N State
Orem, UT  84057
voice:  801-226-8977
fax:    801-226-8941
email:  scotl@powerquest.com
Web: http://www.powerquest.com
 
               ***** PLEASE READ THIS VERY CAREFULLY!! *****
 
        IF YOU DO NOT, IT COULD COST YOU YOUR DATA. ALL OF YOUR FILES
  ON ALL OF YOUR DRIVES COULD BE DESTROYED BY A DATA-CORRUPTING I/O ERROR!
 
We have found a serious data corruption bug in the PCI controller chip of many
popular computers. It shows up most easily when multitasking between the hard
drive and the floppy, but can be caused by other types of interrupts. The
corruption is a "loss" of bytes, causing all data after the lost bytes to
be shifted.
 
This has serious implications, and has destroyed partitions. If the operating
system happens to be reading the FAT when corruption occurs, the entire
partition can be destroyed. The PC-Tech RZ1000 chip is known to have this
problem.
 
We have found a work-around for some BIOSes: Changing the "PCI IDE prefetch
buffers" BIOS setting to DISABLED completely eliminates the error.
Unfortunately, not all machines with the problem allow this setting to be
changed by the user. Testing has shown that having the prefetch buffer on
gives a 2-3% performance boost.
 
IBM has developed a new disk driver to prevent this problem from occurring in
OS/2. It will detect the RZ1000 chip and disable PCI Prefetch Buffers if it
is present. It will be available on our web page (HTTP://WWW.POWERQUEST.COM)
on the week of August 14th.
 
The IBM OS/2 APAR number for this problem is PJ-19409.
 
                               HOW TO USE IOTEST
                   FOLLOW THESE INSTRUCTIONS VERY CAREFULLY
 
Usage:   IOTEST  <Test Drive Letter>
 
IOTEST will create a large file on the drive you specify. This file will have
a unique pattern that will show any read errors immediately. It also
continuously reads the disk, heavily exercising the disk I/O system. After
creating this test file, you will be instructed to begin formatting a floppy
or copying large files to a floppy. If your machine has the bug, ANY WRITE
OPERATIONS TO ANY PARTITION WHILE THE FLOPPY IS BEING FORMATTED COULD CAUSE
THE ENTIRE PARTITION TO BE DESTROYED. THIS INCLUDES THE OS/2 SWAPPER.DAT
FILE. DO NOT DO ANYTHING ELSE WITH YOUR COMPUTER WHILE RUNNING THIS TEST!
 
We recommend that you run the test on partitions that contain no valuable
data. If you do not have a partition to spare on a drive you wish to test, use
PartitionMagic from DOS to shrink your existing partitions and create some
free space. Then use FDISK to create a new partition that uses the newly
created free space. The test partition should be at least 5 MEG.
 
The test can be allowed to run for any period of time, but usually the amount
of time it takes to format two floppies is sufficient. All physical drives
should be tested.
 
EXAMPLE
     IOTEST G:
 
                        HOW TO TEST WITHOUT IOTEST
 
1) Make a temporary directory.
2) Copy a number of files from one directory to the temporary directory.
3) Begin formatting a floppy in the background.
4) Use the operating system's file compare utility to compare the files
in the temp directory to the files in the source directory. For example:
      OS/2:  comp c:\os2\boot\*.* c:\temp\*.*
      DOS:   fc c:\dos\*.* c:\temp\*.*
5) This test should be run several times.
 
 
                                LICENSE
 
IOTEST may be distributed and used freely, provided that this README file
and IOTEST.EXE are kept together, and neither are modified.
 
Please give IOTEST to all your friends and colleagues, and post it on all BBS,
usegroups, and electronic forums that you frequent.
 
This document outlines a problem with PCI computers that use the PC Tech
RZ1000 IDE controller. For newer, more up-to-date information, check our
web page at HTTP://WWW.POWERQUEST.COM.
 
This problem presents the potential for data corruption which could
manifest itself as a misspelled word in a document, incorrect values or
account balances in accounting software, unexplained GP faults when program
execution reaches a corrupted instruction in the .EXE, destruction of
directory trees, or even corruption of an entire partition or drive.
 
Power quest, Intel, PC Tech, and others within the industry have been
investigating this problem and have reached the following conclusions:
 
1) This problem is a consequence of the RZ1000's inability to fully
compensate for all the implications of running an IDE hard disk as an
extension of the PCI bus, instead of running as an extension of the AT bus
which it was originally designed to do.
 
2) Intel motherboard BIOS's, DOS, Windows 2.x, Windows 3.x, and Windows 95
are not susceptible to this problem.
 
3) Certain versions of Windows NT, OS/2, and Linux are susceptible to this
problem.  The list below provides details.
 
OS                        Potential Problem ?   Workarounds/Comments
 
DOS version x             No*                   N.A.
Windows 2.x               No*                   N.A.
Windows 3.x               No*                   N.A.
Windows 3.x using 32-Bit
  Disk Access driver      Under Investigation   **
Windows NT version 3.1    Yes                   1) Disable PCI read ahead
                                                in BIOS Setup if option is
                                                available
                                                2) Obtain patch (ATDISK.SYS)
                                                from Microsoft
Windows NT version 3.5+   No                    N.A.
Windows 95                No                    N.A.
OS/2 2.0 and later        Yes                   1) Disable PCI read ahead
                                                in BIOS Setup if option is
                                                available
                                                2) Load the IBMINT13.I13
                                                driver instead of
                                                IBM1S506.ADD driver. This
                                                will prevent the chance of
                                                data corruption but has
                                                performance implications.
                                                3) Contact IBM for patch
OS/2 Warp version 3       Yes                   1) Disable PCI read ahead
  and later                                     in BIOS Setup if option is
                                                available
                                                2) Obtain IBM OS/2 APAR
                                                PJ-19409 from our web page,
                                                available the week of August
                                                13th.
                                                3) If you can not do #1 or
                                                #2 load the IBMINT13.I13
                                                driver instead of
                                                IBM1S506.ADD driver. This
                                                will prevent the chance of
                                                data corruption but has
                                                performance implications.
LINUX                     Yes                   1) Disable PCI read ahead
                                                in BIOS Setup if option is
                                                available
                                                2) Re-write IDE driver such
                                                that driver reads drive
                                                status, not ISR. Get updated
                                                technical information from
                                                our web page.
Other Operating Systems   Under Investigation   This list represents the
                                                most popular operating
                                                systems. Power quest and
                                                Intel will continue to
                                                investigate the
                                                susceptibility of other
                                                operating systems.
 
* These operating systems rely on the motherboard BIOS to access IDE
disks. It is known that the BIOS on motherboards provided by Intel
structure their I/O in a manner such that there is not an issue.
 
** Intel and Western Digital have completed extensive stress testing and have
seen no problems. Intel is continuing to investigate. Further details will be
made available on our home page at a later date.
 
 
Q:   Which computers have the problem?
A:   The PC-Tech RZ1000 was used on early Intel PCI motherboards and
        motherboards produced by other manufacturers. Intel is no longer
        making volume shipments of motherboards with this chip. The latest
        Triton chipset based motherboards from Intel do not use the RZ1000
        and are not susceptible to this problem.
 
Q:   How do I find out if I have the problem?
A:   On our web page (http://www.powerquest.com) is posted IOTEST.ZIP. This
        program will create a large file on your hard disk with a known bit
        pattern. You will then be instructed to begin formatting a floppy.
        After you begin formatting the floppy, IOTEST will repeatedly read
        the test file and check the bit pattern. The only way for an error
        to occur is if incorrect data is read from the file, indicating
        that you have the problem. IOTEST is an OS/2 executable. The
        README.TXT file included will describe an alternative method that can
        be used to test any operating system.
 
Q:   Can I look at the motherboard and see if it has the chip?
A:   Yes. Between the PCI slots and the edge of the motherboard, look for
        a chip (about " by 3/4") that says RZ1000 on it.
 
Q:   If I have OS/2, what do I do until the fix is available?
A:   If your BIOS has an "IDE Prefetch Buffers" option, set it to OFF. If
        your CMOS settings don't have the option of turning off prefetch
        buffers, replacing IBM1S506.ADD with IBMINT13.I13 will make the
        computer safe to use, but will affect multitasking performance. The
        fixed driver (APAR PJ-19409) will not affect performance.
 
Q:   How was this problem discovered?
A:   Power quest's development team discovered the problem while developing
        PartitionMagic. A diagnostic utility, IOTEST was developed as a way
        for OS/2 users to test the integrity of their hardware before using
        PartitionMagic to modify their partitions. We have released IOTEST as
        freeware to help users determine if they are possibly exposed to this
        potential problem.
 
Q:   Where can I get more technical information on this problem?
A:   Power quest, Intel and PC Tech are continuing their investigation. More
        data will be posted on this page the week of August 14th.
 
 
 
 
