Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Dec 10, 2019 5:11 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 262 posts ]  Go to page Previous 17 8 9 10 1118 Next
Author Message
PostPosted: Tue Aug 27, 2013 9:29 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Mario_r4
Первые 10 секунд это кеш плеера. Так что производительности процессора хватает. А скорости чтения файла не хватает, кеш пустеет и начинает заикаться.

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

З.Ы. Впрочем пора завязывать в этой теме с обсуждением плеера, тема не про плеер.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Tue Aug 27, 2013 10:54 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario_r4
Какая разница, сколько потоков будет, если файловая система не позволяет читать диск быстрее, чем надо плееру.


Top
   
PostPosted: Tue Aug 27, 2013 12:09 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Mario_r4
Какая разница, сколько потоков будет, если файловая система не позволяет читать диск быстрее, чем надо плееру.

Ладно найду свободное время распакую в RAW и вот тогда будет точный показатель, есть ли вина файловой системы. Пока что я вижу, что файлы SD качества воспроизводятся вполне нормально, а HD качества (которые лишь в 2,5 раза больше http://www.lostfilm.tv/browse.php?cat=51 все зависит от качества сжатия) начинают "квакать". Загрузка же для HD 100% процессора всегда. Для SD качества 20-25%.

З.Ы. И все же мне не понятно почему старая версия плеера не заикалась, хоть и была рассинхронизация. Ведь хватало же каким то чудом скорости чтения с диска.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Tue Aug 27, 2013 7:30 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
У меня есть подозрение, что для ntfs продолжительность одиночной операции чтения файла пропорциональна размеру файла. То есть чем длиннее файл, тем меньше максимально возможная скорость чтения. Для примера рип 15Гб с битрейтом 2Мб/с встаёт сразу. 1.5 Гб с битрейтом 260Мб/с чуть-чуть не успевает (на фат32 без подтормаживания). 135Мб с битрейтом 480Мб/с идёт без рывков.

Update.
А вот нихрена. Сделал тест последовательного чтения ntfs и получил в среднем 195000Кб/с независимо от размера файла. Это AHCI на новом диске и результат очень даже внушает.
С другой стороны видеофайл может считываться не последовательно. Если в конце расположены служебные данные и к ним идёт периодически обращение, будет просадка.
Update 2.
А вот опять нихрена.
Проверил скорость чтения фреймами в ffmpeg. В среднем 2-5% медленнее. Гигабайт пролетает за пять секунд.
На фс я зря грешил, хотя может быть ещё лучше.


Top
   
PostPosted: Tue Aug 27, 2013 11:16 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Update 2.
А вот опять нихрена.
Проверил скорость чтения фреймами в ffmpeg. В среднем 2-5% медленнее. Гигабайт пролетает за пять секунд.
На фс я зря грешил, хотя может быть ещё лучше.

Так в чем же проблема?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Wed Aug 28, 2013 2:37 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Так насчет центрально темы - у меня были слишком радужные перспективы.

Итак что я теперь имею для UltraDMA режима:
1) Dell Inspiron (native) - работает жесткий, но любое обращение к DVD приводу вешает систему. Оно и понятно, поскольку там PIO и обработчик прерывания не отрабатывает. Проблема решаема допилкой кода ATAPI - несущественная проблема в общем.
2) eBox (legacy|native) - в legacy все замечательно, но в native ситуация не изменилась - все еще виснет при обращении к диску.
3) Мамка Asus (native) - работало и раньше, при первом обращении к жесткому по прежнему отваливается USB стек, потому что они делят между собой одно прерывание.
4) Мамка Asrock (native) - виснет по прежнему при первом обращении.
Все вышеприведенное разумеется в PIO режиме отрабатывает без проблем.

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

З.Ы. Для тех кто желает проверить вот ядрышко:
Attachment:
kernel.7z [86.07 KiB]
Downloaded 64 times

Только предварительно уберите из AUTORUN.DAT строку запускающую /SYS/SEARCHAP - т.к. любое обращение к /cd повесит систему, о чем я уже писал выше. Также логи рабочих/нерабочих конфигураций очень нужны - я там добавил вывод о PIO/DMA/UDMA режимах.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Fri Aug 30, 2013 1:03 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Проверка в APIC
Вектор прерывания надо считывать уже после инициализации ядра, оно его меняет.

Что конкретно нужно сделать с назначением прерывания для контроллера DMA. Написать отдельный драйвер или как вообще? Как все дело синхронизировать вообще?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Fri Aug 30, 2013 9:43 am 
Offline
User avatar

Joined: Sat Apr 20, 2013 6:43 am
Posts: 26
Не видит жёсткий диск.
Моё делезо: ноутбук MSI U90


Attachments:
PCIDEV.TXT [2.32 KiB]
Downloaded 57 times
BOARDLOG.TXT [2.75 KiB]
Downloaded 59 times
Top
   
PostPosted: Fri Aug 30, 2013 9:52 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
gc986 wrote:
Не видит жёсткий диск.
Моё делезо: ноутбук MSI U90

А жесткий диск какой фирмы и модели можно посмотреть например в Windows или какая основная ОС там установлена?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Fri Aug 30, 2013 11:11 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Quote:
Что конкретно нужно сделать с назначением прерывания для контроллера DMA
После вызова APIC_init прочитать правильный номер линии из регистра pcicfg:0x3C.


Top
   
PostPosted: Fri Aug 30, 2013 12:44 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Quote:
Что конкретно нужно сделать с назначением прерывания для контроллера DMA
После вызова APIC_init прочитать правильный номер линии из регистра pcicfg:0x3C.

А запускать нумератор устройств уже не нужно?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Fri Aug 30, 2013 3:39 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Нет, патчится только номер линии.


Top
   
PostPosted: Sun Sep 01, 2013 9:38 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Quote:
Что конкретно нужно сделать с назначением прерывания для контроллера DMA
После вызова APIC_init прочитать правильный номер линии из регистра pcicfg:0x3C.

Для проверки правильности идеи сделал вот так:
Spoiler: Show
Code:
        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. Если я где то неправ и не так считывал, то просьба ткнуть носом.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Sep 01, 2013 9:57 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
gc986 wrote:
Не видит жёсткий диск.
Моё делезо: ноутбук MSI U90

Просьба протестировать.
Attachment:
kernel.7z [85.99 KiB]
Downloaded 54 times

Если будет ошибка или все нормально, то выложить логи. Если зависнет при обращении, то просто отписаться здесь.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Sep 01, 2013 10:06 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario_r4
А ты запускал нумератор устройств и сохранял devices.dat в образе ?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 262 posts ]  Go to page Previous 17 8 9 10 1118 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited