You are not logged in.

#1 2007-06-05 00:32:55

belhifet
Member
Registered: 2007-04-17
Posts: 39

enabling 32bit I/O failing

I'm trying to enable 32 bit I/O support on my disk, but it's failing.

$ sudo hdparm -c3 /dev/sda

/dev/sda:
setting 32-bit IO_support flag to 3
HDIO_SET_32BIT failed: Invalid argument
IO_support   =  0 (default 16-bit)

$ sudo hdparm -c1 /dev/sda

/dev/sda:
setting 32-bit IO_support flag to 1
HDIO_SET_32BIT failed: Invalid argument
IO_support   =  0 (default 16-bit)

Does this have to do with the hard disk controller?
Unsupported feature or something?

Offline

#2 2007-06-05 16:33:48

George_K
Member
From: Russie, Saint-Pétersbourg
Registered: 2006-09-27
Posts: 75

Re: enabling 32bit I/O failing

http://www.uwsg.iu.edu/hypermail/linux/kernel/0410.3/1024.html wrote:

32bit isn't relevant if you are using DMA.
libata is hardcoded to use 16bit PIO data transfers.

To check what transfer mode is used, run 'hdparm -I /dev/sda' and search for '*' in 'capabilities' section.

Offline

#3 2007-06-05 19:53:26

belhifet
Member
Registered: 2007-04-17
Posts: 39

Re: enabling 32bit I/O failing

It gives me this:

Capabilities:
        LBA, IORDY(can be disabled)
        Standby timer values: spec'd by Standard, with device specific minimum
        R/W multiple sector transfer: Max = 16  Current = 16
        Recommended acoustic management value: 128, current value: 254
        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=120ns  IORDY flow control=120ns

Yet, I can't even enable the DMA.

$ sudo hdparm -d1 /dev/sda

/dev/sda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device

Why?

Offline

#4 2007-06-05 19:59:15

buddabrod
Member
From: Germany
Registered: 2007-02-25
Posts: 220

Re: enabling 32bit I/O failing

hdparm doesn't work with libata driver which is used for s-ata drives and in some kernels for the old p-ata drives.

Offline

#5 2007-06-05 20:04:00

belhifet
Member
Registered: 2007-04-17
Posts: 39

Re: enabling 32bit I/O failing

My drive is a WD 160GB ATA and I'm using kernel 2.6.20 Arch 0.8 (Voodoo).

What should I do? Is there an alternative to the libata driver?
Or alternative to hdparm?

Offline

#6 2007-06-05 20:40:57

buddabrod
Member
From: Germany
Registered: 2007-02-25
Posts: 220

Re: enabling 32bit I/O failing

belhifet wrote:

My drive is a WD 160GB ATA and I'm using kernel 2.6.20 Arch 0.8 (Voodoo).

What should I do? Is there an alternative to the libata driver?
Or alternative to hdparm?

I did never use the arch kernels but it seems that you are using libata driver with it.

Since this is the case, you should do nothing. Libata is the new driver which is faster than the old one and it enables dma by default, for instance.

Offline

#7 2007-06-05 21:50:27

belhifet
Member
Registered: 2007-04-17
Posts: 39

Re: enabling 32bit I/O failing

How can I tell if I'm using the libata driver?

Or how can I tell that DMA is enabled on my disk?

I saw another tool, sdparm. Is that helpful in any way?

Offline

#8 2007-06-05 21:59:05

byte
Member
From: Düsseldorf (DE)
Registered: 2006-05-01
Posts: 2,046

Re: enabling 32bit I/O failing

It even says so in dmesg:

ata1.00: configured for UDMA2

1000

Offline

#9 2007-06-05 22:04:20

belhifet
Member
Registered: 2007-04-17
Posts: 39

Re: enabling 32bit I/O failing

Ah ok thanks.

Offline

#10 2007-06-06 00:04:30

dmartins
Member
Registered: 2006-09-23
Posts: 360

Re: enabling 32bit I/O failing

With libata the only option right now is DMA on. Also, I read somewhere in a mailing list discussing libata that 32 bit I/O makes no difference with DMA, only the older disk access modes (PIO?).

Offline

Board footer

Powered by FluxBB