Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Aug 2020 23:19:26 +0100
From:      Alexandre Levy <a13xlevy@gmail.com>
To:        freebsd-current@freebsd.org
Subject:   Kernel crash during video transcoding
Message-ID:  <CAEWSB323c2zapSG30OS5T30Wd_bpT=7NbvrPtsyQDRRHQUf7qA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hi,

I installed the port drm-devel-kmod for Plex to be able to transcode videos
using the integrated GPU of my Intel Celeron G5900.

I'm running r364031 and the kernel is compiled with GENERIC-NODEBUG profile.

Transcoding has been working fine for quite a while now but one video
transcoding is causing a kernel panic that is reproducible all the time
with that particular video. It seems like it's caused by the i915kms module
(call of i915_gms_fault() in the stack) :

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0xdf
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff80bdd2b4
stack pointer           = 0x0:0xfffffe00d2be56d0
frame pointer           = 0x0:0xfffffe00d2be56d0
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 4611 (Plex Transcoder)
trap number             = 12
panic: page fault
cpuid = 0
time = 1596976796
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame
0xfffffe00d2be5390
vpanic() at vpanic+0x182/frame 0xfffffe00d2be53e0
panic() at panic+0x43/frame 0xfffffe00d2be5440
trap_fatal() at trap_fatal+0x387/frame 0xfffffe00d2be54a0
trap_pfault() at trap_pfault+0x4f/frame 0xfffffe00d2be54f0
trap() at trap+0x271/frame 0xfffffe00d2be5600
calltrap() at calltrap+0x8/frame 0xfffffe00d2be5600
--- trap 0xc, rip = 0xffffffff80bdd2b4, rsp = 0xfffffe00d2be56d0, rbp =
0xfffffe00d2be56d0 ---
_rw_wowned() at _rw_wowned+0x4/frame 0xfffffe00d2be56d0
vm_page_busy_acquire() at vm_page_busy_acquire+0x141/frame
0xfffffe00d2be5710
remap_io_mapping() at remap_io_mapping+0x120/frame 0xfffffe00d2be5760
i915_gem_fault() at i915_gem_fault+0x25f/frame 0xfffffe00d2be57d0
linux_cdev_pager_populate() at linux_cdev_pager_populate+0x11b/frame
0xfffffe00d2be5840
vm_fault() at vm_fault+0x3d1/frame 0xfffffe00d2be5950
vm_fault_trap() at vm_fault_trap+0x60/frame 0xfffffe00d2be5990
trap_pfault() at trap_pfault+0x19c/frame 0xfffffe00d2be59e0
trap() at trap+0x3f1/frame 0xfffffe00d2be5af0
calltrap() at calltrap+0x8/frame 0xfffffe00d2be5af0
--- trap 0xc, rip = 0x80296659a, rsp = 0x7fffffffbd38, rbp = 0x80fc00000 ---
KDB: enter: panic

I don't see any crash dump in /var/crash despite having the right
configuration and I should have enough space on my swap device (128GB USB
drive) :

$ cat /etc/rc.conf | grep dump
dumpdev="AUTO"

$ swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/gpt/crash0 121307096        0 121307096     0%

$ cat /etc/fstab
/dev/gpt/crash0 none    swap    sw              0       0

$ dumpon -l
gpt/crash0

Not sure why no dump was generated, is it because the kernel was compiled
with the GENERIC-NODEBUG profile ? However I see various KDB options in the
GENERIC profile that are inherited by GENERIC-NODEBUG.

Happy to recompile the kernel with GENERIC profile if it's required.

Thank you.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAEWSB323c2zapSG30OS5T30Wd_bpT=7NbvrPtsyQDRRHQUf7qA>