Bug 8426 - massive slowdown on SCSI CD/DVD drive connected to mptspi driver
Summary: massive slowdown on SCSI CD/DVD drive connected to mptspi driver
Status: RESOLVED CODE_FIX
Alias: None
Product: SCSI Drivers
Classification: Unclassified
Component: Other (show other bugs)
Hardware: i386 Linux
: P2 high
Assignee: scsi_drivers-other
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-05-03 15:26 UTC by Doug Chapman
Modified: 2007-07-24 11:52 UTC (History)
0 users

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


Attachments

Description Doug Chapman 2007-05-03 15:26:39 UTC
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.
Comment 1 Doug Chapman 2007-05-07 12:47:46 UTC
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.
Comment 2 Andrew Morton 2007-07-24 11:52:32 UTC
Fixed by 29982e9acd3e81a289c73321401427d02eaa8adc

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