reproducible "panic: page fault" with clang-compiled nvidia-driver

kron kron24 at
Tue Mar 5 18:01:49 UTC 2013


I have 100% reproducible "page fault" kernel panics on 9-STABLE
(FreeBSD 9.1-STABLE #0 r247842M)

It needs two conditions together:
1. nvidia-driver built by clang
2. nvidia_load="YES" in loader.conf

On system startup I get (for example):

#1  0xffffffff80473164 in kern_reboot (howto=260)
    at /usr/src/sys/kern/kern_shutdown.c:448
#2  0xffffffff804735a4 in panic (fmt=<value optimized out>)
    at /usr/src/sys/kern/kern_shutdown.c:636
#3  0xffffffff806c1925 in trap_fatal (frame=<value optimized out>,
    eva=<value optimized out>) at /usr/src/sys/amd64/amd64/trap.c:878
#4  0xffffffff806c1cc3 in trap_pfault (frame=0x0, usermode=0)
    at /usr/src/sys/amd64/amd64/trap.c:735
#5  0xffffffff806c130e in trap (frame=0xffffff83e43e6710)
    at /usr/src/sys/amd64/amd64/trap.c:463
#6  0xffffffff806ab893 in calltrap () at exception.S:228
#7  0xffffffff804b5d05 in propagate_priority (td=<value optimized out>)
    at /usr/src/sys/kern/subr_turnstile.c:277
#8  0xffffffff804b6563 in turnstile_wait (ts=<value optimized out>,
    owner=<value optimized out>, queue=<value optimized out>)
    at /usr/src/sys/kern/subr_turnstile.c:743
#9  0xffffffff80461e08 in _mtx_lock_sleep (m=0xffffffff80abf800,
    tid=18446741874843076896, opts=<value optimized out>,
    file=0xfffffe000c830d80 "Hw\xa4\200\xff\xff\xff\xff", line=0)
    at /usr/src/sys/kern/kern_mutex.c:471
#10 0xffffffff8039132e in usbd_do_request_flags (udev=0xfffffe000c3a1000,
    mtx=0x0, req=0xffffff83e43e6990, data=<value optimized out>,
    flags=<value optimized out>, actlen=0x0, timeout=255)
    at /usr/src/sys/dev/usb/usb_request.c:705
#11 0xffffffff8039150f in usbd_req_reset_port (udev=0xfffffe000c3a1000,
    mtx=0x0, port=1 '\001') at /usr/src/sys/dev/usb/usb_request.c:1674
#12 0xffffffff8038def3 in uhub_explore (udev=0xfffffe000c3a1000)
    at /usr/src/sys/dev/usb/usb_hub.c:424
#13 0xffffffff8037647a in usb_bus_explore (pm=<value optimized out>)
    at /usr/src/sys/dev/usb/controller/usb_controller.c:359
#14 0xffffffff803903ff in usb_process (arg=0xffffff8000b15db0)
    at /usr/src/sys/dev/usb/usb_process.c:169
#15 0xffffffff80447645 in fork_exit (
    callout=0xffffffff803902f0 <usb_process>, arg=0xffffff8000b15db0,
    frame=0xffffff83e43e6b00) at /usr/src/sys/kern/kern_fork.c:988
#16 0xffffffff806abdce in fork_trampoline () at exception.S:602
#17 0x0000000000000000 in ?? ()

The "caller" bellow _mtx_lock_sleep varies - I saw kern_intr.c,
tty.c, and maybe others beside usb_process.c pasted above.

If I build nvidia-driver by gcc or postpone nvidia loading
to a later moment (f.ex. via rc.local) or both, the system
boots OK.

I've found a related thread (I think) in freebsd-current@:
"sysctl -a causes kernel trap 12" [1]. Unfortunately, it ended
without a clear conclusion.

Is any developer interested in this? I can crash on demand :-)



More information about the freebsd-stable mailing list