FreeBSDDesktop / DEPRECATED-freebsd-base-graphics

Fork of FreeBSD's base repository to work on graphics-stack-related projects
Other
49 stars 13 forks source link

Kernel Panic When Starting X with intel driver #108

Closed nomadlogic closed 7 years ago

nomadlogic commented 7 years ago

Getting a reproduceable kernel panic when I start X with the intel driver. Using modesetting driver does not cause panic. I've been able to capture a core dump, as well as screen shot of the panic.

The screenshot of the console is available here. I can provide a larger screenshot of the cropping is an issue.

I've also got a core dump available for analysis - here's the backtrace though:

Unread portion of the kernel message buffer:

panic: vm_page_insert_after: page already inserted
vt_kms_postswitch() at vt_kms_postswitch+0x52/frame 0xfffffe02336a0270
vt_window_switch() at vt_window_switch+0xdb/frame 0xfffffe02336a02b0
vtterm_cngrab() at vtterm_cngrab+0x20/frame 0xfffffe02336a02d0
cngrab() at cngrab+0x32/frame 0xfffffe02336a02f0
vpanic() at vpanic+0x10a/frame 0xfffffe02336a0370
kassert_panic() at kassert_panic+0x126/frame 0xfffffe02336a03e0
vm_page_insert_after() at vm_page_insert_after+0xc3/frame 0xfffffe02336a0410
remap_io_mapping() at remap_io_mapping+0xe3/frame 0xfffffe02336a0480
i915_gem_fault() at i915_gem_fault+0x2be/frame 0xfffffe02336a0510
linux_cdev_pager_populate() at linux_cdev_pager_populate+0x179/frame 0xfffffe02336a0620
Dumping 578 out of 8045 MB:..3%..12%..23%..31%..42%..53%..61%..72%..81%..92%
<snip>
(kgdb) #0  doadump (textdump=0) at pcpu.h:222
#1  0xffffffff831d75e7 in vt_kms_postswitch (arg=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/drm/../../../dev/drm/linux_fb.c:82
#2  0xffffffff808de76b in vt_window_switch (vw=0xffffffff817632a8)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/dev/vt/vt_core.c:540
#3  0xffffffff808dc280 in vtterm_cngrab (tm=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/dev/vt/vt_core.c:1465
#4  0xffffffff809f3e02 in cngrab ()
    at /usr/home/pwright/git/freebsd-base-graphics/sys/kern/kern_cons.c:368
#5  0xffffffff80a4d27a in vpanic (
    fmt=0xffffffff81421a22 "vm_page_insert_after: page already inserted",
    ap=0xfffffe02336a03b0)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/kern/kern_shutdown.c:765
#6  0xffffffff80a4d166 in kassert_panic (fmt=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/kern/kern_shutdown.c:669
#7  0xffffffff80d3f9a3 in vm_page_insert_after (m=0xfffff8023449a520,
    object=0xfffff800b99d51e0, pindex=0, mpred=0x0)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/vm/vm_page.c:1165
#8  0xffffffff830f4213 in remap_io_mapping (vma=0xfffffe02336a0558,
    addr=<value optimized out>, pfn=<value optimized out>,
    size=<value optimized out>, iomap=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/i915/i915kms/../../../../dev/drm/i915/intel_freebsd.c:235
#9  0xffffffff8306fa4e in i915_gem_fault (area=0xfffffe02336a0558,
    vmf=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/i915/i915kms/../../../../dev/drm/i915/i915_gem.c:1911
#10 0xffffffff83013679 in linux_cdev_pager_populate (
    vm_obj=<value optimized out>, pidx=0, fault_type=<value optimized out>,
    max_prot=<value optimized out>, first=0xfffffe02336a0670,
    last=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/linuxkpi/../../compat/linuxkpi/common/src/linux_compat.c:707
#11 0xffffffff80d2a81c in vm_fault_hold (map=0xfffff800045ab000,
    vaddr=34370416640, fault_type=<value optimized out>, fault_flags=0,
    m_hold=0x0) at vm_pager.h:166
#12 0xffffffff80d2a1b8 in vm_fault (map=0xfffff800045ab000,
    vaddr=<value optimized out>, fault_type=2 '\002',
    fault_flags=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/vm/vm_fault.c:474
#13 0xffffffff80ebb412 in trap_pfault (frame=0xfffffe02336a09c0, usermode=1)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/amd64/amd64/trap.c:708
#14 0xffffffff80ebaba2 in trap (frame=0xfffffe02336a09c0)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/amd64/amd64/trap.c:326
#15 0xffffffff80e9b181 in calltrap ()
    at /usr/home/pwright/git/freebsd-base-graphics/sys/amd64/amd64/exception.S:236
#16 0x00000008024fd736 in ?? ()
nomadlogic commented 7 years ago

testing the following WM's I am unable to reproduce this: twm cwm mate

I removed my existing XFCE4 configuration and was able to reproduce the panic. This seems to be a XFCE4 specific issue which I'll try to debug when I have some cycles. For now it looks like avoiding XFCE4 is the best solution.

nomadlogic commented 7 years ago

interestingly enough, i can also trigger a panic under mate when starting thunderbird. firefox seems fine so far. here is the panic for reference:

panic: Assertion pager_last < fs->first_object->size failed at /usr/home/pwright/git/freebsd-base-graphics/sys/vm/vm_fault.c:389
Unread portion of the kernel message buffer:
vt_kms_postswitch() at vt_kms_postswitch+0x52/frame 0xfffffe02336614b0
vt_window_switch() at vt_window_switch+0xdb/frame 0xfffffe02336614f0
vtterm_cngrab() at vtterm_cngrab+0x20/frame 0xfffffe0233661510
cngrab() at cngrab+0x32/frame 0xfffffe0233661530
vpanic() at vpanic+0x10a/frame 0xfffffe02336615b0
kassert_panic() at kassert_panic+0x126/frame 0xfffffe0233661620
vm_fault_hold() at vm_fault_hold+0x173c/frame 0xfffffe0233661750
vm_fault() at vm_fault+0x78/frame 0xfffffe0233661790
trap_pfault() at trap_pfault+0x112/frame 0xfffffe02336617f0
trap() at trap+0x342/frame 0xfffffe02336619b0
calltrap() at calltrap+0x8/frame 0xfffffe02336619b0
--- trap 0xc, rip = 0x8014fb9bb, rsp = 0x7fffffffe420, rbp = 0x7fffffffe440 ---
Dumping 661 out of 8045 MB:..3%..13%..22%..32%..42%..51%..61%..71%..83%..92%
#0  doadump (textdump=0) at pcpu.h:222
222     pcpu.h: No such file or directory.
        in pcpu.h
(kgdb) #0  doadump (textdump=0) at pcpu.h:222
#1  0xffffffff831d75e7 in vt_kms_postswitch (arg=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/drm/../../../dev/drm/linux_fb.c:82
#2  0xffffffff808de76b in vt_window_switch (vw=0xffffffff817632a8)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/dev/vt/vt_core.c:540
#3  0xffffffff808dc280 in vtterm_cngrab (tm=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/dev/vt/vt_core.c:1465
#4  0xffffffff809f3e02 in cngrab ()
    at /usr/home/pwright/git/freebsd-base-graphics/sys/kern/kern_cons.c:368
#5  0xffffffff80a4d27a in vpanic (
    fmt=0xffffffff80ff228f "Assertion %s failed at %s:%d", 
    ap=0xfffffe02336615f0)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/kern/kern_shutdown.c:765
#6  0xffffffff80a4d166 in kassert_panic (fmt=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/kern/kern_shutdown.c:669
#7  0xffffffff80d2b93c in vm_fault_hold (map=0xfffff8008ad4e000, 
    vaddr=34544623616, fault_type=<value optimized out>, fault_flags=0, 
    m_hold=0x0)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/vm/vm_fault.c:389
#8  0xffffffff80d2a1b8 in vm_fault (map=0xfffff8008ad4e000, 
    vaddr=<value optimized out>, fault_type=2 '\002', 
    fault_flags=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/vm/vm_fault.c:474
#9  0xffffffff80ebb412 in trap_pfault (frame=0xfffffe02336619c0, usermode=1)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/amd64/amd64/trap.c:708
#10 0xffffffff80ebaba2 in trap (frame=0xfffffe02336619c0)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/amd64/amd64/trap.c:326
#11 0xffffffff80e9b181 in calltrap ()
    at /usr/home/pwright/git/freebsd-base-graphics/sys/amd64/amd64/exception.S:236
#12 0x00000008014fb9bb in ?? ()
nomadlogic commented 7 years ago

triggered another panic when using firefox inside mate:

panic: Assertion page->hold_count == 1 failed at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/i915/i915kms/../../../../compat/linuxkpi/common/include/linux/gfp.h:106
Unread portion of the kernel message buffer:
vt_kms_postswitch() at vt_kms_postswitch+0x52/frame 0xfffffe0233a9fd70
vt_window_switch() at vt_window_switch+0xdb/frame 0xfffffe0233a9fdb0
vtterm_cngrab() at vtterm_cngrab+0x20/frame 0xfffffe0233a9fdd0
cngrab() at cngrab+0x32/frame 0xfffffe0233a9fdf0
vpanic() at vpanic+0x10a/frame 0xfffffe0233a9fe70
kassert_panic() at kassert_panic+0x126/frame 0xfffffe0233a9fee0
__free_hot_cold_page() at __free_hot_cold_page+0xe4/frame 0xfffffe0233a9ff00
i915_gem_userptr_put_pages() at i915_gem_userptr_put_pages+0xe2/frame 0xfffffe0233a9ff40
i915_gem_object_put_pages() at i915_gem_object_put_pages+0x9a/frame 0xfffffe0233a9ff70
i915_gem_free_object() at i915_gem_free_object+0x125/frame 0xfffffe0233a9ffa0
(kgdb) #0  doadump (textdump=0) at pcpu.h:222
#1  0xffffffff831d75e7 in vt_kms_postswitch (arg=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/drm/../../../dev/drm/linux_fb.c:82
#2  0xffffffff808de76b in vt_window_switch (vw=0xffffffff817632a8)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/dev/vt/vt_core.c:540
#3  0xffffffff808dc280 in vtterm_cngrab (tm=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/dev/vt/vt_core.c:1465
#4  0xffffffff809f3e02 in cngrab ()
    at /usr/home/pwright/git/freebsd-base-graphics/sys/kern/kern_cons.c:368
#5  0xffffffff80a4d27a in vpanic (
    fmt=0xffffffff831592e1 "Assertion %s failed at %s:%d", 
    ap=0xfffffe0233a9feb0)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/kern/kern_shutdown.c:765
#6  0xffffffff80a4d166 in kassert_panic (fmt=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/kern/kern_shutdown.c:669
#7  0xffffffff8308ca44 in __free_hot_cold_page (vm_page=0xfffff802392f3980)
    at gfp.h:106
#8  0xffffffff8308bbb2 in i915_gem_userptr_put_pages (
    obj=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/i915/i915kms/../../../../dev/drm/i915/i915_gem_userptr.c:695
#9  0xffffffff8306cb5a in i915_gem_object_put_pages (obj=0xfffff8017ea4c780)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/i915/i915kms/../../../../dev/drm/i915/i915_gem.c:2268
#10 0xffffffff83072545 in i915_gem_free_object (gem_obj=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/i915/i915kms/../../../../dev/drm/i915/i915_gem.c:4293
#11 0xffffffff83087897 in i915_gem_request_retire (
    request=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/i915/i915kms/../../../../dev/drm/i915/i915_gem_request.c:205
#12 0xffffffff83087d4b in i915_gem_request_alloc (engine=0xfffffe000a28f758, 
    ctx=0xfffff80020a27200)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/i915/i915kms/../../../../dev/drm/i915/i915_gem_request.c:375
#13 0xffffffff8307a446 in i915_gem_do_execbuffer ()
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/i915/i915kms/../../../../dev/drm/i915/i915_gem_execbuffer.c:1830
#14 0xffffffff8307ad58 in i915_gem_execbuffer2 (dev=0xfffffe000a28d000, 
    data=0xfffffe0233aa0470, linux_file=0xfffff80078793000)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/i915/i915kms/../../../../dev/drm/i915/i915_gem_execbuffer.c:2014
#15 0xffffffff831c052e in drm_ioctl (filp=<value optimized out>, 
    cmd=<value optimized out>, arg=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/drm/drm/../../../dev/drm/drm_ioctl.c:738
#16 0xffffffff83010faa in linux_dev_ioctl (dev=<value optimized out>, 
    cmd=2151703657, data=<value optimized out>, fflag=<value optimized out>, 
    td=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/modules/linuxkpi/../../compat/linuxkpi/common/src/linux_compat.c:1064
#17 0xffffffff80927403 in devfs_ioctl (ap=<value optimized out>)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/fs/devfs/devfs_vnops.c:831
#18 0xffffffff80fcce20 in VOP_IOCTL_APV (vop=<value optimized out>, 
    a=<value optimized out>) at vnode_if.c:1067
#19 0xffffffff80b1e404 in vn_ioctl (fp=0xfffff800781e9410, 
    com=<value optimized out>, data=0xfffffe0233aa0780, 
    active_cred=0xfffff80078866c00, td=<value optimized out>)
    at vnode_if.h:448
#20 0xffffffff80927b2f in devfs_ioctl_f (fp=<value optimized out>, 
    com=<value optimized out>, data=<value optimized out>, 
    cred=<value optimized out>, td=0xfffff80020451510)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/fs/devfs/devfs_vnops.c:789
#21 0xffffffff80ab1660 in kern_ioctl (td=<value optimized out>, 
    fd=<value optimized out>, com=<value optimized out>, 
    data=<value optimized out>) at file.h:328
#22 0xffffffff80ab12ff in sys_ioctl (td=<value optimized out>, 
    uap=0xfffffe0233aa0930)
    at /usr/home/pwright/git/freebsd-base-graphics/sys/kern/sys_generic.c:748
#23 0xffffffff80ebbab9 in amd64_syscall (td=0xfffff80020451510, traced=0)
    at subr_syscall.c:135
#24 0xffffffff80e9b46b in Xfast_syscall ()
    at /usr/home/pwright/git/freebsd-base-graphics/sys/amd64/amd64/exception.S:396
#25 0x00000008024ffafa in ?? ()
Previous frame inner to this frame (corrupt stack?)
Current language:  auto; currently minimal
mattmacy commented 7 years ago

This last issue may be fixed by my most recent commits.

nomadlogic commented 7 years ago

twm looks good after rebuilding to bc752fe0340 but MATE has a panic on startup:

panic: vm_page_insert_after: page already inserted

Unread portion of the kernel message buffer:
vt_kms_postswitch() at vt_kms_postswitch+0x52/frame 0xfffffe0233a68270
vt_window_switch() at vt_window_switch+0xdb/frame 0xfffffe0233a682b0
vtterm_cngrab() at vtterm_cngrab+0x20/frame 0xfffffe0233a682d0
cngrab() at cngrab+0x32/frame 0xfffffe0233a682f0
vpanic() at vpanic+0x10a/frame 0xfffffe0233a68370
kassert_panic() at kassert_panic+0x126/frame 0xfffffe0233a683e0
vm_page_insert_after() at vm_page_insert_after+0xc3/frame 0xfffffe0233a68410
remap_io_mapping() at remap_io_mapping+0xe3/frame 0xfffffe0233a68480
i915_gem_fault() at i915_gem_fault+0x2be/frame 0xfffffe0233a68510
linux_cdev_pager_populate() at linux_cdev_pager_populate+0x179/frame 0xfffffe0233a68620
mattmacy commented 7 years ago

well that's the same as before mark should be looking in to it

trombonehero commented 7 years ago

Just a quick note that I'm starting to see this backtrace in 1f757af now that my other panics have gone away :)

hselasky commented 7 years ago

Hi,

Can you re-test with the latest drm-next ?

--HPS

markjdb commented 7 years ago

(I do believe this is addressed based on our email thread, but please confirm.)

nomadlogic commented 7 years ago

Looking good on my end. All set.