Доброго дня уважаемым.помогите найти решение проблемы для FreeBSD6.1
Тестирую драйверный стек собственного изготовления. Структура его такая
железка->драйвер железки->фильтр драйвер->hetgraph node ----> далее бсдишные ноды которые mpd подымает при дозвоне (ppp там всякие и тд).
железяка с циской по Е1 стыкуется.
mpd поднимается, соединение устанавливается и.. собсно начинает все жужжать !!!!!!!!! :))
потом в виде самого простецкого первоначального теста я с другой машины начинаю заваливать эту всю систему пингами большими типаping -s 8192 192.168.1.8
и таких штук 10-15.
все бы хороше если-бы через некоторое время бсд не вылетала вот так:
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x10
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc070ffa0
stack pointer = 0x28:0xd500a3a8
frame pointer = 0x28:0xd500a3b8
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 12 (swi1: net)
trap number = 12
panic: page faultпамять вроде ниде не течет (или может не так смотрю [top'ом])
процесс swi1 вылетающий это ваще idle системный.гугление ниче особого не дало.
помогите плз. кто чем силен.
Заранее спасибо.
Привет многоуважаемый коллега)))Сам при написании патчей часто сталкиваюсь с такими проблемами, опыта моловато. Но всегда помогает подробный анализ дампа ядра. Page fault вылетает при обращении к несуществующей странице, swi1 это поток ядра, который отвечает за извлечение пакетов из очереди(если память не изменяет))). Былобы неплохо увидеть код который ты добавил в ядро и предоставь из kgdb результаты backtrace и list *0xc070ffa0, это для начала. Там видно будет))
>Привет многоуважаемый коллега)))
>
>Сам при написании патчей часто сталкиваюсь с такими проблемами, опыта моловато. Но
>всегда помогает подробный анализ дампа ядра. Page fault вылетает при обращении
>к несуществующей странице, swi1 это поток ядра, который отвечает за извлечение
>пакетов из очереди(если память не изменяет))). Былобы неплохо увидеть код который
>ты добавил в ядро и предоставь из kgdb результаты backtrace и
>list *0xc070ffa0, это для начала. Там видно будет))спасибо за совет.. но уже разобрался.
собрал кернел с DDB и по крашу оттрасировал. оказалось у меня в манагере памяти (своем) утечка.
ковыряюсь....