Bug #2408

Fatal trap 12: page fault Stopped at bsd4_setrunqueue on Pentium 4

Added by davshao over 2 years ago. Updated over 2 years ago.

Status:ClosedStart date:08/23/2012
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

On a Pentium 4 Asus P4B266 motherboard using
set hw.apic_io_enable=0
some commit between
26dd35c9bbbbeffac40d091e7df63b02e7e2f078 rtld: Perform reloc before filtree dependency object init
and
b148267406ef2d0543d5d87d15c283b2d314516f kernel - Attempt to fix i386 wire_count panic (98)
produces a panic on boot:

Mounting root from ufs:/dev/serno/WD-WCAL75015619.s1a
DMA space used: 232k, remaining available: 16384k

Fatal trap 12: page fault while in kernel mode
cpuid = 0; lapic.id = 00000000
fault virtual address = 0xc
fault code = supervisor read, page not present
instruction pointer = 0x8 :0xc03dacaf
stack pointer = 0x10:0xc0f4cd08
frame pointer = 0x10:0xc0f4cd44
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 = 0 (swapper)
current thread = pri 12 (CRIT)
<- SMP: XXX
kernel: type 12 trap, code = 0

CPU0 stopping CPUs: 0x00000000
stopped
Stopped at bsd4_setrunqueue+0x1df: andl 0xc(%eax),%ecx

db> trace
bsd4_setrunqueue(c308b1d8,c05ed5d,c04a24c,e8,0) at bsd4_setrunqueue+0x1df 0xc03dacaf
start_forked_proc(c093bae0,cd6da460,c0f4cd98,c03a9a10,0) at start_forked_proc+0x90 0xc03c0e7b
kick_init(0,f48c00,f48c00,f59000,f59000) at kick_init+0x1b 0xc03a9915
mi_startup(f48000,0,0,0,0) at mi_startup+0x89 0xc03a9a10
begin() at begin+0x42 0xc016a7db

dmesg.boot - verbose dmesg (96.4 KB) herrgard, 08/27/2012 02:27 PM

usched_package.patch Magnifier (537 Bytes) alexh, 08/29/2012 04:03 AM

dmesg.boot (50 KB) herrgard, 08/29/2012 11:59 PM

History

#1 Updated by davshao over 2 years ago

The problem still manifests itself after updating through
dcece5c7521207769edc2756956f76ef8b485ce1 mutex.9: Misc updates and minor improvements.

#2 Updated by alexh over 2 years ago

A verbose boot would be helpful. Could you also please either upload a core dump (you can get one by setting dumpdev in the loader) or at least run addr2line to point out which line bsd4_setrunqueue+0x1df 0xc03dacaf is referring to?

Cheers,
Alex

#3 Updated by herrgard over 2 years ago

My box also panics on boot (right after that DMA space... line)

Trace by addr2line, as I can't get it to dump.

sys/kern/usched_bsd4.c:756
sys/kern/kern_fork.c:775
sys/kern/init_main.c:704
sys/kern/init_main.c:263

#4 Updated by herrgard over 2 years ago

CPU is an AMD Athlon64 3000+ (s939 winchester core) with an Abit AV8 motherboard (VIA K8T800 Pro chipset).

verbose dmesg attached.

#5 Updated by herrgard over 2 years ago

I got a dump with dumpdev set in loader.conf but it is unusable. Gets "Cannot access memory at address 0x10000000f" on everything I try in kgdb.

Anyway, some interesting lines from verbose boot with the failing kernel:

BITS within APICID: logical_CPU_bits: 0; core_bits: 0
CPU Topology: cores_per_chip: 1; threads_per_core: 1; chips_per_package: 1;
start dummy scheduler helpers on cpus: 0
Start scheduler helpers on cpus:
cpu0 - Unknown cpunode->type. Siblings: no siblings

#6 Updated by davshao over 2 years ago

Problem also exists for me for x86_64 in Vmware Fusion 3.1.4 on a Macbook,
through 578f4d502281825ee8a04978e83501f2e6f09327 wpa_supplicant(8): Use libpcap functions.

#7 Updated by alexh over 2 years ago

Please try the attached patch and report the result of a boot verbose with that patch.

Cheers,
Alex

#8 Updated by herrgard over 2 years ago

It boots fine, no panic :)

cpu0 - Unknown cpunode->type=1. Siblings: no siblings

#9 Updated by herrgard over 2 years ago

Full dmesg.boot

#10 Updated by alexh over 2 years ago

  • Status changed from New to Closed

Committed in f3025b16812bc484c7b518058fe2f5324dc310ae

Also available in: Atom PDF