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

Re: Pbm HD - (u)DMA



OKi, je test. Mais j'aurais voulu avoir les idées claires :

Je sais que le DMA améliore les taux de transfert.
Est-ce que le DMA abime le disque s'il n'est pas activé ?
et si je l'active, mais que je respecte les taux accepté par ma carte et mon
HD,
et qu'il me génèr les erreures que j'ai, est-ce que ça abime le HD ?

voila...


----- Original Message ----- 
From: "Sebastienlayer" <slayer-mailling@wanadoo.fr>
To: "Nicolas Quéré" <nicolas.quere@tiscali.fr>
Sent: Friday, December 19, 2003 9:47 PM
Subject: Re: Pbm HD - (u)DMA

Avant d'activer quoique se soit dans ton noyau, essaye ceci
 hdparm -d 1 -X66 /dev/hdX
pour activer le Udma sur ton disque X. Attention a l'option -X66 qui
précise le taux. -X66 représente l'UDMA100

Puis ceci pour voir les taux de transfert
 hdparm -t /dev/hdX
sur ton disque X


Ensuite, si tu arrives à activer le dma a la mimine sur tous tes disques
avec le HDparm, commence a touche a ton noyau. et surtout n'oublie pas
l'option

et grossomodo la config de ton noyau niveau disque doit donner ceci
make menu config

ATA/IDE/MFM/RLL support  --->
<*> ATA/IDE/MFM/RLL support
IDE, ATA and ATAPI Block devices  --->

...
<*>   Include IDE/ATA-2 DISK support
[*]     Use multi-mode by default
....
[*]   PCI IDE chipset support
....
[*]     Generic PCI bus-master DMA support
...
[*]       Use PCI DMA by default when available
...


surtout n'oublie pas le Use PCI DMA by default when available qui active
le dma par défaut quand c'est possible.


Le ven 19/12/2003 à 19:41, Nicolas Quéré a écrit :
> Bonjour à tous,
> voila, si quelqu'un pouvait un peu m'aider...
>
> J'ai une ABIT- KG7-RAID (chipset via82xx et Hightpoint 370 pour le
> raid)
> mon hda est un maxtor 40G (tout neuf)
> mon hdb est un seagate 40G (tout vieux)
> et mon hde est un maxtor 80G (en raid-ide).
>
> Bref, tout marche bien sauf le (U)DMA.
>
> Donc, le but, c'est de trouver les bonnes options dans mon kernel pour
> pas que les HD s'affolent.
> J'ai remarqué que hde "ne dit rien" lorsque l'option USE PCI DMA by
> default When available. est désactivée.
> et que le PC boot carrément plus vite. Donc, j'avais fait un script
> hdparm dans init.d ou dedans il y avait :
> #!/bin/sh
> echo -n "Optimising IDE periphericals with hdparm : "
> /sbin/hdparm -q -d1 /dev/hda
> /sbin/hdparm -q -d0 /dev/hdb
> /sbin/hdparm -q -c1 /dev/hdb
> /sbin/hdparm -q -d1 /dev/hde
> echo "done."
>
> et l'option était désactivée mais avec cette configuration, c'est HDE
> qui hurlait...
> Donc, comme HDE est plus important que hdb, je suis revenu à activer
> l'option et virer hdparm.sh dans /etc/init.d...
>
> bref, ça commence à me titiller sévère...
>
> Voila, ci-dessous plein d'infos pour vous mettre "dans le bain" :)
> Merci ;)
>
>
> J'ai mis ça comme option dans la config de mon noyau (2.4.23)
> #
> # ATA/IDE/MFM/RLL support
> #
> CONFIG_IDE=y
>
> #
> # IDE, ATA and ATAPI Block devices
> #
> CONFIG_BLK_DEV_IDE=y
> # CONFIG_BLK_DEV_HD_IDE is not set
> # CONFIG_BLK_DEV_HD is not set
> CONFIG_BLK_DEV_IDEDISK=y
> CONFIG_IDEDISK_MULTI_MODE=y
> # CONFIG_IDEDISK_STROKE is not set
> # CONFIG_BLK_DEV_IDECS is not set
> CONFIG_BLK_DEV_IDECD=m
> # CONFIG_BLK_DEV_IDETAPE is not set
> # CONFIG_BLK_DEV_IDEFLOPPY is not set
> CONFIG_BLK_DEV_IDESCSI=m
> # CONFIG_IDE_TASK_IOCTL is not set
> # CONFIG_BLK_DEV_CMD640 is not set
> # CONFIG_BLK_DEV_CMD640_ENHANCED is not set
> # CONFIG_BLK_DEV_ISAPNP is not set
> CONFIG_BLK_DEV_IDEPCI=y
> CONFIG_BLK_DEV_GENERIC=y
> CONFIG_IDEPCI_SHARE_IRQ=y
> CONFIG_BLK_DEV_IDEDMA_PCI=y                                 <<<<<<<<<
> ICI
> # CONFIG_BLK_DEV_OFFBOARD is not set
> # CONFIG_BLK_DEV_IDEDMA_FORCED is not set
> CONFIG_IDEDMA_PCI_AUTO=y                                  <<<<<<<<<
> ICI
> # CONFIG_IDEDMA_ONLYDISK is not set
> CONFIG_BLK_DEV_IDEDMA=y                                  <<<<<<<<< ICI
> # CONFIG_IDEDMA_PCI_WIP is not set
> # CONFIG_BLK_DEV_ADMA100 is not set
> # CONFIG_BLK_DEV_AEC62XX is not set
> # CONFIG_BLK_DEV_ALI15X3 is not set
> # CONFIG_WDC_ALI15X3 is not set
> # CONFIG_BLK_DEV_AMD74XX is not set
> # CONFIG_AMD74XX_OVERRIDE is not set
> # CONFIG_BLK_DEV_CMD64X is not set
> # CONFIG_BLK_DEV_TRIFLEX is not set
> # CONFIG_BLK_DEV_CY82C693 is not set
> # CONFIG_BLK_DEV_CS5530 is not set
> # CONFIG_BLK_DEV_HPT34X is not set
> # CONFIG_HPT34X_AUTODMA is not set
> CONFIG_BLK_DEV_HPT366=y                                  <<<<<<<<< ICI
> # CONFIG_BLK_DEV_PIIX is not set
> # CONFIG_BLK_DEV_NS87415 is not set
> # CONFIG_BLK_DEV_OPTI621 is not set
> # CONFIG_BLK_DEV_PDC202XX_OLD is not set
> # CONFIG_PDC202XX_BURST is not set
> # CONFIG_BLK_DEV_PDC202XX_NEW is not set
> # CONFIG_BLK_DEV_RZ1000 is not set
> # CONFIG_BLK_DEV_SC1200 is not set
> # CONFIG_BLK_DEV_SVWKS is not set
> # CONFIG_BLK_DEV_SIIMAGE is not set
> # CONFIG_BLK_DEV_SIS5513 is not set
> # CONFIG_BLK_DEV_SLC90E66 is not set
> # CONFIG_BLK_DEV_TRM290 is not set
> CONFIG_BLK_DEV_VIA82CXXX=y                                 <<<<<<<<<
> ICI
> # CONFIG_IDE_CHIPSETS is not set
> CONFIG_IDEDMA_AUTO=y                                 <<<<<<<<< ICI
> # CONFIG_IDEDMA_IVB is not set
> # CONFIG_DMA_NONPCI is not set
> CONFIG_BLK_DEV_IDE_MODES=y
> CONFIG_BLK_DEV_ATARAID=y
> # CONFIG_BLK_DEV_ATARAID_PDC is not set
> CONFIG_BLK_DEV_ATARAID_HPT=y                                 <<<<<<<<<
> ICI
> # CONFIG_BLK_DEV_ATARAID_SII is not set
>
> J'ai fait aussi un :
> niko@goldorack:~$ cat /proc/ide/via
> ----------VIA BusMastering IDE Configuration----------------
> Driver Version:                     3.37
> South Bridge:                       VIA vt82c686b
> Revision:                           ISA 0x40 IDE 0x6
> Highest DMA rate:                   UDMA100
> BM-DMA base:                        0xc400
> PCI clock:                          33.3MHz
> Master Read  Cycle IRDY:            0ws
> Master Write Cycle IRDY:            0ws
> BM IDE Status Register Read Retry:  yes
> Max DRDY Pulse Width:               No limit
> -----------------------Primary IDE-------Secondary IDE------
> Read DMA FIFO flush:          yes                 yes
> End Sector FIFO flush:         no                  no
> Prefetch Buffer:               no                  no
> Post Write Buffer:            yes                  no
> Enabled:                      yes                 yes
> Simplex only:                  no                  no
> Cable Type:                   80w                 40w
> -------------------drive0----drive1----drive2----drive3-----
> Transfer Mode:       UDMA       PIO       DMA      UDMA
> Address Setup:       30ns      30ns      30ns      30ns
> Cmd Active:          90ns      90ns      90ns      90ns
> Cmd Recovery:        30ns      30ns      30ns      30ns
> Data Active:         90ns      90ns      90ns      90ns
> Data Recovery:       30ns      30ns      30ns      30ns
> Cycle Time:          20ns     120ns     120ns      60ns
> Transfer Rate:   99.9MB/s  16.6MB/s  16.6MB/s  33.3MB/s
>
> et voici les message que j'ai au boot :
> {...}
> Check partitions :
> {...}
> hdb:<4>hdb: dma_timer_expiry: dma status == 0x61
> hdb: error waiting for DMA
> hdb: dma timeout retry: status=0x58 { DriveReady SeekComplete
> DataRequest }
>
> blk: queue c02b5da8, I/O limit 4095Mb (mask 0xffffffff)
>  hdb1
>  hde: [PTBL] [9964/255/63] hde1
> Highpoint HPT370 Softwareraid driver for linux version 0.02
> hdb: dma_timer_expiry: dma status == 0x61
> hdb: error waiting for DMA
> hdb: dma timeout retry: status=0x58 { DriveReady SeekComplete
> DataRequest }
>
> usb.c: registered new driver usbdevfs
> usb.c: registered new driver hub
> {....}
> ip_conntrack version 2.1 (6143 buckets, 49144 max) - 292 bytes per
> conntrack
> hdb: dma_timer_expiry: dma status == 0x61
> hdb: error waiting for DMA
> hdb: dma timeout retry: status=0x58 { DriveReady SeekComplete
> DataRequest }
>
> hda: status error: status=0xd0 { Busy }
>
> hda: DMA disabled
> hda: drive not ready for command
> ide0: reset: success
> hdb: dma_timer_expiry: dma status == 0x41
> hdb: error waiting for DMA
> hdb: dma timeout retry: status=0x58 { DriveReady SeekComplete
> DataRequest }
>
> hda: lost interrupt
> kjournald starting.  Commit interval 5 seconds
> {....}
>
> Voila !
> >> au cas où... je fou le "kernel.log" en P.J.
>
> Thank's all !
-- 



Reply to: