Skip to contentSkip to conversation

2.4.18 beats 2.5.50 in hard drive access????

DISCUSSION David Ashley 4 participants 6 messages Dec 6, 2002 – Dec 8, 2002

lore
Share & tools
lore
#0 lore raw
Quoted 12 lines · David Ashley
Quoted 2 lines
    ide0: BM-DMA at 0x1880-0x1887, BIOS settings: hda:pio, hdb:DMA
    ide1: BM-DMA at 0x1888-0x188f, BIOS settings: hdc:pio, hdd:DMA

When we read the settings DMA was disabled on hda and hdc. We therefore assumed the BIOS did that for a reason and followed caution.

What happens if you do

hdparm -d1 /dev/hda

?

hda is an IDE cdrom drive, but here it is:

root@test:~# hdparm -d1 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on)
root@test:~#

root@test:~# hdparm -d1 /dev/hdb

/dev/hdb:
setting using_dma to 1 (on)
using_dma = 1 (on)
root@test:~#

root@test:~# hdparm /dev/hdb    

/dev/hdb:

 multcount    = 16 (on)
 I/O support  =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 HDIO_GETGEO_BIG failed: Inappropriate ioctl for device
root@test:~# hdparm -h

hdparm - get/set hard disk parameters - version v4.1

Usage: hdparm [options] [device] ..

Options:

 -a   get/set fs readahead
 -A   set drive read-lookahead flag (0/1)
 -B   get Advanced Power Management setting (1-255)
 -c   get/set IDE 32-bit IO setting
 -C   check IDE power mode status
 -d   get/set using_dma flag
 -D   enable/disable drive defect-mgmt
 -E   set cd-rom drive speed
 -f   flush buffer cache for device on exit
 -g   display drive geometry
 -h   display terse usage information
 -i   display drive identification
 -I   read drive identification directly from drive
 -k   get/set keep_settings_over_reset flag (0/1)
 -K   set drive keep_features_over_reset flag (0/1)
 -L   set drive doorlock (0/1) (removable harddisks only)
 -m   get/set multiple sector count
 -n   get/set ignore-write-errors flag (0/1)
 -p   set PIO mode on IDE interface chipset (0,1,2,3,4,...)
 -P   set drive prefetch count
 -q   change next setting quietly
 -r   get/set readonly flag (DANGEROUS to set)
 -R   register an IDE interface (DANGEROUS)
 -S   set standby (spindown) timeout
 -t   perform device read timings
 -T   perform cache read timings
 -u   get/set unmaskirq flag (0/1)
 -U   un-register an IDE interface (DANGEROUS)
 -v   default; same as -acdgkmnru (-gr for SCSI, -adgr for XT)
 -V   display program version and exit immediately
 -w   perform device reset (DANGEROUS)
 -W   set drive write-caching flag (0/1) (DANGEROUS)
 -x   perform device for hotswap flag (0/1) (DANGEROUS)
 -X   set IDE xfer mode (DANGEROUS)
 -y   put IDE drive in standby mode
 -Y   put IDE drive to sleep
 -Z   disable Seagate auto-powersaving mode
root@test:~#  

-Dave

#1 lore raw
Quoted 1 line · David Ashley

hda is an IDE cdrom drive, but here it is:

Ok that would explain why DMA is off on it. The disk puzzles me - for an OSB4 the code should be selecting MWDMA2

#2 lore raw
Quoted 6 lines · Alan Cox
Quoted 1 line · David Ashley

hda is an IDE cdrom drive, but here it is:

Ok that would explain why DMA is off on it. The disk puzzles me - for an OSB4 the code should be selecting MWDMA2

This may or may not be related. I am still trying to dig through the ide code to see what changed, but 2.4.x will enable DMA on my disks. 2.5.x turns it off explicitly. As far as I have been able to figure in my digging (just a half hour or so, so far), my drives aren't black listed.

Anyway, when I did my initial tests I had scsi cd stuff, not ide (now I am dropping scsi, so I have an ide cdrw). Here is the dmesg output from 2.4.x

Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 89
PCI: No IRQ known for interrupt pin A of device 00:11.1. Please try using pci=biosirq.
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: VIA vt8233 (rev 00) IDE UDMA100 controller on pci00:11.1

    ide0: BM-DMA at 0xe000-0xe007, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0xe008-0xe00f, BIOS settings: hdc:DMA, hdd:pio

hda: WDC WD136AA, ATA DISK drive
hdb: ATAPI CD-RW 40/12/48X, ATAPI CD/DVD-ROM drive
hdc: WDC WD153BA, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: 26564832 sectors (13601 MB) w/2048KiB Cache, CHS=1653/255/63, (U)DMA
hdc: 30043440 sectors (15382 MB) w/2048KiB Cache, CHS=29805/16/63, UDMA(66)
ide-floppy driver 0.99.newide
Partition check:
hda: hda1 hda2 < hda5 >
hdc: [PTBL] [1870/255/63] hdc1 hdc2 hdc3

and 2.5.47 (From system logs):

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

Nov 19 17:14:50 aurora kernel: VP_IDE: IDE controller at PCI slot

00:11.1
PCI: No IRQ known for interrupt pin A of device 00:11.1. Please try using pci=biosirq.
VP_IDE: chipset revision 6
VP_IDE: not 100%% native mode: will probe irqs later
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: VIA vt8233 (rev 00) IDE UDMA100 controller on pci00:11.1
ide0: BM-DMA at 0xe000-0xe007, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xe008-0xe00f, BIOS settings: hdc:DMA, hdd:pio
hda: WDC WD136AA, ATA DISK drive
hdb: ATAPI CD-RW 40/12/48X, ATAPI CD/DVD-ROM drive
hda: DMA disabled
hdb: DMA disabled

What is this?

Nov 19 19:09:06 aurora kernel: Speakup v-1.00 CVS: Tue Jun 11 14:22:53

EDT 2002
: initialized
Some kind of speech stuff or the kernel?

Anyway, 2.5.x does seem a little slower to me than 2.4.x on disk access as well. This DMA disabled worries me.

Trever Adams

--
"Magazines all too frequently lead to books and should be regarded by the prudent as the heavy petting of literature." -- Fran Lebowitz

#3 lore raw

The DMA off is just a bit of excess noise in the IDE code - the VIA driver turns DMA back on again

#5 lore raw
In reply to Alan Cox
Quoted 2 lines · Alan Cox

The DMA off is just a bit of excess noise in the IDE code - the VIA driver turns DMA back on again

Sounds good. Thank you for the clarification. My 'problem' is obviously not related then :)

Good day and good luck with what appears to be a real, measurable problem.

Trever
--
"You can surrender Without a prayer But never ever pray Pray without surrender You can fight Fight without ever wining But you can never ever win Win without fight" -- Niel Peart