Most recent kernel where this bug did *NOT* occur: 2.6.20 Distribution: fedora 7 - test 4 seen with fedora kernel and stock upstream 2.6.21 kernel as well Hardware Environment: HP Integrity Superdome NEC DVD_RW ND-3540A LSI Fusion MPT SPI SCSI adapter also on: HP Integrity rx8640 NEC DVD+RW ND-2100AD Software Environment: fedora 7 test 4 Problem Description: Reading CD/DVD is approx 150times slower than usual. Simple test of: time cat kernel-2.6.20-1.3088.fc7.ia64.rpm > /dev/null took approx 10 minutes on 2.6.21, took 2-4 seconds on 2.6.20 (same system, same disk, repeated multiple times to ensure it wasn't bad hardware) Steps to reproduce: mount a DVD read a large file from the DVD Appears to have been caused by this git commit: commit 5a9c47b1344b514758d5d7f193c672850390cc36 Author: Eric Moore <eric.moore@lsi.com> Date: Mon Jan 29 09:43:17 2007 -0700 [SCSI] fusion - move SPI API over to mptspi.c Move some functions that only apply to the mptspi module over from mptscsih. Signed-off-by: Eric Moore <Eric.Moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com> I backed out this patch against the current HEAD and DVD drive performance is back to normal. I have not yet looked into this to determine exactly what in this patch caused the issue.
After digging through the code I realized that when code was moved from mptscsih to mptspi the order of some initialization routines changed. I changed mptspi_slave_configure to call mptspi_initTarget before mptscih_slave_configure. Tested against 2.6.21 on the system where I originally saw the problem and it works just fine now. I will post the patch to linux-scsi list.
Fixed by 29982e9acd3e81a289c73321401427d02eaa8adc