Bug 5594
Summary: | Disk performance shot after upgrade to 2.6.1[34].* | ||
---|---|---|---|
Product: | ACPI | Reporter: | David Ronis (ronis) |
Component: | Other | Assignee: | Diego Calleja (diegocg) |
Status: | CLOSED CODE_FIX | ||
Severity: | high | CC: | bjorn.helgaas, eherget |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.13, 2.6.14 | Subsystem: | |
Regression: | --- | Bisected commit-id: |
Description
David Ronis
2005-11-11 09:41:26 UTC
I have Pavilion zv5340us laptop currently running SuSE 10 with 2.6.13-15 kernel. This is x86_64 (AMD processor - nForce chipset). I don't see the problem described in this bug, however I would be happy to provide information since my system is similar to that where problem exists. # hdparm -i /dev/hda /dev/hda: Model=FUJITSU MHU2100AT, FwRev=00000008, SerialNo=NQ07T4825HFC Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=195371568 IORDY=yes, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a: * signifies the current active mode # hdparm -tT /dev/hda /dev/hda: Timing cached reads: 2004 MB in 2.00 seconds = 1001.94 MB/sec Timing buffered disk reads: 92 MB in 3.04 seconds = 30.22 MB/sec I've just been contacted by someone with a similar laptop who doesn't have my problem. His output of lspci -v shows a different chip, specifically, 00:08.0 IDE interface: nVidia Corporation nForce3 IDE (rev a5) (prog-if 8a [Master SecP PriP]) Subsystem: nVidia Corporation: Unknown device 0c80 Flags: bus master, 66MHz, fast devsel, latency 0 I/O ports at 2080 [size=16] Capabilities: [44] Power Management version 2 Aside from being different, notice that the lspci -v output is different, and in particular, mine doesn't show any mention of apci capabilities. It looks like your IDE device is in compatibility mode, but we still enable the PCI device: ATIIXP: IDE controller at PCI slot 0000:00:14.1 -ACPI: PCI Interrupt 0000:00:14.1[A] -> GSI 16 (level, low) -> IRQ 16 +ACPI: PCI Interrupt 0000:00:14.1[A] -> GSI 16 (level, low) -> IRQ 17 The fact that the IDE driver enables the PCI device even though you're in compatibility mode feels like a bug to me, but I'm so IDE-illiterate that I wouldn't presume to suggest a change there. But the fact that we chose IRQ 17 rather than IRQ 16 might be related to the performance problem. I think this happens in mp_register_gsi(). Can you hack that to choose IRQ 16 for this device and see whether the problem goes away? If so, add some printks there and compare that path with 2.6.12. Maybe there's a clue there. Thanks for the tip on IRQ's. I'd really like to try the hack that was suggested, however, I'm not sure where? I've found the suggested routine, but haven't been able to work far enough backwards to find where the actual irq number is set. It seems to come from IO_APIC_VECTOR which in turn is defned to be irq_vector, but I don't know where they are initialized. Any suggestions? (Needless to say, in case it's not obvious, I've never hacked the kernel) I just upgraded to 2.6.14.4. The problem is still there. (NOTE that it goes away if I boot with acpi=ht, although X fails to work properly). Here's a bunch of hdparm information (the timings are at the bottom): hdparm /dev/hda /dev/hda: multcount = 16 (on) IO_support = 1 (32-bit) unmaskirq = 0 (off) using_dma = 1 (on) keepsettings = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 65535/16/63, sectors = 195371568, start = 0 hdparm -i /dev/hda /dev/hda: Model=ST9100823A, FwRev=3.00, SerialNo=3LG0V6AP Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=195371568 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 AdvancedPM=yes: unknown setting WriteCache=enabled Drive conforms to: ATA/ATAPI-6 T13 1410D revision 2: * signifies the current active mode hdparm -I /dev/hda /dev/hda: ATA device, with non-removable media Model Number: ST9100823A Serial Number: 3LG0V6AP Firmware Revision: 3.00 Standards: Used: ATA/ATAPI-6 T13 1410D revision 2 Supported: 6 5 4 3 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 195371568 device size with M = 1024*1024: 95396 MBytes device size with M = 1000*1000: 100030 MBytes (100 GB) Capabilities: LBA, IORDY(can be disabled) bytes avail on r/w long: 4 Queue depth: 1 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Advanced power management level: unknown setting (0x8080) Recommended acoustic management value: 254, current value: 0 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=240ns IORDY flow control=120ns Commands/features: Enabled Supported: * READ BUFFER cmd * WRITE BUFFER cmd * Host Protected Area feature set * Look-ahead * Write cache * Power Management feature set Security Mode feature set * SMART feature set * Mandatory FLUSH CACHE command * Device Configuration Overlay feature set SET MAX security extension * Advanced Power Management feature set * DOWNLOAD MICROCODE cmd * SMART self-test * SMART error logging Security: Master password revision code = 65534 supported not enabled not locked frozen not expired: security count not supported: enhanced erase HW reset results: CBLID- above Vih Device num = 0 Checksum: correct hdparm -I /dev/hda /dev/hda: ATA device, with non-removable media Model Number: ST9100823A Serial Number: 3LG0V6AP Firmware Revision: 3.00 Standards: Used: ATA/ATAPI-6 T13 1410D revision 2 Supported: 6 5 4 3 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 195371568 device size with M = 1024*1024: 95396 MBytes device size with M = 1000*1000: 100030 MBytes (100 GB) Capabilities: LBA, IORDY(can be disabled) bytes avail on r/w long: 4 Queue depth: 1 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Advanced power management level: unknown setting (0x8080) Recommended acoustic management value: 254, current value: 0 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=240ns IORDY flow control=120ns Commands/features: Enabled Supported: * READ BUFFER cmd * WRITE BUFFER cmd * Host Protected Area feature set * Look-ahead * Write cache * Power Management feature set Security Mode feature set * SMART feature set * Mandatory FLUSH CACHE command * Device Configuration Overlay feature set SET MAX security extension * Advanced Power Management feature set * DOWNLOAD MICROCODE cmd * SMART self-test * SMART error logging Security: Master password revision code = 65534 supported not enabled not locked frozen not expired: security count not supported: enhanced erase HW reset results: CBLID- above Vih Device num = 0 Checksum: correct hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 20 MB in 3.24 seconds = 6.18 MB/sec hdparm -T /dev/hda /dev/hda: Timing cached reads: 280 MB in 2.23 seconds = 125.52 MB/sec I've just upgraded to 2.6.15. The problem has been fixed (I'd appreciate someone telling me how and what the problem was in the first place). Here's the current performance results (they're as good or better than what I get in 2.6.12.6 David hdparm /dev/hda /dev/hda: multcount = 16 (on) IO_support = 1 (32-bit) unmaskirq = 0 (off) using_dma = 1 (on) keepsettings = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 65535/16/63, sectors = 195371568, start = 0 hdparm -i /dev/hda /dev/hda: Model=ST9100823A, FwRev=3.00, SerialNo=3LG0V6AP Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=195371568 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 AdvancedPM=yes: unknown setting WriteCache=enabled Drive conforms to: ATA/ATAPI-6 T13 1410D revision 2: ATA/ATAPI-1 ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6 * signifies the current active mode hdparm -I /dev/hda /dev/hda: ATA device, with non-removable media Model Number: ST9100823A Serial Number: 3LG0V6AP Firmware Revision: 3.00 Standards: Used: ATA/ATAPI-6 T13 1410D revision 2 Supported: 6 5 4 3 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 195371568 device size with M = 1024*1024: 95396 MBytes device size with M = 1000*1000: 100030 MBytes (100 GB) Capabilities: LBA, IORDY(can be disabled) bytes avail on r/w long: 4 Queue depth: 1 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Advanced power management level: unknown setting (0x8080) Recommended acoustic management value: 254, current value: 0 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=240ns IORDY flow control=120ns Commands/features: Enabled Supported: * READ BUFFER cmd * WRITE BUFFER cmd * Host Protected Area feature set * Look-ahead * Write cache * Power Management feature set Security Mode feature set * SMART feature set * Mandatory FLUSH CACHE command * Device Configuration Overlay feature set SET MAX security extension * Advanced Power Management feature set * DOWNLOAD MICROCODE cmd * SMART self-test * SMART error logging Security: Master password revision code = 65534 supported not enabled not locked frozen not expired: security count not supported: enhanced erase HW reset results: CBLID- above Vih Device num = 0 Checksum: correct hdparm -I /dev/hda /dev/hda: ATA device, with non-removable media Model Number: ST9100823A Serial Number: 3LG0V6AP Firmware Revision: 3.00 Standards: Used: ATA/ATAPI-6 T13 1410D revision 2 Supported: 6 5 4 3 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 195371568 device size with M = 1024*1024: 95396 MBytes device size with M = 1000*1000: 100030 MBytes (100 GB) Capabilities: LBA, IORDY(can be disabled) bytes avail on r/w long: 4 Queue depth: 1 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Advanced power management level: unknown setting (0x8080) Recommended acoustic management value: 254, current value: 0 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=240ns IORDY flow control=120ns Commands/features: Enabled Supported: * READ BUFFER cmd * WRITE BUFFER cmd * Host Protected Area feature set * Look-ahead * Write cache * Power Management feature set Security Mode feature set * SMART feature set * Mandatory FLUSH CACHE command * Device Configuration Overlay feature set SET MAX security extension * Advanced Power Management feature set * DOWNLOAD MICROCODE cmd * SMART self-test * SMART error logging Security: Master password revision code = 65534 supported not enabled not locked frozen not expired: security count not supported: enhanced erase HW reset results: CBLID- above Vih Device num = 0 Checksum: correct hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 102 MB in 3.01 seconds = 33.93 MB/sec hdparm -T /dev/hda /dev/hda: Timing cached reads: 1376 MB in 2.00 seconds = 686.39 MB/sec As the bug has apparently been fixed, I'm closing this bug. |