RE: Enabling DMA for disks in Redhat 3.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Setting the parameters at both the individual drive level
(/etc/sysconfig/harddiskhdc and hardiskhdd had no affect, setting at overall
system level /etc/sysconfig.harddisks had no affect.

Thanks for the suggestion though.

Mike
-----Original Message-----
From: redhat-list-bounces@xxxxxxxxxx [mailto:redhat-list-bounces@xxxxxxxxxx]
On Behalf Of Michael Kearey
Sent: Monday, May 09, 2005 1:14 AM
To: General Red Hat Linux discussion list
Subject: Re: Enabling DMA for disks in Redhat 3.4

On Sun, 2005-05-08 at 15:15 -0400, Mike Ault wrote:
> I am attempting to increase the PIO bus speed from 33 to 66 and to turn on
> DMA using ATA/EIDE drives. I used to be able to do this with the idebus
> setting and the hdparm 
> command. So far I have not been able to achieve this I get:
>  
> [root@aultlinux3 ~]# hdparm -X66  -d1 -u1 -m16 -c3 /dev/hdd
>  
> /dev/hdd:
>  setting 32-bit IO_support flag to 3
>  setting multcount to 16
>  setting unmaskirq to 1 (on)
>  setting using_dma to 1 (on)
>  HDIO_SET_DMA failed: Operation not permitted
>  setting xfermode to 66 (UltraDMA mode2)
>  multcount    = 16 (on)
>  IO_support   =  3 (32-bit w/sync)
>  unmaskirq    =  1 (on)
>  using_dma    =  0 (off)
>  
> When I try. I have also tried adding the options lines for the various
> drivers (ide1, ata_piix, libata) but it seems to have no affect. 
>  
> Anyone been able to set up DMA for ATA/EIDE drives or to set the bus speed
> in RedHat 3.0 release 4?
>  
> On older, slower drives I was able to get speed up to 14.92 mb/sec using
> these methods, on these newer, faster drives I can only get to 5.1 mb/sec
>  
> On Old RedHat:
>  
> [root@aultlinux2 root]# hdparm -m16 -c3 -X mdma2 -d1 -a8 -u1 /dev/hdb
>  
> /dev/hdb:
>  setting fs readahead to 8
>  setting 32-bit IO_support flag to 3
>  setting multcount to 16
>  setting unmaskirq to 1 (on)
>  setting using_dma to 1 (on)
>  setting xfermode to 34 (multiword DMA mode2)
>  multcount    = 16 (on)
>  IO_support   =  3 (32-bit w/sync)
>  unmaskirq    =  1 (on)
>  using_dma    =  1 (on)
>  readahead    =  8 (on)
> [root@aultlinux2 root]# hdparm -Tt /dev/hdb
>  
> /dev/hdb:
>  Timing buffer-cache reads:   128 MB in  1.56 seconds = 82.05 MB/sec
>  Timing buffered disk reads:  64 MB in  4.29 seconds = 14.92 MB/sec
>  
> On New improved RedHat with newer, faster drives:
>  
> [root@aultlinux3 ~]# hdparm -X66  -d1 -u1 -m16 -c3 /dev/hdd
>  
> /dev/hdd:
>  setting 32-bit IO_support flag to 3
>  setting multcount to 16
>  setting unmaskirq to 1 (on)
>  setting using_dma to 1 (on)
>  HDIO_SET_DMA failed: Operation not permitted
>  setting xfermode to 66 (UltraDMA mode2)
>  multcount    = 16 (on)
>  IO_support   =  3 (32-bit w/sync)
>  unmaskirq    =  1 (on)
>  using_dma    =  0 (off)
> [root@aultlinux3 ~]# hdparm -tT /dev/hdc
>  
> /dev/hdc:
>  Timing cached reads:   3820 MB in  2.00 seconds = 1909.34 MB/sec
>  Timing buffered disk reads:   16 MB in  3.11 seconds =   5.15 MB/sec
>  
> 
> This is using the SATA drive (can't set it using hdparm) as the boot drive
> with two EIDE drives chained off of IDE1, the EIDE drives are where I want
> to set it.
>  
> So far the only light is rebuilding the kernel to support DMA as it seems
> the RedHat folks in their wisdom decided we really didn't want DMA support
> in the IDE interface as a default.imagine that, actually wanting the best
> performance. However, I haven't had much luck with rebuilding the kernel
for
> firewire (read no luck at all) and had to download a prebuilt kernel with
> firewire enabled in order to use it (not this server). If no one has any
> ideas, how about a pointer to a prebuilt kernel rpm with DMA turned on?
>  
> Thanks.
>  
> Mike
> 
>  
> 



Hi there Mike. I am Mike too :)


- Changing DMA mode 'on the fly' has been disabled for some time. It is
set at boot time only. It was determined that changing DMA modes on a
live system was hazardous.

- There is usually no need to rebuild any kernel. DMA mode is available
and usually enabled by default for most controllers.   hdparm /dev/hda
will tell you if it is  ( using_dma = 1 (on)  <--- means it is ON ). 


Have a look in /etc/sysconfig/harddisks   for a line :

# USE_DMA=1

This causes the kernel to set DMA mode on - it's commented out because
as I have said, it's enabled by default. If for some reason the kernel
decides that the IDE bus/controller cannot manage DMA mode properly, you
have an opportunity to override this using the USE_DMA = 1  option.

The EXTRA_PARAMS  line can be used to add extra parameters like X66 .
However it is very rare to actually need to do this. 

The /etc/sysconfig/harddisks file is for global settings for all HD's.
You are able to set things for specific devices too.

Leave the /etc/sysconfig/harddisks  file as it is, and create a
file /etc/sysconfig/harddiskhd[a-h]  .

For example, if you want to set DMA on for /dev/hdc create a file :

/etc/sysconfig/harddiskhdc

Add a line USE_DMA=1  to the file and it will hint the kernel to use DMA
for that device at boot time.

But first check with hdparm to see what settings it's already using - if
it's already using DMA  mode, no changes will be seen.


Cheers,
Michael

-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/redhat-list



-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/redhat-list

[Index of Archives]     [CentOS]     [Kernel Development]     [PAM]     [Fedora Users]     [Red Hat Development]     [Big List of Linux Books]     [Linux Admin]     [Gimp]     [Asterisk PBX]     [Yosemite News]     [Red Hat Crash Utility]


  Powered by Linux