Новые драйвера для ATI Radeon.

Drivers for various video cards
  • Unduing
    На 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.
  • 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.
    So I should write network drivers more like those in linux, just queue an event and do all the rest later?
    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
  • So I should write network drivers more like those in linux, just queue an event and do all the rest later?
    This would be the best solution.
    What exactly causes the interference with ATIKMS?
    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.
  • 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.
    Remind me, what registers should be preserved?
    "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

    Code: Select all

            push    ebx                     ; FIX THIS
            push    edi
            push    esi
    
            push    [ebx+IRQH.data]
            call    [ebx+IRQH.handler]
    
    May be stack corrupted ?
  • Serge wrote: May be stack corrupted ?
    Simple check is to print ESP at the beginning and end of int handler.
    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
    Spoiler:
    log.jpg
    log.jpg (870.97 KiB)
    Viewed 5058 times
    to infinity and beyond
  • punk_joker
    Логи нужны. 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
  • Serge wrote:
    So I should write network drivers more like those in linux, just queue an event and do all the rest later?
    This would be the best solution.
    Done. (r3982)
    "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