Page 9 of 18
Re: SATA в режиме IDE - полная поддержка
Posted: Tue Aug 27, 2013 9:29 am
by Mario_r4
Serge wrote:Mario_r4
Первые 10 секунд это кеш плеера. Так что производительности процессора хватает. А скорости чтения файла не хватает, кеш пустеет и начинает заикаться.
Можно же предусмотреть второй поток, который заранее подготавливает второй, а может быть третий кеш и при необходимости подставляет их вместо первого.
З.Ы. Впрочем пора завязывать в этой теме с обсуждением плеера, тема не про плеер.
Re: SATA в режиме IDE - полная поддержка
Posted: Tue Aug 27, 2013 10:54 am
by Serge
Mario_r4
Какая разница, сколько потоков будет, если файловая система не позволяет читать диск быстрее, чем надо плееру.
Re: SATA в режиме IDE - полная поддержка
Posted: Tue Aug 27, 2013 12:09 pm
by Mario_r4
Serge wrote:Mario_r4
Какая разница, сколько потоков будет, если файловая система не позволяет читать диск быстрее, чем надо плееру.
Ладно найду свободное время распакую в RAW и вот тогда будет точный показатель, есть ли вина файловой системы. Пока что я вижу, что файлы SD качества воспроизводятся вполне нормально, а HD качества (которые лишь в 2,5 раза больше
http://www.lostfilm.tv/browse.php?cat=51 все зависит от качества сжатия) начинают "квакать". Загрузка же для HD 100% процессора всегда. Для SD качества 20-25%.
З.Ы. И все же мне не понятно почему старая версия плеера не заикалась, хоть и была рассинхронизация. Ведь хватало же каким то чудом скорости чтения с диска.
Re: SATA в режиме IDE - полная поддержка
Posted: Tue Aug 27, 2013 7:30 pm
by Serge
У меня есть подозрение, что для ntfs продолжительность одиночной операции чтения файла пропорциональна размеру файла. То есть чем длиннее файл, тем меньше максимально возможная скорость чтения. Для примера рип 15Гб с битрейтом 2Мб/с встаёт сразу. 1.5 Гб с битрейтом 260Мб/с чуть-чуть не успевает (на фат32 без подтормаживания). 135Мб с битрейтом 480Мб/с идёт без рывков.
Update.
А вот нихрена. Сделал тест последовательного чтения ntfs и получил в среднем 195000Кб/с независимо от размера файла. Это AHCI на новом диске и результат очень даже внушает.
С другой стороны видеофайл может считываться не последовательно. Если в конце расположены служебные данные и к ним идёт периодически обращение, будет просадка.
Update 2.
А вот опять нихрена.
Проверил скорость чтения фреймами в ffmpeg. В среднем 2-5% медленнее. Гигабайт пролетает за пять секунд.
На фс я зря грешил, хотя может быть ещё лучше.
Re: SATA в режиме IDE - полная поддержка
Posted: Tue Aug 27, 2013 11:16 pm
by Mario_r4
Serge wrote:Update 2.
А вот опять нихрена.
Проверил скорость чтения фреймами в ffmpeg. В среднем 2-5% медленнее. Гигабайт пролетает за пять секунд.
На фс я зря грешил, хотя может быть ещё лучше.
Так в чем же проблема?
Re: SATA в режиме IDE - полная поддержка
Posted: Wed Aug 28, 2013 2:37 am
by Mario_r4
Так насчет центрально темы - у меня были слишком радужные перспективы.
Итак что я теперь имею для UltraDMA режима:
1) Dell Inspiron (native) - работает жесткий, но любое обращение к DVD приводу вешает систему. Оно и понятно, поскольку там PIO и обработчик прерывания не отрабатывает. Проблема решаема допилкой кода ATAPI - несущественная проблема в общем.
2) eBox (legacy|native) - в legacy все замечательно, но в native ситуация не изменилась - все еще виснет при обращении к диску.
3) Мамка Asus (native) - работало и раньше, при первом обращении к жесткому по прежнему отваливается USB стек, потому что они делят между собой одно прерывание.
4) Мамка Asrock (native) - виснет по прежнему при первом обращении.
Все вышеприведенное разумеется в PIO режиме отрабатывает без проблем.
Буду думать дальше.
З.Ы. Для тех кто желает проверить вот ядрышко:
Только предварительно уберите из AUTORUN.DAT строку запускающую /SYS/SEARCHAP - т.к. любое обращение к
/cd повесит систему, о чем я уже писал выше. Также логи рабочих/нерабочих конфигураций очень нужны - я там добавил вывод о PIO/DMA/UDMA режимах.
Re: SATA в режиме IDE - полная поддержка
Posted: Fri Aug 30, 2013 1:03 am
by Mario_r4
Serge wrote:Проверка в APIC
Вектор прерывания надо считывать уже
после инициализации ядра, оно его меняет.
Что конкретно нужно сделать с назначением прерывания для контроллера DMA. Написать отдельный драйвер или как вообще? Как все дело синхронизировать вообще?
Re: SATA в режиме IDE - полная поддержка
Posted: Fri Aug 30, 2013 9:43 am
by gc986
Не видит жёсткий диск.
Моё делезо: ноутбук MSI U90
Re: SATA в режиме IDE - полная поддержка
Posted: Fri Aug 30, 2013 9:52 am
by Mario_r4
gc986 wrote:Не видит жёсткий диск.
Моё делезо: ноутбук MSI U90
А жесткий диск какой фирмы и модели можно посмотреть например в Windows или какая основная ОС там установлена?
Re: SATA в режиме IDE - полная поддержка
Posted: Fri Aug 30, 2013 11:11 am
by Serge
Что конкретно нужно сделать с назначением прерывания для контроллера DMA
После вызова APIC_init прочитать правильный номер линии из регистра pcicfg:0x3C.
Re: SATA в режиме IDE - полная поддержка
Posted: Fri Aug 30, 2013 12:44 pm
by Mario_r4
Serge wrote:Что конкретно нужно сделать с назначением прерывания для контроллера DMA
После вызова APIC_init прочитать правильный номер линии из регистра pcicfg:0x3C.
А запускать нумератор устройств уже не нужно?
Re: SATA в режиме IDE - полная поддержка
Posted: Fri Aug 30, 2013 3:39 pm
by Serge
Нет, патчится только номер линии.
Re: SATA в режиме IDE - полная поддержка
Posted: Sun Sep 01, 2013 9:38 pm
by Mario_r4
Serge wrote:Что конкретно нужно сделать с назначением прерывания для контроллера DMA
После вызова APIC_init прочитать правильный номер линии из регистра pcicfg:0x3C.
Для проверки правильности идеи сделал вот так:
Spoiler:
Code: Select all
DEBUGF 1, "K : BAR0 %x \n", [IDE_BAR0_val]:4
DEBUGF 1, "K : BAR1 %x \n", [IDE_BAR1_val]:4
DEBUGF 1, "K : BAR2 %x \n", [IDE_BAR2_val]:4
DEBUGF 1, "K : BAR3 %x \n", [IDE_BAR3_val]:4
DEBUGF 1, "K : BAR4 %x \n", [IDEContrRegsBaseAddr]:4
DEBUGF 1, "K : IDEContrProgrammingInterface %x \n", [IDEContrProgrammingInterface]:4
DEBUGF 1, "K : IDE_Interrupt %x \n", [IDE_Interrupt]:4
mov eax,57
mov ebp,0xB103
mov ecx, 1*10000h ; + 1*100h + 0x80
mov cx,[IDEContrProgrammingInterface]
xor esi,esi
call sys_pcibios
mov eax,57
mov ebp, 0xB10A
mov edi, 0x3c ; memory base is config register at 0x3c
push ecx
call sys_pcibios
DEBUGF 1, "K : IDE_Interrupt APIC %x \n",ecx
pop ecx
mov eax,57
mov ebp, 0xB10A
mov edi, 0x20 ; memory base is config register at 0x20
call sys_pcibios
DEBUGF 1, "K : IDEContrRegsBaseAddr APIC %x \n",ecx
Как результат - на компьютерах с Legacy возвращается 0, как до, так и после APIC_init, а на компьютерах с Native возвращается то же самое значение, как до, так и после APIC_init. Вывод для смещения 0x20 делал исключительно для контрольного результата, естественно он совпал с BAR4 полученным в Real Mode. Если я где то неправ и не так считывал, то просьба ткнуть носом.
Re: SATA в режиме IDE - полная поддержка
Posted: Sun Sep 01, 2013 9:57 pm
by Mario_r4
gc986 wrote:Не видит жёсткий диск.
Моё делезо: ноутбук MSI U90
Просьба протестировать.
Если будет ошибка или все нормально, то выложить логи. Если зависнет при обращении, то просто отписаться здесь.
Re: SATA в режиме IDE - полная поддержка
Posted: Sun Sep 01, 2013 10:06 pm
by Serge
Mario_r4
А ты запускал нумератор устройств и сохранял devices.dat в образе ?