Версия http://builds.kolibrios.org/rus/history/svn3543-img.7z работает стабильно.
Версия http://builds.kolibrios.org/rus/history/svn3552-img.7z и последующие зависают.
Новые драйвера для ATI Radeon.
Unduing
На irq 11 четыре устройства сидит. Проблема может быть в драйвере сетевухи а может и в видеодрайвере. А если выключить сетевуху в биос ?
На irq 11 четыре устройства сидит. Проблема может быть в драйвере сетевухи а может и в видеодрайвере. А если выключить сетевуху в биос ?
После удаления из образа RTL8029.obj, RTL8139.obj, RTL8169.obj запуск atikms не вызывает зависание, проблема с жестким диском осталась. Сетевую разве что доставать, встроенная выключена.
Serge
Что посоветуешь?
Что посоветуешь?
Serge: Does this suggest there is something wrong with RTL8169 interrupt handler?
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
hidnplayr
Probably. I looked at the code, the interrupt handler calls KernelAlloc and KernelFree. This heavy functions uses mutexes and are not designed to run in interrupt context.
Moreover, the handler calls Eth_input, which causes even more functions. Too much code is running in interrupt context.
Probably. I looked at the code, the interrupt handler calls KernelAlloc and KernelFree. This heavy functions uses mutexes and are not designed to run in interrupt context.
Moreover, the handler calls Eth_input, which causes even more functions. Too much code is running in interrupt context.
So I should write network drivers more like those in linux, just queue an event and do all the rest later?Serge wrote: hidnplayr
Probably. I looked at the code, the interrupt handler calls KernelAlloc and KernelFree. This heavy functions uses mutexes and are not designed to run in interrupt context.
Moreover, the handler calls Eth_input, which causes even more functions. Too much code is running in interrupt context.
What exactly causes the interference with ATIKMS?
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
This would be the best solution.So I should write network drivers more like those in linux, just queue an event and do all the rest later?
Here is quite complicated situation. Three devices share a same interrupt. I think in the chain of interrupt handlers video is after the network. The error occurs in the context of atikms. During the initialization and tests device generates an interrupt. In this case, the network handler probably incorrectly handles such interrupt, or destroys the stack, or overwrites the preserved registers.What exactly causes the interference with ATIKMS?
Remind me, what registers should be preserved?Serge wrote:Three devices share a same interrupt. I think in the chain of interrupt handlers video is after the network. The error occurs in the context of atikms. During the initialization and tests device generates an interrupt. In this case, the network handler probably incorrectly handles such interrupt, or destroys the stack, or overwrites the preserved registers.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
hidnplayr
ebx esi edi ebp.
Btw kernel already preserve ebx edi and esi May be stack corrupted ?
ebx esi edi ebp.
Btw kernel already preserve ebx edi and esi
Code: Select all
push ebx ; FIX THIS
push edi
push esi
push [ebx+IRQH.data]
call [ebx+IRQH.handler]
Simple check is to print ESP at the beginning and end of int handler.Serge wrote: May be stack corrupted ?
I'm not home, so cannot test on rtl8169 now.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
Еще жалоба имеется
При загрузке драйвера все работает нормально, режимы переключаются. Но если отключить какое либо usb устройство, то система зависает, индикатор на панели показывает максимальную нагрузку.
Сборка 3867, Драйвер 3.10
При загрузке драйвера все работает нормально, режимы переключаются. Но если отключить какое либо usb устройство, то система зависает, индикатор на панели показывает максимальную нагрузку.
Сборка 3867, Драйвер 3.10
Spoiler:
to infinity and beyond
punk_joker
Логи нужны. pcidev и доска отладки до отключения usb.
Логи нужны. pcidev и доска отладки до отключения usb.
ПрилагаюSerge wrote:punk_joker
Логи нужны. pcidev и доска отладки до отключения usb.
- Attachments
-
-
PCIDEV.TXT (2.53 KiB)Downloaded 222 times
-
BOARDLOG.TXT (11.48 KiB)Downloaded 215 times
-
to infinity and beyond
Done. (r3982)Serge wrote:This would be the best solution.So I should write network drivers more like those in linux, just queue an event and do all the rest later?
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
Who is online
Users browsing this forum: No registered users and 4 guests