Вы здесь

IDE+sd*+DMA

ДМА у меня не пашет. Винтарь IDE. По рецепту, прочитанному на данном форуме, сконфигурил ядро с libata. Вот опции в ядре на счет дма:
cat /usr/src/linux-2.6.27-gentoo-r1/.config | grep DMA
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
# CONFIG_ZONE_DMA32 is not set
# CONFIG_HAVE_DMA_ATTRS is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_ISA_DMA_API=y
CONFIG_BLK_DEV_IDEDMA_SFF=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_SCSI_DMA=y
# CONFIG_CARDMAN_4000 is not set
# CONFIG_CARDMAN_4040 is not set
CONFIG_DMADEVICES=y
# DMA Devices
CONFIG_INTEL_IOATDMA=y
CONFIG_DMA_ENGINE=y
# DMA Clients
CONFIG_NET_DMA=y
CONFIG_DMATEST=y
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
CONFIG_HAS_DMA=y

В грубе прописывал combined_mode=libata libata.atapi_enabled=1.
Ничего не помогает, скорось 8 МБ/с. В гугле нашел много чего, но все не помогает.
hdparm -d1 /dev/sda

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

Покажи вывод dmesg |grep DMA

Agressor написал:
Покажи вывод dmesg |grep DMA

DMA 0 -> 4096
DMA zone: 32 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 4064 pages, LIFO batch:0
ata1: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0xe000 irq 14
ata2: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xe008 irq 15
ata1.00: ATA-7: ST3200827A, 3.AAE, max UDMA/100
ata1.01: ATAPI: PIONEER DVD-RW DVR-111D, 1.23, max UDMA/66
ata1.00: configured for UDMA/100
ata1.01: configured for UDMA/66
ata2.00: ATA-7: Maxtor 6Y080L0, YAR41BW0, max UDMA/133
ata2.01: ATA-6: ST3120026A, 3.01, max UDMA/100
ata2.00: configured for UDMA/133
ata2.01: configured for UDMA/100

С уважением.
Пантер.

Ядро не ругается что проблеммы с DMA, если и в выводе hdparm -iI /dev/sd(a,c,d) режимы стоят *udma5 для Сегейтов и *udma6 для Макстора - похоже надо копать в сторону планировщика... А какой он кстати? И какой чип контроллера дисков? Модель платы?

вы бы лучше указали модель своей материнской платы.обычно так бывает (не работает DMA), если драйвер контроллера не тот выбран, либо выбран "стандартный", а сам драйвер модулем. если правильно выбрать драйверы - нормально и на стрых матерях ide работает через libata.
P.S.на некоторых матерях (даже deluxe) ставят jmicron.

P.S.: Linux - это красная таблетка :-) Windows - синяя...

Aladdin написал:
вы бы лучше указали модель своей материнской платы.обычно так бывает (не работает DMA), если драйвер контроллера не тот выбран, либо выбран "стандартный", а сам драйвер модулем. если правильно выбрать драйверы - нормально и на стрых матерях ide работает через libata.
P.S.на некоторых матерях (даже deluxe) ставят jmicron.

Я не знаю где смотреть модель. Есть надпись VIA vt8235 - это оно?

С уважением.
Пантер.

в выводе lspci -v конкретно секция которая IDE interface:
Планировщик посмотреть какой - dmesg |grep schedule

sudo dmesg |grep schedule
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)

hdparm -iI /dev/sda

/dev/sda:

Model=ST3200827A , FwRev=3.AAE , SerialNo= 4ND2ETZ0
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=?16?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=390721968
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=no WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7

* signifies the current active mode

HDIO_DRIVE_CMD(identify) failed: Permission denied

hdparm -iI /dev/sdb

/dev/sdb:

Model=Maxtor 6Y080L0 , FwRev=YAR41BW0, SerialNo=Y254HT4E
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=?0?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=160086528
IORDY=on/off, tPIO={min:120,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 *udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: ATA/ATAPI-7 T13 1532D revision 0: ATA/ATAPI-1,2,3,4,5,6,7

* signifies the current active mode

HDIO_DRIVE_CMD(identify) failed: Permission denied

lspci -v
00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) (prog-if 8a [Master SecP PriP])
Subsystem: VIA Technologies, Inc. VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE
Flags: bus master, medium devsel, latency 32, IRQ 11
[virtual] Memory at 000001f0 (32-bit, non-prefetchable) [=8]
[virtual] Memory at 000003f0 (type 3, non-prefetchable) [=1]
[virtual] Memory at 00000170 (32-bit, non-prefetchable) [=8]
[virtual] Memory at 00000370 (type 3, non-prefetchable) [=1]
I/O ports at e000 [=16]
Capabilities: [c0] Power Management version 2
Kernel driver in use: pata_via

С уважением.
Пантер.

вот эти строки
Drive conforms to: Unspecified:
У меня вот так - Drive conforms to: ATA/ATAPI-6 T13 1410D revision 2: ATA/ATAPI-1,2,3,4,5,6
и вообще невозможность выполнить hdparm -I
HDIO_DRIVE_CMD(identify) failed: Permission denied

Конфиг ведра посмотреть бы... положи на http://paste.org

С уважением.
Пантер.

Ничего неправильного не вижу в конфиге, кроме кучи мусора лишнего (поддержка несуществующий устройств всмысле) - но влиять это так сильно на производительность не может... Правильно говорится что аппендицит по телефону не вырезать :) Как вариан - смотря в вывод lspci -v попробуй ВДУМЧИВО пересобрать ядро, выкинуть от туда все ненужное... Да а кстати, на Максторе вроде ошибок на 1 меньше чем на Сегейте - что у него по hdparm -tT ???

sudo hdparm -tT /dev/sda
Пароль:

/dev/sda:
Timing cached reads: 188 MB in 2.01 seconds = 93.56 MB/sec
Timing buffered disk reads: 156 MB in 3.67 seconds = 42.52 MB/sec

sudo hdparm -tT /dev/sdb

/dev/sdb:
Timing cached reads: 348 MB in 2.00 seconds = 173.79 MB/sec
Timing buffered disk reads: 140 MB in 3.00 seconds = 46.66 MB/sec

/dev/sdb - Макстор
/dev/sda - Сегейт

А выкидывать лишенее страшновато. :)

С уважением.
Пантер.

Так по показателям hdparm они то полностью на свое и работают!!! Странно что при копировании с винта на винт такие показатели плохие....
а что говорят вот такие тесты -
на запись
time sh -c "dd if=/dev/zero of=/bigfile bs=8k count=250000 && sync"
и на чтение, только желательно после перезагрузки чтоб дисковый кеш не ввел ошибку
time dd if=/bigfile of=/dev/null bs=8k

real 1m15.991s
user 0m0.136s
sys 0m10.169s

Но это,ИМХО, не показатель, т.к. reiser4, и нули на самом деле не пишутся на диск.

real 1m3.116s
user 0m0.156s
sys 0m8.945s

Перегрузиться не могу, т.к. библиотека одна компилится, жалко.
Кстати, раньше вод Слакой скорость копирования была 20-30, но там были hd*.

С уважением.
Пантер.

panter_dsd написал:
real 1m15.991s
user 0m0.136s
sys 0m10.169s

Но это,ИМХО, не показатель, т.к. reiser4, и нули на самом деле не пишутся на диск.

real 1m3.116s
user 0m0.156s
sys 0m8.945s

А попробуй создать раздел с ext3 или XFS - как на нем скорость записи-чтения будет? Не тормозит ли это сама фс?
P.S.
То что ниже пишут об настройке ядра - тип процессора и т.д. - ерунда это все, так кардинально на i/o дисковый это не влияет...

real 1m49.452s
user 0m0.132s
sys 0m13.985s

Тот же винт, раздер под reiserfs, показатели еще хуже.

real 0m46.423s
user 0m0.092s
sys 0m5.936s

А вот чтение быстрее.

С уважением.
Пантер.

нет в этом конфиге поддержки via.
вот здесь вот обсуждают http://www.gentoo.ru/node/12071, как праильно делать

P.S.: Linux - это красная таблетка :-) Windows - синяя...

Что-то там не совсем то обсуждают. Вот строки в конфиге
CONFIG_SATA_VIA=y
CONFIG_PATA_VIA=y
Разве это не включение VIA?

С уважением.
Пантер.

Aladdin написал:
нет в этом конфиге поддержки via.
вот здесь вот обсуждают http://www.gentoo.ru/node/12071, как праильно делать

Дык, хоть сам то понял что сказал? Или конфиг смотрел по диагонали?

Кстати, очень интересный момент - при копирование загрузки проца не наблюдается. Это очень интересно, так как, на сколько я знаю, при отсутствии ДМА должен быть загруз под 100% при копировании. В общем "ничего не понимаю".

С уважением.
Пантер.

оба жестких диска на одном шлейфе висят? если да, то попробовать перевесить на разные шлейфы

3 харда и 1 дивидюк на 2-х шлейфах. Ничего никуда не переставить. :(

С уважением.
Пантер.

т.е. на одном.
ну тогда, боюсь, что ничего не сделать.
по одному шлейфу с мастера на слейв быстро никогда не бегало.
поэтому всем раньше рекомендовалось винт и резак вешать на разные шлейфы.

Раньше при такой же конфигурации на Слаке скорость копирования была >=20, а теперь <10. Это-то и напрягает.

С уважением.
Пантер.

вопрос по конфигу ядра
чем вызвано CONFIG_X86_GENERICARCH=y, а не CONFIG_X86_PC=y?
и, что ещё забавнее, CONFIG_M586=y
какой у Вас процессор? поставьте в ядре в соответствие с текущей аппаратной конфигурацией

Taelas написал:
вопрос по конфигу ядра
чем вызвано CONFIG_X86_GENERICARCH=y, а не CONFIG_X86_PC=y?
и, что ещё забавнее, CONFIG_M586=y
какой у Вас процессор? поставьте в ядре в соответствие с текущей аппаратной конфигурацией

Я не силен в конфигурировании ядра. Проц у меня Athlon-XP 2100.

С уважением.
Пантер.

в ядре поставьте

Processor type and features  --->
   Subarchitecture Type (PC-compatible)
   Processor family (Athlon/Duron/K7)

пересоберите, после этого ещё раз попробуйте.
обязательно прочтите как правильно конфигурировать ядро, например здесь
наверное главы этак с третьей. (т.к. исходники уже установлены)