boot panic (NDIS, SCHED_ULE?)
Maxim Maximov
mcsi at mcsi.pp.ru
Fri Oct 21 13:09:46 PDT 2005
Maxim Maximov wrote:
> Hi.
>
> Got boot time panic on fresh CURRENT.
> NDIS hardware:
>
> ndis0: <ASUS 802.11g Network Adapter> mem 0xfeaf8000-0xfeaf9fff irq 17
> at device 2.0 on pci2
> ndis0: NDIS API version: 5.0
> ndis0: Ethernet address: 00:0e:a6:c2:00:e4
>
> Panic:
> ...
> Timecounters tick every 1.000 msec
> kernel trap 12 with interrupts disabled
>
>
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address = 0x109
> fault code = supervisor read, page not present
> instruction pointer = 0x20:0xc06a7570
> stack pointer = 0x28:0xd5985cbc
> frame pointer = 0x28:0xd5985cc4
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = resume, IOPL = 0
> current process = 41 (Windows DPC 1)
>
>
> Hand transcribed trace, abbreviated:
>
>
> Stopped at kseq_notify+0x94: cmpb 0x109(%edx), %al
Debugging shows that this is:
pcpu = pcpu_find(cpu);
td = pcpu->pc_curthread;
if (ke->ke_thread->td_priority < td->td_priority ||
^^^^^ here.
td == pcpu->pc_idlethread) {
td->td_flags |= TDF_NEEDRESCHED;
ipi_selected(1 << cpu, IPI_AST);
}
And %edx holds 'td' pointer, not ke->ke_thread.
So I wonder could this be sched_ule problem, just being triggered by new
NDIS code? I'll try to build sched_4bsd kernel now to see if it disappears.
>
> >trace
> kseq_notify(c1edbb24,1,c09c4520,c1edbb24,c08236bc) ...+0x94
> sched_bind(c1edb9c0,1) ...+0x62
> ntoskrnl_dpc_thread(c1f4fc3c,d5985d38,c1f4fc3c,c08236bc,0) ...+0x73
> fork_exit(c08236bc,c1f4fc3c,d5985d38) ...+0xa4
> fork_trampoline()
>
--
Maxim Maximov
More information about the freebsd-current
mailing list