[parisc-linux] dd and 2k transfers on A500
Grant Grundler
grundler@cup.hp.com
Tue, 26 Dec 2000 15:18:29 -0800
So I'm able to reproduce the problem on c3k/32-bit.
Grant Grundler wrote:
> It seems like we start reading from the wrong 1k block
> on the disk - assuming the data is really coming from disk.
> If so, I should be able to capture this with a SCSI analyzer.
> I'll try that next week.
Captured the incoming data w/SCSI analyzer and it's correct.
We are reading the correct data from disk but doesn't match what
ends up in the "bad" versions of the destination file.
Another data point: while every other dd bs=2k gets corrupted, it's
every fourth transfer for dd bs=2560/3k/3584.
data corruption seems to occur when size hits/crosses 4k alignment.
> I very suspicous of generic kernel since the data is placed wrong
> by a 1k offset, the same size linux uses internally.
1k could just be an artifact of the scatter/gather list handed
to SBA code and SBA code is botching the merging of entries somehow.
I don't want to say this is an SBA bug until I find it.
But it looks alot more like it now. :^(
SCSI analyser output is appended in case anyone is curious.
Note I've programmed the analyzer to only capture the first 8 DATA
and ignore the rest. Also note there are *no* filesystem writes.
The filesystem I'm dumping the data to is on the same SCSI bus.
grant
Grant Grundler
Unix Systems Enablement Lab
+1.408.447.7253
SCSI STATE - State Listing
Label > DATA_ Time Phase SCSI mnemonic
Base > Hex Relative Hex
__________ _____ _________ ________________________________________________
-131 0080 Arbitrate ID=07
-130 00A0 2.592 us Select Atn ID=05
-129 00C0 3.520 us Msgout Atn Identify Disconnect, Logical=0
-128 0020 1.424 us Msgout Atn Simple Queue Tag=37H
-127 0037 1.000 us Msgout 37H
-126 0028 3.472 us Commd Read (10 byte)
-125 0000 624 ns Commd Lu=0
-124 0000 432 ns Commd Logical Block Addr=00000000H
-123 0000 424 ns Commd
-122 0000 424 ns Commd
-121 0000 424 ns Commd
-120 0000 424 ns Commd
-119 0000 424 ns Commd Transfer Length=0004H
-118 0004 424 ns Commd
-117 0000 424 ns Commd
-116 0004 5.344 us Msg_in Disconnect
-115 0000 856 ns Bus Free
-114 0020 16.76 ms Arbitrate ID=05
-113 00A0 1.536 us Reselect ID=07
-112 0080 13.62 us Msg_in Identify No Disconnect Logical=0
-111 0020 864 ns Msg_in Simple Queue Tag=37H
-110 0037 4.976 us Msg_in 37H
-109 3420 2.192 us Dat_in 3420H DBP1=0 DBP=0
-108 0518 56 ns Dat_in 0518H DBP1=1 DBP=1
-107 20E0 48 ns Dat_in 20E0H DBP1=0 DBP=0
-106 222E 48 ns Dat_in 222EH DBP1=1 DBP=1
-105 3420 48 ns Dat_in 3420H DBP1=0 DBP=0
-104 0528 56 ns Dat_in 0528H DBP1=1 DBP=1
-103 20E0 48 ns Dat_in 20E0H DBP1=0 DBP=0
-102 7220 48 ns Dat_in 7220H DBP1=1 DBP=0
-101 0000 67.28 us Status Good
-100 0000 4.336 us Msg_in Command Complete
-99 0000 856 ns Bus Free
-98 0080 356.4 ms Arbitrate ID=07
-97 00A0 2.616 us Select Atn ID=05
-96 00C0 3.592 us Msgout Atn Identify Disconnect, Logical=0
-95 0020 1.352 us Msgout Atn Simple Queue Tag=39H
-94 0039 976 ns Msgout 39H
-93 0028 3.472 us Commd Read (10 byte)
-92 0000 552 ns Commd Lu=0
-91 0000 424 ns Commd Logical Block Addr=00000000H
-90 0000 424 ns Commd
-89 0000 424 ns Commd
-88 0000 424 ns Commd
-87 0000 432 ns Commd
-86 0000 424 ns Commd Transfer Length=0004H
-85 0004 424 ns Commd
-84 0000 424 ns Commd
-83 0004 5.440 us Msg_in Disconnect
-82 0000 856 ns Bus Free
-81 0020 3.001 ms Arbitrate ID=05
-80 00A0 1.488 us Reselect ID=07
-79 0080 13.59 us Msg_in Identify No Disconnect Logical=0
-78 0020 832 ns Msg_in Simple Queue Tag=39H
-77 0039 4.992 us Msg_in 39H
-76 3420 2.184 us Dat_in 3420H DBP1=0 DBP=0
-75 0518 48 ns Dat_in 0518H DBP1=1 DBP=1
-74 20E0 56 ns Dat_in 20E0H DBP1=0 DBP=0
-73 222E 48 ns Dat_in 222EH DBP1=1 DBP=1
-72 3420 48 ns Dat_in 3420H DBP1=0 DBP=0
-71 0528 48 ns Dat_in 0528H DBP1=1 DBP=1
-70 20E0 56 ns Dat_in 20E0H DBP1=0 DBP=0
-69 7220 48 ns Dat_in 7220H DBP1=1 DBP=0
-68 0000 67.21 us Status Good
-67 0000 4.312 us Msg_in Command Complete
-66 0000 856 ns Bus Free
-65 0080 350.4 ms Arbitrate ID=07
-64 00A0 2.592 us Select Atn ID=05
-63 00C0 3.512 us Msgout Atn Identify Disconnect, Logical=0
-62 0020 1.424 us Msgout Atn Simple Queue Tag=3BH
-61 003B 1.000 us Msgout 3BH
-60 0028 3.480 us Commd Read (10 byte)
-59 0000 624 ns Commd Lu=0
-58 0000 424 ns Commd Logical Block Addr=00000000H
-57 0000 424 ns Commd
-56 0000 424 ns Commd
-55 0000 424 ns Commd
-54 0000 432 ns Commd
-53 0000 424 ns Commd Transfer Length=0004H
-52 0004 424 ns Commd
-51 0000 424 ns Commd
-50 0004 5.336 us Msg_in Disconnect
-49 0000 856 ns Bus Free
-48 0020 8.956 ms Arbitrate ID=05
-47 00A0 1.544 us Reselect ID=07
-46 0080 13.62 us Msg_in Identify No Disconnect Logical=0
-45 0020 880 ns Msg_in Simple Queue Tag=3BH
-44 003B 5.064 us Msg_in 3BH
-43 3420 2.184 us Dat_in 3420H DBP1=0 DBP=0
-42 0518 56 ns Dat_in 0518H DBP1=1 DBP=1
-41 20E0 48 ns Dat_in 20E0H DBP1=0 DBP=0
-40 222E 48 ns Dat_in 222EH DBP1=1 DBP=1
-39 3420 48 ns Dat_in 3420H DBP1=0 DBP=0
-38 0528 56 ns Dat_in 0528H DBP1=1 DBP=1
-37 20E0 48 ns Dat_in 20E0H DBP1=0 DBP=0
-36 7220 48 ns Dat_in 7220H DBP1=1 DBP=0
-35 0000 67.48 us Status Good
-34 0000 4.312 us Msg_in Command Complete
-33 0000 784 ns Bus Free
-32 0080 354.2 ms Arbitrate ID=07
-31 00A0 2.592 us Select Atn ID=05
-30 00C0 3.536 us Msgout Atn Identify Disconnect, Logical=0
-29 0020 1.400 us Msgout Atn Simple Queue Tag=3DH
-28 003D 1.000 us Msgout 3DH
-27 0028 3.472 us Commd Read (10 byte)
-26 0000 632 ns Commd Lu=0
-25 0000 424 ns Commd Logical Block Addr=00000000H
-24 0000 424 ns Commd
-23 0000 424 ns Commd
-22 0000 424 ns Commd
-21 0000 424 ns Commd
-20 0000 424 ns Commd Transfer Length=0004H
-19 0004 432 ns Commd
-18 0000 424 ns Commd
-17 0004 5.312 us Msg_in Disconnect
-16 0000 776 ns Bus Free
-15 0020 5.147 ms Arbitrate ID=05
-14 00A0 1.496 us Reselect ID=07
-13 0080 13.67 us Msg_in Identify No Disconnect Logical=0
-12 0020 848 ns Msg_in Simple Queue Tag=3DH
-11 003D 4.968 us Msg_in 3DH
-10 3420 2.208 us Dat_in 3420H DBP1=0 DBP=0
-9 0518 48 ns Dat_in 0518H DBP1=1 DBP=1
-8 20E0 48 ns Dat_in 20E0H DBP1=0 DBP=0
-7 222E 48 ns Dat_in 222EH DBP1=1 DBP=1
-6 3420 56 ns Dat_in 3420H DBP1=0 DBP=0
-5 0528 48 ns Dat_in 0528H DBP1=1 DBP=1
-4 20E0 48 ns Dat_in 20E0H DBP1=0 DBP=0
-3 7220 48 ns Dat_in 7220H DBP1=1 DBP=0
-2 0000 67.51 us Status Good
-1 0000 4.304 us Msg_in Command Complete
0 0000 864 ns Bus Free
Time Printed: 26 Dec 2000 14:30:36 --- Time Acquired: 26 Dec 2000 14:26:37