Re: Promise PDC20265, VIA KT133 and corruption

2001-02-03 Thread Nathan Walp

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 = 
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:
0106   edx: 81180b00
Feb  3 23:38:01 patience kernel: esi: c532a828   edi: c1202058   ebp:
1532   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 0002  c012bc18
Feb  3 23:38:01 patience kernel:c0309758  c0309938
  c012bd80 c030992c 
Feb  3 23:38:01 patience kernel:0002 0001 
cc8c5f58 15ece000  0005 0001
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] []
[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;   Before first symbol
 <_EIP>:
Code;   Before first symbol
   0:   89 02   

Re: Promise PDC20265, VIA KT133 and corruption

2001-02-03 Thread Nathan Walp

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 = 
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:
0106   edx: 81180b00
Feb  3 23:38:01 patience kernel: esi: c532a828   edi: c1202058   ebp:
1532   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 0002  c012bc18
Feb  3 23:38:01 patience kernel:c0309758  c0309938
  c012bd80 c030992c 
Feb  3 23:38:01 patience kernel:0002 0001 
cc8c5f58 15ece000  0005 0001
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] [d201]
[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;   Before first symbol
 _EIP:
Code;   Before first symbol
   0:   89 02 mov%eax,(%edx)
Code;  0002