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 режиме отрабатывает без проблем.

Буду думать дальше.

З.Ы. Для тех кто желает проверить вот ядрышко:
kernel.7z (86.07 KiB)
Downloaded 206 times
Только предварительно уберите из 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
Просьба протестировать.
kernel.7z (85.99 KiB)
Downloaded 196 times
Если будет ошибка или все нормально, то выложить логи. Если зависнет при обращении, то просто отписаться здесь.

Re: SATA в режиме IDE - полная поддержка

Posted: Sun Sep 01, 2013 10:06 pm
by Serge
Mario_r4
А ты запускал нумератор устройств и сохранял devices.dat в образе ?