LINUX.ORG.RU

DVD и без тормозов бы ещё


0

0

Возникла проблема с проигрыванием двд - ЖУТКИЕ тормоза. Вроде третьего пня должно хватать (733 МГц,192 MB,двд единственная на контроллере висит). Я думал, что это из-за свопа, тк лампочка активности харда весьма синхронно мигала с лапочкой активности читалки, но при отключении такового (свопа) ничего не изменилось. Тормозит и при проигрывании Xine'ом, и Ogle'ом, так что проблема не в софте. Помогите идеями...

anonymous
Ответ на: комментарий от Obidos

Карта - NVidia Riva TNT 2 M64 от Asus На счёт DMA - чёрт его знает (извините за ламошничество), у меня писалка NEC ND-1300A (раз болванки пишу, значит, думаю, DMA отрублен).

anonymous
()
Ответ на: комментарий от anonymous

При чем тут "пишу" и отрублен?
Если ядро 2.4 и пишешь через ATAPI, значит нет.
Если оно же, но scsi эмуляция включена (косвенные признаки - симлинк cdrom, например, указывает на scd0 или sr0, а в ядро при загрузке в твоем lilo.conf или grub.conf стоит параметр вроде hdc=ide-scsi), то скорее всего, что DMA включено.

Узнать - берешь и тупо смотришь командой
hdparm -d /dev/hdx , где x - название раздела (a,b,c,d)

Должно быть такое сообщение
/dev/hdc:
using_dma = 1 (on)

jackill ★★★★★
()
Ответ на: комментарий от jackill

2jackill: Это не факт, что при ide-scsi DMA включено, у меня какраз было
отрублено, причем именно на DVD драйве, пришлось создавать файл
/etc/sysconfig/harddiskhdf(у меня на /dev/hdf DVD сидит) и туда прописывать
USE_DMA=1
EXTRA_PARAMS="-u1 -c1 -X66"
Вот только тогда перестало тормозить, хотя я его еще в эмуляцию scsi
перевел, hdf=ide-scsi в грубе, потому как DVD отказывался читать
диски, причем все, как оказалось из-за кривой реализации ATAPI
в самом приводе...

McMCC ★★★
()
Ответ на: комментарий от anonymous

>Ядро моё 2.6.2, а вот DMA вырублено к чертям и врубить нельзя (operation
>not permitted).

Попробуй добавить строчку в /etc/modules.conf(или modprobe.conf) :
options ide-cd dma=1
должно помочь...

McMCC ★★★
()
Ответ на: комментарий от Reset

2Reset: Ну и причем тут DVD? DMA должен поддерживать контроллер IDE,
если бы он у тебя небыл активным, то тормоза были бы, потому как всю
работу за IDE брал бы на себя центральный CPU....

McMCC ★★★
()
Ответ на: комментарий от McMCC

у меня при включении DMA на hdc происходит мёртвый зависон. хочешь верь, хочешь неверь, но тормозов при просмотре не наблюдается

Reset ★★★★★
()
Ответ на: комментарий от McMCC

>Попробуй добавить строчку в /etc/modules.conf(или modprobe.conf) :
>options ide-cd dma=1

Увы никак... Материнка у меня VIA VH6 II: вроде стареньнкая, проблем с ядром не должно быть(кстати на дятел мой DMA тоже не выставляется).

Может, когда я ядро собирал, неправильно в кофиге выставил параметры IDE. Подскажите, пожалуста, что нужно включать в ядро для поддержки DMA.

anonymous
()
Ответ на: комментарий от Reset

>у меня при включении DMA на hdc происходит мёртвый зависон.

Возможно, что hdparm не умеет работать с твоим контроллером, а
DMA активизируется на этапе загрузки биоса, т.е. контроллер IDE
получает команду на этапе загрузки биоса, в ноутах и не такое
бывает.... Если бы DMA не было включено, то тормоза были бы жуткими.

>хочешь верь, хочешь неверь, но тормозов при просмотре не наблюдается

По выше указанной причине, если бы было не включено, то на таком
дохлом проце тормоза были бы не избежны...

P.S. Не всегда hdparm работает с экзотическими контроллерами, видимо
в твоем случае это и происходит...

McMCC ★★★
()
Ответ на: комментарий от anonymous

>Увы никак... Материнка у меня VIA VH6 II: вроде стареньнкая, проблем с
>ядром не должно быть(кстати на дятел мой DMA тоже не выставляется).

Значит смысл такой, обычно DMA включается по требованию на конкретное
устройство, если оно конечно поддерживает работу с DMA, сделано это для
того, что бы был выбор между прямым доступом IDE устройств к памяти и
через процессор, в первом случае IDE устройство напрямую работает с
памятью минуя центральный CPU, такой вариант используется в Linux,
например для DOS такой вариант не подходит, потому как CPU вынужден
ждать окончания обмена с IDE устройством, но есть одно но, DMA
существует 2х типов, стандартный и басмастеринг, стандартный работает с
материнским контроллером DMA, т.е. все операции с данными делает мать
по просьбе IDE контроллера, захват шины например, а вот басмастеринг все
делает сам не используя материнский DMA контроллер, поэтому
контроллеры умеющие делать басмастеринг относительно дороги, чем те,
которые используют материнский DMA контроллер. Так вот, к чему вся эта
теория, почти все современные IDE контроллеры умеют работать в 2х
режимах, но включаются они только по просьбе, в стандартном положении
контроллер находится в режиме PIO, если девайс подключенный к
контроллеру сообщает о том, что он умеет работать с DMA на этапе
инициализации, то контроллер будет знать об этом, однако всеравно
останется в режиме PIO, потому как только ОС может решать включать или
не включать DMA режим, т.е это зависит от ее особенности, насколько я
знаю, DOS этот режим вообще не использует, Windows тоже может обойтись
без него, но лучше его активировать, если не активировано, зато Linux'у
этот режим включать просто необходимо. Основная проблема заключается в
том, что некоторые устройства не совсем корректно дают о себе
информацию контроллеру IDE, известно только, что все современные
CD/DVD устройства поддерживают DMA, но из-за кривизны
своей программной части, в виде firmware, не всегда корректно говорят об
этом контроллеру IDE, но как бы там небыло, hdparm -i практически
точно может рассказать все об вашем устройстве. Я незнаю ни одно
современного CD/DVD который бы не поддерживал DMA, другое дело
что драйвера IDE контроллера или сами устройства могут быть кривыми и
не сообщать об этом, но это уже клинический случай...

Что могу посоветовать, вначале выдать информацию по
hdparm -i /dev/чтотамунас, затем проверить, что драйвер который
использует ваш IDE контроллер именно тот, который нужен, потому как
есть еще стандартный, который умеет работать со всеми контроллерами
по стандартым адресам и прерываниями, только при этом сильно ограничен.
И последнее, проверить что бы ide-cd и ide-scsi были модулями, а не
встроенными в само ядро, раз DMA не включается автоматически...







McMCC ★★★
()
Ответ на: комментарий от McMCC

Спасибо за объяснение.
Итак:

<< hdparm -d 1 /dev/hdc

/dev/hdc
setting using_dma to 1(off)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)


<< hdparm -i /dev/hdc

/dev/hdc:

Model=_NEC DVD_RW ND-1300A, FwRev=1.08, SerialNo=
Config={ Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=0kB, MaxMultSect=0
(maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
IORDY=yes, 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
AdvancedPM=no

anonymous
()
Ответ на: комментарий от anonymous

Драйвер IDE контроллера собран модулем или в ядро?
Если модулем, тогда понятно почему, а если нет, то скорее всего баг,
если придедущие советы не помогли, потому как
options ide-cd dma=1
помогает на все 100%.

P.S. А жесткий диск выставлен в DMA? Если нет, то похоже что ядро
собрано без поддержки твоего контроллера, либо он собран модулем
и не подгружен, попробуй его подгрузить и hdparm'ом установить
DMA....

McMCC ★★★
()
Ответ на: комментарий от McMCC

Дравер IDE включён внутрь.
А хард тоже не выставляется.

Кстати под 2.4.22 всё тип-топ(чип матери Via AT82C686B).

anonymous
()
Ответ на: комментарий от McMCC

Пожалуста:

Using anticipatory io scheduler
hda: IBM-DTLA-305040, ATA DISK drive
hdc: _NEC DVD_RW ND-1300A, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hdc: ATAPI 40X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache
...........
VFS: Mounted root (ext3 filesystem) readonly.
VP_IDE: port 0x01f0 already claimed by ide0
VP_IDE: port 0x0170 already claimed by ide1
Module via82cxxx cannot be unloaded due to unsafe usage in include/linux/module.h:489

anonymous
()
Ответ на: комментарий от anonymous

Ну так похоже via82cxxx и не работает, т.е. драйвер генерик только используется вот поэтому и не включается DMA....

McMCC ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.