Page 61 of 91

Re: "Ночные" сборки KolibriOS

Posted: Wed Jul 03, 2013 7:16 pm
by CleverMouse
0CodErr wrote:Я пробовал отключать в VirtualBox все диски кроме floppy с образом — лучше не стало.
Что, если отключить USB-контроллер в настройках VirtualBox? Что, если отключить сетевой контроллер там же?
0CodErr wrote:при разрешении экрана 1024x768 на VirtualBox
Глубина цвета какая?

Re: "Ночные" сборки KolibriOS

Posted: Wed Jul 03, 2013 8:05 pm
by 0CodErr
CleverMouse wrote:Что, если отключить USB-контроллер в настройках VirtualBox? Что, если отключить сетевой контроллер там же?
Попробовал. Большой разницы не заметил.
CleverMouse wrote:Глубина цвета какая?
В тот раз было так:
3503 — 32
3535 — 32
3734 — 24
Поэтому вот ещё:
Spoiler:
3734_24_vs_3734_32.PNG
3734_24_vs_3734_32.PNG (12.26 KiB)
Viewed 4249 times
3535_24_vs_3734_24.PNG
3535_24_vs_3734_24.PNG (11.78 KiB)
Viewed 4249 times
3535_32_vs_3734_32.PNG
3535_32_vs_3734_32.PNG (11.49 KiB)
Viewed 4249 times

Re: "Ночные" сборки KolibriOS

Posted: Wed Jul 03, 2013 9:52 pm
by CleverMouse
Asper wrote:В сборке #3486 драйвер HDA ещё работает в VirtualBox 4.2.12 в #3493 уже вешает эмулируемую машину.
Serge wrote:С HDA непонятная ситуация. 3588 иногда зависает, а иногда нет. Закономерность не удаётся уловить. 3592 работает, но причина зависания непонятна совершенно. Надо больше разных тестов.
Классический deadlock из-за недостаточных блокировок - play/stop работают не в контексте прерывания, но использовали спинлок, не блокирующий прерывания. Если в момент play/stop приходило прерывание - обработчик прерывания не мог начать выполняться, пока спинлок не отпущен, а код, захвативший спинлок, не мог продолжить выполняться, пока не завершится обработчик. Я это поправила в r3753.
Asper, там в stop всё-всё-всё закомментировано с предисловием "Asper: Hangs system". Это когда появилось и не пора ли это уже убрать для экономии ресурсов после остановки проигрывания?

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 3:35 pm
by CleverMouse
Сюрприз: уже давно процедуры завершения во всех звуковых драйверах не вызываются при завершении работы системы.

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 4:22 pm
by CleverMouse
У меня под VirtualBox скорость графики в рамках погрешностей не меняется от ревизии к ревизии:
Spoiler:С аппаратным ускорением:
mgb_VirtualBox.png
mgb_VirtualBox.png (5.04 KiB)
Viewed 4543 times
Без аппаратного ускорения:
mgb_VirtualBox_noaccel.png
mgb_VirtualBox_noaccel.png (4.98 KiB)
Viewed 4502 times

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 4:58 pm
by Serge
CleverMouse
stop_all_services не вызывается ?

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 5:00 pm
by CleverMouse
Serge, вызывается, но до звуковых драйверов не доходит, так как направляется в kernel/trunk/drivers/sound.asm.

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 5:08 pm
by Serge
sound.asm не регистрируется в системе, его нет в списке драйверов. А настоящие звуковые драйверы регистрируются как 'SOUND'

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 5:11 pm
by CleverMouse
До меня тоже дошло не сразу. А теперь посмотри, как заполняется SRV.entry у настоящего звукового драйвера: http://websvn.kolibrios.org/filedetails ... c#line-837

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 5:19 pm
by Serge
Прописывает себя и остаётся в памяти.
Надо исправить detect_controller, чтобы всегда 0 возвращал.

Наверное поэтому рестарт ядра виснет.

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 5:24 pm
by CleverMouse
Тогда первый вызов из приложения load_driver("SOUND") будет фейлиться.

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 5:33 pm
by Serge
Два варианта.
1.Формат структуры SRV известен. sound.asm сохраняет точку входа настоящего драйвера, и передаёт управление туда.
2.Переписать всё нафиг.

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 10:20 pm
by Asper
CleverMouse wrote:
Asper wrote:В сборке #3486 драйвер HDA ещё работает в VirtualBox 4.2.12 в #3493 уже вешает эмулируемую машину.
Serge wrote:С HDA непонятная ситуация. 3588 иногда зависает, а иногда нет. Закономерность не удаётся уловить. 3592 работает, но причина зависания непонятна совершенно. Надо больше разных тестов.
Классический deadlock из-за недостаточных блокировок - play/stop работают не в контексте прерывания, но использовали спинлок, не блокирующий прерывания. Если в момент play/stop приходило прерывание - обработчик прерывания не мог начать выполняться, пока спинлок не отпущен, а код, захвативший спинлок, не мог продолжить выполняться, пока не завершится обработчик. Я это поправила в r3753.
Спасибо.
CleverMouse wrote: Asper, там в stop всё-всё-всё закомментировано с предисловием "Asper: Hangs system". Это когда появилось и не пора ли это уже убрать для экономии ресурсов после остановки проигрывания?
Это появилось ещё в тестовой версии 9. Надо проверять, если проблемы больше не возникает, то можно раскомментировать блок.

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 10:33 pm
by CleverMouse
Прямо сейчас, похоже, stop даже не вызывается - ни при завершении системы из-за промежуточного драйвера, перезаписывающего установленный было [SRV.entry], ни при остановке проигрывания ac97snd, не знаю почему.

Re: "Ночные" сборки KolibriOS

Posted: Thu Jul 04, 2013 11:02 pm
by Asper
Возможно Serge что-то придумает. Тестировать можно удалив прослойку в виде текущего sound.obj.