Bug 8120 - SI3114 + Nvidia: Disk corruption - Content of large (>400mb) files changes when copying from one channel of SiI3114 to any of its other channels
Summary: SI3114 + Nvidia: Disk corruption - Content of large (>400mb) files changes wh...
Status: REJECTED DUPLICATE of bug 6845
Alias: None
Product: IO/Storage
Classification: Unclassified
Component: Serial ATA (show other bugs)
Hardware: i386 Linux
: P2 high
Assignee: Jeff Garzik
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-03-03 14:56 UTC by Serge Druzhinin
Modified: 2007-06-05 10:04 UTC (History)
0 users

See Also:
Kernel Version: 2.6.20.1
Subsystem:
Regression: ---
Bisected commit-id:


Attachments

Description Serge Druzhinin 2007-03-03 14:56:59 UTC
Most recent kernel where this bug did *NOT* occur: none

Distribution: Gentoo 2006.1 (built from stage1)

Hardware Environment: Athlon-XP 2500+ Asus A7N8X (nForce2) 2x512M DDR400 
(2xSeagate ST3160827AS 2xSeagate ST3320620AS connected to add-on 
SiI3114) (ST340014A connected to nForce2 IDE controller)

Software Environment: glibc-2.5 openssl-0.9.8d coreutils-6.4 mc-4.6.1 gcc-4.1.1 
(no nvidia or other binary modules)

Problem Description:
Contents of large (>400mb) files changes when copying from HDD connected to one 
channel of SiI3114 to HDD connected to any of its other channels. Problem does 
*NOT* occur when copying such files from one partition to other within the same 
channel (HDD) and when copying such files from HDD connected to SiI3114 to HDD 
connected to other controller (onboard IDE or SATA). Tested with XFS and ext3 
filesystems, using programs cp/dd/mc, using two different SiI3114 add-on 
controllers with different BIOSes, in different PCI slots. In tests from 500 to 
3000 bytes were changed when copying 1Gb file.

Steps to reproduce:
mount /dev/sda1 /mnt/hdd1
mount /dev/sda2 /mnt/hdd2
mount /dev/sdb1 /mnt/hdd3
dd if=/dev/zero of=/mnt/hdd1/zero.test bs=1024 count=1048756
openssl sha1 /mnt/hdd1/zero.test
: SHA1(/mnt/hdd1/zero.test)= cb75bfcc214914b81005cdfadfe3e036d800f74e
cp --sparse=never /mnt/hdd1/zero.test /mnt/hdd2
openssl sha1 /mnt/hdd2/zero.test
: SHA1(/mnt/hdd2/zero.test)= cb75bfcc214914b81005cdfadfe3e036d800f74e
cp --sparse=never /mnt/hdd1/zero.test /mnt/hdd3
openssl sha1 /mnt/hdd2/zero.test
: SHA1(/mnt/hdd3/zero.test)= [real_sha1_hash_of_changed_file]
cp --sparse=never /mnt/hdd1/zero.test /mnt/hdd3
openssl sha1 /mnt/hdd2/zero.test
: SHA1(/mnt/hdd3/zero.test)= [another_real_sha1_hash_of_changed_file]
cmp -l /mnt/hdd1/zero.test /mnt/hdd3/zero.test >~/hdd1-hdd3.diff
cmp -l /mnt/hdd2/zero.test /mnt/hdd3/zero.test >~/hdd2-hdd3.diff
~/hdd1-hdd3.diff and ~/hdd2-hdd3.diff are identical files with found 
differences.
Comment 1 Serge Druzhinin 2007-03-11 14:46:49 UTC
The problem is disapearing when turning off software read-ahead (hdparm -a0 /
dev/sdc). Unfortunately it brings 7x performance loss.
Comment 2 Alan 2007-06-05 10:04:33 UTC

*** This bug has been marked as a duplicate of 6845 ***

Note You need to log in before you can comment on or make changes to this bug.