2001-02-04 02:53:40

by Petr Vandrovec

[permalink] [raw]
Subject: Promise PDC20265, VIA KT133 and corruption

Hi Andre,
if you remember, last week I complained that Promise corrupts data
when I copy them from hdh to hde. Today I did some more experiments
(running 2.4.1-ac1) and found:

1) Debian sid's 'cmp' prints incorrect offsets when files differ
in more than one place if distance > cmp buffer size :-(
2) When I read data from hdh (UDMA2 Toshiba) sometime last four
bytes of 4KB page (== probably last 4 bytes of read request)
are not read at all and old contents of page is left here
(it happens about once per 20MB read; and in about 1% of
these last 8 bytes of page are incorrect).
I have no idea whether promise or KT133 is at fault, but
it for sure does not happen under Windows...
3) During write some corruption can happen on either hde (IBM
DTLA-307045 running UDMA5) or hdh - it looks like that
data are shifted on HDD, as fsck then complains about
imagic set, dtime set while inode not deleted and so on,
and then it cleaned inodes 178200-178300 from my hde :-(
Fortunately they were mostly in old kernel trees,
not in current data (except one inode, which was just
created by dpkg)
4) So I compiled kernel without IDE DMA support at all and now
everything works at PIO4 without any corruption...

If anybody has any idea what I should try to get UDMA to
work under Linux here...

lspci:

00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev 02)
00:01.0 PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP]
00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 22)
00:04.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 10)
00:04.2 USB Controller: VIA Technologies, Inc. UHCI USB (rev 10)
00:04.3 USB Controller: VIA Technologies, Inc. UHCI USB (rev 10)
00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30)
00:0a.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 06)
00:11.0 Unknown mass storage controller: Promise Technology, Inc. 20265 (rev 02)
01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 04)

Thanks,
Petr Vandrovec
[email protected]


2001-02-04 04:51:43

by Nathan Walp

[permalink] [raw]
Subject: Re: Promise PDC20265, VIA KT133 and corruption

Petr Vandrovec wrote:
>
> Hi Andre,
> if you remember, last week I complained that Promise corrupts data
> when I copy them from hdh to hde. Today I did some more experiments
> (running 2.4.1-ac1) and found:
>
> 1) Debian sid's 'cmp' prints incorrect offsets when files differ
> in more than one place if distance > cmp buffer size :-(
> 2) When I read data from hdh (UDMA2 Toshiba) sometime last four
> bytes of 4KB page (== probably last 4 bytes of read request)
> are not read at all and old contents of page is left here
> (it happens about once per 20MB read; and in about 1% of
> these last 8 bytes of page are incorrect).
> I have no idea whether promise or KT133 is at fault, but
> it for sure does not happen under Windows...
> 3) During write some corruption can happen on either hde (IBM
> DTLA-307045 running UDMA5) or hdh - it looks like that
> data are shifted on HDD, as fsck then complains about
> imagic set, dtime set while inode not deleted and so on,
> and then it cleaned inodes 178200-178300 from my hde :-(
> Fortunately they were mostly in old kernel trees,
> not in current data (except one inode, which was just
> created by dpkg)
> 4) So I compiled kernel without IDE DMA support at all and now
> everything works at PIO4 without any corruption...
>
> If anybody has any idea what I should try to get UDMA to
> work under Linux here...
>
> lspci:
>
> 00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev 02)
> 00:01.0 PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP]
> 00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 22)
> 00:04.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 10)
> 00:04.2 USB Controller: VIA Technologies, Inc. UHCI USB (rev 10)
> 00:04.3 USB Controller: VIA Technologies, Inc. UHCI USB (rev 10)
> 00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30)
> 00:0a.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 06)
> 00:11.0 Unknown mass storage controller: Promise Technology, Inc. 20265 (rev 02)
> 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 04)
>
> Thanks,
> Petr Vandrovec
> [email protected]


I've got a very similar setup, but i've got a SCSI hard drive as well.
In copying a rather large file (600+ MB) from my home directory (on the
SCSI drive) to my IDE drive (on the promise controller, ata/100). scsi
drive is ext2, the ide drive is vfat (basically to share movies and
music w/ windoze). First try at copying, I got corruption. Second try,
cp segfaulted. Looked, and sure enough, had an oops sitting for me in
syslog, so here it is:

ksymoops 2.3.7 on i686 2.4.1-ac2. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.1-ac2/ (default)
-m /boot/System.map-2.4.1-ac2 (default)

Warning: You did not tell me where to find symbol information. I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc. ksymoops -h explains the options.

Feb 3 23:38:01 patience kernel: Unable to handle kernel paging request
at virtual address 81180b00
Feb 3 23:38:01 patience kernel: c0123a60
Feb 3 23:38:01 patience kernel: *pde = 00000000
Feb 3 23:38:01 patience kernel: Oops: 0002
Feb 3 23:38:01 patience kernel: CPU: 0
Feb 3 23:38:01 patience kernel: EIP:
0010:[__remove_inode_page+48/96]
Feb 3 23:38:01 patience kernel: EFLAGS: 00010202
Feb 3 23:38:01 patience kernel: eax: c102b228 ebx: c1202058 ecx:
00000106 edx: 81180b00
Feb 3 23:38:01 patience kernel: esi: c532a828 edi: c1202058 ebp:
00001532 esp: cc8c5eac
Feb 3 23:38:01 patience kernel: ds: 0018 es: 0018 ss: 0018
Feb 3 23:38:01 patience kernel: Process cp (pid: 483,
stackpage=cc8c5000)
Feb 3 23:38:01 patience kernel: Stack: c1202074 c012a476 c1202058
c0309758 c0309930 00000002 00000000 c012bc18
Feb 3 23:38:01 patience kernel: c0309758 00000000 c0309938
00000000 00000000 c012bd80 c030992c 00000000
Feb 3 23:38:01 patience kernel: 00000002 00000001 00000000
cc8c5f58 15ece000 00000000 00000005 00000001
Feb 3 23:38:01 patience kernel: Call Trace: [reclaim_page+790/1024]
[__alloc_pages_limit+120/176] [__alloc_pages+304/736]
[generic_file_write+724/1408] [<d2000001>]
[default_fat_file_write+34/80]
Feb 3 23:38:01 patience kernel: Code: 89 02 8b 43 10 8b 53 34 c7 43 08
00 00 00 00 85 c0 74 03 89
Using defaults from ksymoops -t elf32-i386 -a i386

Code; 00000000 Before first symbol
00000000 <_EIP>:
Code; 00000000 Before first symbol
0: 89 02 mov %eax,(%edx)
Code; 00000002 Before first symbol
2: 8b 43 10 mov 0x10(%ebx),%eax
Code; 00000005 Before first symbol
5: 8b 53 34 mov 0x34(%ebx),%edx
Code; 00000008 Before first symbol
8: c7 43 08 00 00 00 00 movl $0x0,0x8(%ebx)
Code; 0000000f Before first symbol
f: 85 c0 test %eax,%eax
Code; 00000011 Before first symbol
11: 74 03 je 16 <_EIP+0x16> 00000016 Before
first symbol
Code; 00000013 Before first symbol
13: 89 00 mov %eax,(%eax)


1 warning issued. Results may not be reliable.


patience:~# lspci
00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133]
(rev 02)
00:01.0 PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP]
00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South]
(rev 22)
00:04.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 10)
00:04.2 USB Controller: VIA Technologies, Inc. UHCI USB (rev 10)
00:04.3 USB Controller: VIA Technologies, Inc. UHCI USB (rev 10)
00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI]
(rev 30)
00:09.0 Multimedia audio controller: Creative Labs SB Live! EMU10000
(rev 05)
00:09.1 Input device controller: Creative Labs SB Live! (rev 05)
00:0a.0 Ethernet controller: Lite-On Communications Inc LNE100TX (rev
20)
00:0d.0 SCSI storage controller: Adaptec 7892A (rev 02)
00:11.0 Unknown mass storage controller: Promise Technology, Inc. 20265
(rev 02)
01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP
(rev 05)

relevant parts of dmesg:
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 21
VP_IDE: chipset revision 16
VP_IDE: not 100% native mode: will probe irqs later
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
VP_IDE: VIA vt82c686a (rev 22) IDE UDMA66 controller on pci00:04.1
ide0: BM-DMA at 0xd800-0xd807, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xd808-0xd80f, BIOS settings: hdc:pio, hdd:pio
PDC20265: IDE controller on PCI bus 00 dev 88
PCI: Found IRQ 10 for device 00:11.0
PDC20265: chipset revision 2
PDC20265: not 100% native mode: will probe irqs later
PDC20265: (U)DMA Burst Bit ENABLED Primary PCI Mode Secondary PCI Mode.
ide2: BM-DMA at 0x7800-0x7807, BIOS settings: hde:pio, hdf:pio
ide3: BM-DMA at 0x7808-0x780f, BIOS settings: hdg:pio, hdh:pio
hda: KENWOOD CD-ROM UCR-421 V221G, ATAPI CD/DVD-ROM drive
hde: IBM-DTLA-307045, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide2 at 0x9000-0x9007,0x8802 on irq 10
hde: 90069840 sectors (46116 MB) w/1916KiB Cache, CHS=89355/16/63,
UDMA(100)
hda: ATAPI 68X CD-ROM drive, 2048kB Cache, UDMA(33)
<snip>
(scsi0) <Adaptec AIC-7892 Ultra 160/m SCSI host adapter> found at PCI
0/13/0
(scsi0) Wide Channel, SCSI ID=7, 32/255 SCBs
(scsi0) Downloading sequencer code... 392 instructions downloaded
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.2.1/5.2.0
<Adaptec AIC-7892 Ultra 160/m SCSI host adapter>
(scsi0:0:0:0) Synchronous at 160.0 Mbyte/sec, offset 31.
Vendor: SEAGATE Model: ST318436LW Rev: 0005
Type: Direct-Access ANSI SCSI revision: 03
(scsi0:0:4:0) Synchronous at 10.0 Mbyte/sec, offset 15.
Vendor: iomega Model: jaz 1GB Rev: G.55
Type: Direct-Access ANSI SCSI revision: 02
(scsi0:0:6:0) Synchronous at 10.0 Mbyte/sec, offset 15.
Vendor: HP Model: CD-Writer+ 9200 Rev: 1.0c
Type: CD-ROM ANSI SCSI revision: 04
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi removable disk sdb at scsi0, channel 0, id 4, lun 0
SCSI device sda: 35885168 512-byte hdwr sectors (18373 MB)
/dev/scsi/host0/bus0/target0/lun0: p1 p2 p3

If there's anything else, I'll get it for you, but this is all I can
think of.

Nathan