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

Re: DMA is turned off on my HDD



On Mon, Jul 28, 2008 at 17:48:42 +0300, Anton Liaukevich wrote:
> Florian Kulzer wrote:
>> On Sun, Jul 27, 2008 at 23:05:15 +0300, Anton Liaukevich wrote:
>>> Florian Kulzer wrote:
>>>> On Sun, Jul 27, 2008 at 16:57:19 +0300, Anton Liaukevich wrote:
>>>>> Florian Kulzer wrote:
>>>>>> On Wed, Jul 23, 2008 at 20:59:09 +0300, Anton Liaukevich wrote:
>>>>>>> Anton Liaukevich wrote:
>>>>>>>> In several days I discovered that DMA is turned off on my 
>>>>>>>> HDD (fsck  sayed it while Debian booting). Please, help me 
>>>>>>>> turn on DMA mode.
>>>>>>>>
>>>>>>>> My hardware:
>>>>>>>>     motherboard: Epox 8RDA3I rev 3.3 (nForce 2 Ultra)
>>>>>>>>     hdd: WD1200JB (ide, 120gb)
>>>>>>>>     cpu: Sempron 2200 (k7)
>>>> [...]
>>>>
>>>>>>> Today I upgraded my linux kernel to 2.6.25-2-686, but problem 
>>>>>>> hasn't  been solved yet.
>>>> [...]
>>>>
>>>>> I installed hdparm long ago and it says that dma if off, moreover 
>>>>> hdparm  can't turn it on:
>>>>>
>>>>> leva:/home/anthony/admin# hdparm -d1 /dev/hda
>>>>>
>>>>> /dev/hda:
>>>>>  setting using_dma to 1 (on)
>>>>>  HDIO_SET_DMA failed: Operation not permitted
>>>>>  using_dma     =  0 (off)
>>
>> [...]
>>
>> Hopefully there will be an error message somewhere that clears this up a
>> little. Try to reboot and then run:
>>
>> dmesg | grep grep -Ei 'ata|ide|amd74xx'
>>
>> Furthermore, there could be relevant messages very early in the boot
>> process; you might have to use ScrollLock plus pen and paper to catch
>> them (or set up logging to a serial console).
>>
> I have tried command "dmesg | grep -Ei 'ata|ide|amd74xx'", suggested by  
> you (after rebooting and logging in console (nor kdm that I use 
> usually)).
> Please read output in the attachment. Thank you for help.

[...]

> [    1.642452] Uniform Multi-Platform E-IDE driver

OK, that seems to come from ide_core.

> [    1.642530] ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> [    1.643173] Probing IDE interface ide0...
> [    2.058474] hda: WDC WD1200JB-00EVA0, ATA DISK drive
> [    2.730008] Probing IDE interface ide1...
> [    3.592777] hdc: SONY CD-RW CRX320E, ATAPI CD/DVD-ROM drive
> [    4.264276] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> [    4.264276] ide1 at 0x170-0x177,0x376 on irq 15
> [   13.612015] hdc: ATAPI 52X DVD-ROM CD-R/RW drive, 2048kB Cache

Some driver (ide_generic?) takes control of the devices before libata is
loaded. Check the output of "cat /proc/interrupts" to see which module
has IRQs 14 and 15.

> [   14.218581] libata version 3.00 loaded.
> [   14.740018] NFORCE2: IDE controller (0x10de:0x0065 rev 0xa2) at  PCI slot 0000:00:09.0
> [   14.740306] NFORCE2: port 0x01f0 already claimed by ide0
> [   14.740378] NFORCE2: port 0x0170 already claimed by ide1

The nforce2 driver cannot take ove rthe devices => no DMA.

I can think of a few more things to try, but I don't know how "safe"
they are:

- put amd74xx as the first non-comment line into /etc/modules

- boot with "blacklist=ide_generic" appended to the kernel command line

- likewise, try "libata.dma=3" at boot (may be dangerous)

- check the kernel documentation for "libata.force=..." (can be really
  dangerous)

- check if the amd74xx module is included in your initrd:
  zcat /boot/initrd.img-$(uname -r) | cpio --quiet -t | grep -E '(ide|ata|amd)[^/]*\.ko'

- build your own kernel with amd74xx compiled in

-- 
Regards,            | http://users.icfo.es/Florian.Kulzer
          Florian   |


Reply to: