The problem is very poor IDE performance of a Seagate (hda: ST360021A, ATA DISK drive) which is attached to an onboard ServerWorks CNB20HE chipset to primary 'OSB4' IDE controller. `hdparm -Tt /dev/hda' returns 286.90 MB/s and _only_ 10.25 MB/sec, which is about 4 times slower than what this hdd could perform. DMA is enabled in the BIOS and it works (as hdparm and dmesg say). Version-Release number of selected component (if applicable): kernel-2.6.6-1.422.src.rpm How reproducible: Always Steps to Reproduce: 1.attach IDE drive to any SW OSB4 IDE controller 2.format hdd as ext2 3.hdparm -t /dev/hda returns only ~10MB/s Expected Results: hdparm -t should return ~40MB/s, not ~10MB/s Additional info: DMA is enabled, filesystem is ext2, CPU is 1000MHz PIII. ### hdparm /dev/hda /dev/hda: multcount = 16 (on) IO_support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 1 (on) keepsettings = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 65535/16/63, sectors = 117231408, start = 0 I tried changing controllers, cables and all BIOS settings. Kernel is recompiled from kernel-2.6.6-1.422.src.rpm, the same thing was happening on whole range of 2.4.x kernels, 2.6 kernel fixed the problem of CRC errors on that controller, but poor performance stayed. dmesg attached
Ultra-DMA is not supported on the OSB4 controller because of problems with the chip occasionally corrupting transfers in UDMA modes with certain disks. Later CSB5/CSB6 devices are supported with full UDMA. If you have two controllers it is best to have CD/DVD devices on the OSB4 (which will do UDMA with these devices) and the disk on the secondary controller.
Created attachment 101438 [details] dmesg from 2.6.6-1.422custom stripped .config; # # ATA/ATAPI/MFM/RLL support # CONFIG_IDE=y CONFIG_BLK_DEV_IDE=y # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_HD_IDE is not set CONFIG_BLK_DEV_IDEDISK=y CONFIG_IDEDISK_MULTI_MODE=y CONFIG_BLK_DEV_IDECD=y CONFIG_BLK_DEV_IDESCSI=m CONFIG_IDE_TASKFILE_IO=y # # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_SHARE_IRQ=y CONFIG_BLK_DEV_GENERIC=y CONFIG_BLK_DEV_IDEDMA_PCI=y CONFIG_IDEDMA_PCI_AUTO=y CONFIG_BLK_DEV_ADMA=y CONFIG_BLK_DEV_SVWKS=y CONFIG_BLK_DEV_IDEDMA=y CONFIG_IDEDMA_AUTO=y