LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   idebus settings, new kernel (https://www.linuxquestions.org/questions/linux-newbie-8/idebus-settings-new-kernel-74935/)

schbond 07-22-2003 02:27 PM

idebus settings, new kernel
 
Hi. I just compiled my own 2.4.21 kernel. Everything is fine, except that when I read/write (especially write) to the hard drive, my system becomes bogged. I can barely move the mouse across the screen.

During kernel boot, I see:

"ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx"

I know for a fact my hard drive is 100MHz and my motherboard supports at least 100, if not 133MHz. I am not sure about my IDE cables. With other kernels, my hard drive ran smoothly. I could even navigate GUI while compiling, writing to HD, etc. This makes me suspect that my cables are also 100MHz, and that the setting is in the kernel.

# hdparm -Tt /dev/hda

/dev/hda:
Timing buffer-cache reads: 128 MB in 0.42 seconds =304.76 MB/sec
Timing buffered disk reads: 64 MB in 21.47 seconds = 2.98 MB/sec

I have two IBM 60 GB Desktar 7200rpm HDDs. They are both sharing the secondary IDE bus, so theoretically, performance settings should be same for both:

# hdparm -i /dev/hdb

/dev/hdb:

Model=IC35L060AVVA07-0, FwRev=VA3OA50K, SerialNo=VNC300A3C18KLA
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=52
BuffType=DualPortCache, BuffSize=1863kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=120103200
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: disabled (255) WriteCache=enabled
Drive conforms to: ATA/ATAPI-5 T13 1321D revision 1: 2 3 4 5

Please help me regain my hard drive speed. I don't want to tweak anything without knowing what it does. (running Slackware 9.0). Thanks.

Electro 07-22-2003 05:48 PM

ATA100 and ATA133 doesn't mean 100 MHz or 133 MHz. They are just burst rates in megabytes. Very rarely hard drives will come close to the burst rates.

idebus is the PCI bus. If your PCI bus can handle 66 MHz or 100 MHz. Then you can set it.

What does

hdparm -abcdmu /dev/hda
hdparm -abcdmu /dev/hdb

come up with.

psyno 07-22-2003 05:58 PM

Well I'm extremely new to Linux, but from a Windows background I'd say it sounds like you're using PIO to read/write instead of DMA or UDMA. PIO is of course extremely slow for any modern hard drive.

Check the BIOS to make sure UDMA is enabled...I couldn't begin to tell you where to check in linux...

Good luck. ;)

schbond 07-23-2003 02:40 PM

Thanks for the quick respones, guys.

Electro, "hdparm -abcdmu" (for both /dev/hda and /dev/hdb) returns:

multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off) ***
readahead = 8 (on)
busstate = 1 (on)

*** This makes me think I could just set kernel argument idebus=100, but I don't know if that's the max my system supports. I have checked my motherboard (Soyo SY-K7V Dragon Plus) manual, and I can't find anything about DMA - damn thing doesn't have an index. So I will keep searching. However, I would like to note that before (prior to compiling kernel, and on other distros) I would have transfer speeds (both on LAN and on local HD transfers) in excess of 100 and 200 MB/s. Now I can't seem to exceed 2.7 MB/s. This is a bit of a pain as I have over 11 GB of data backed up on my LAN.

Psyno, the only DMA-related option in my CMOS was this menu:

Primary Master PIO [Options: Mode 0, Mode 1, Mode 2, Mode 3, Mode 4, Auto]
Primary Slave PIO [Options: Mode 0, Mode 1, Mode 2, Mode 3, Mode 4, Auto]
Secondary Master PIO [Options: Mode 0, Mode 1, Mode 2, Mode 3, Mode 4, Auto]
Secondary Slave PIO [Options: Mode 0, Mode 1, Mode 2, Mode 3, Mode 4, Auto]
Primary Master UDMA [Options: Auto, Disabled]
Primary Slave UDMA [Options: Auto, Disabled]
Secondary Master UDMA [Options: Auto, Disabled]
Secondary Slave UDMA [Options: Auto, Disabled]

All the PIO's and UDMA's were set to Auto. If it helps, I have a Windows XP partition, I could check settings in there (as you said you are comfortable with Windows). Thanks.

schbond 07-24-2003 02:02 PM

HDIO_SET_DMA
 
I was trying to install Xine with DVD playback support, and the Xine website (http://xine.sourceforge.net) recommended that I turn DMA on my DVD drive.

# hdparm -d 1 /dev/hdc

/dev/hdc:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)

what is HDIO_SET_DMA? Is this related to my idebus settings?

Electro 07-24-2003 06:02 PM

If you have PCI-X that can run from 33 MHz to 100 MHz, then you can change it. Your motherboard is the standard PCI or 33 MHz. The PCI bus max out at 133 megabytes per second, so you can not achive more than 133 megabytes. You can add ide0=ata66 to your boot loader. This is dangerous if you don't know what you are doing. The 0 in ide is the device channel of your controller, so to set your secondary channel to ata66 you specify ide1.

At the console type
hdparm -X68 -d1 -c3 -k1 /dev/hda
hdparm -X68 -d1 -c3 -k1 /dev/hdb

Then see how that works. The -X68 is for UDMA 4 and it is supported by many IDE chipsets. You can use -X69 for UDMA 5 but you may run in the chance of freezing your computer. If everything works properly, you can add a few lines to your running scripts.

Your DVD drive could be using IDE-SCSI module so hdparm will not work. If you remove that module and run hdparm again. DMA should be enable for your drive.

You may need to recompile the kernel to support DMA.

schbond 07-25-2003 02:53 AM

hdparm -X68 -d1 -c3 -k1 for both /dev/hda and /dev/hdb produces:

setting 32-bit IO_support flag to 3
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
setting keep_settings to 1 (on)
setting xfermode to 68 (UltraDMA mode4)
HDIO_DRIVE_CMD(setxfermode) failed: Input/output error
IO_support = 3 (32-bit w/sync)
using_dma = 0 (off)
keepsettings = 1 (on)

I also tried adding "ide0=ata100" to /etc/lilo.conf, but when I ran /sbin/lilo :

Warning: LBA32 addressing assumed
Unrecognized token "ide0" at or above line 36 in file '/etc/lilo.conf'

I double-checked, and I have DMA and EIDE compiled in my 2.4.21 kernel.

schbond 07-25-2003 02:56 PM

problem solved
 
I have been reading that people using the 2.4.21 kernel are having problems with DMA/ATA settings. I compiled a 2.4.20 kernel, and DMA works now. I can onced again multi-task. Thanks all for the suggestions.

P.S. No more boot errors with kernel, too!

Electro 07-25-2003 04:16 PM

After searching this forum. I found http://www.linuxquestions.org/questi...threadid=72226
Scroll to the bottom post.

For linux drives, you may want to set them to LBA in the BIOS instead of AUTO. Also you can specify lba32 in lilo configuration file.

The ide0=ata66 should be placed in the append line of lilo.


All times are GMT -5. The time now is 02:03 PM.