drm-next-kmod: Fatal trap 12: page fault while in kernel mode

Yuri Pankov yuripv at yuripv.net
Mon Oct 1 13:14:10 UTC 2018


Hi,

12.0-ALPHA8 #0 r339021, drm-next-kmod 4.11.g20180822.

Getting the following panic while trying to `kldload amdgpu`:

<6>[drm] amdgpu kernel modesetting enabled.

Fatal trap 12: page fault while in kernel mode
cpuid = 6; apic id = 06
fault virtual address   = 0x0
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff80c76b84
stack pointer           = 0x28:0xfffffe00cc12f2f0
frame pointer           = 0x28:0xfffffe00cc12f2f0
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         = 11331 (kldload)

__curthread () at ./machine/pcpu.h:230
230             __asm("movq %%gs:%1,%0" : "=r" (td)
(kgdb) bt
#0  __curthread () at ./machine/pcpu.h:230
#1  doadump (textdump=0) at /usr/src/sys/kern/kern_shutdown.c:366
#2  0xffffffff8043ca9b in db_dump (dummy=<optimized out>, 
dummy2=<unavailable>, dummy3=<unavailable>, dummy4=<unavailable>)
     at /usr/src/sys/ddb/db_command.c:574
#3  0xffffffff8043c869 in db_command (last_cmdp=<optimized out>, 
cmd_table=<optimized out>, dopager=<optimized out>) at 
/usr/src/sys/ddb/db_command.c:481
#4  0xffffffff8043c5e4 in db_command_loop () at 
/usr/src/sys/ddb/db_command.c:534
#5  0xffffffff8043f7ff in db_trap (type=<optimized out>, code=<optimized 
out>) at /usr/src/sys/ddb/db_main.c:252
#6  0xffffffff80bd3f83 in kdb_trap (type=12, code=0, tf=<optimized out>) 
at /usr/src/sys/kern/subr_kdb.c:693
#7  0xffffffff8105edf1 in trap_fatal (frame=0xfffffe00cc12f230, eva=0) 
at /usr/src/sys/amd64/amd64/trap.c:921
#8  0xffffffff8105ef12 in trap_pfault (frame=0xfffffe00cc12f230, 
usermode=<optimized out>) at /usr/src/sys/amd64/amd64/trap.c:765
#9  0xffffffff8105e53a in trap (frame=0xfffffe00cc12f230) at 
/usr/src/sys/amd64/amd64/trap.c:441
#10 <signal handler called>
#11 strcmp (s1=0x0, s2=<optimized out>) at /usr/src/sys/libkern/strcmp.c:46
#12 0xffffffff80bc200e in devclass_find_driver_internal 
(classname=0xfffff80003ae7c58 "drm", dc=<optimized out>) at 
/usr/src/sys/kern/subr_bus.c:1394
#13 first_matching_driver (dc=0xfffff80003767880, dev=<optimized out>) 
at /usr/src/sys/kern/subr_bus.c:2070
#14 device_probe_child (dev=0xfffff80003ae2b00, 
child=0xfffff80003ae2900) at /usr/src/sys/kern/subr_bus.c:2116
#15 0xffffffff80bc2e68 in device_probe (dev=0xfffff80003ae2900) at 
/usr/src/sys/kern/subr_bus.c:2869
#16 0xffffffff80bc2f22 in device_probe_and_attach 
(dev=0xfffff80003ae2900) at /usr/src/sys/kern/subr_bus.c:2893
#17 0xffffffff80bc4b6d in bus_generic_driver_added 
(dev=0xfffff80003ae2b00, driver=<optimized out>) at 
/usr/src/sys/kern/subr_bus.c:3981
#18 0xffffffff80bc0eba in BUS_DRIVER_ADDED (_dev=<optimized out>, 
_driver=<optimized out>) at ./bus_if.h:210
#19 devclass_driver_added (dc=0xfffff80003767880, 
driver=0xffffffff84ae9da8 <bw_calcs_init+10104>) at 
/usr/src/sys/kern/subr_bus.c:1101
#20 0xffffffff80bc0dd9 in devclass_add_driver (dc=0xfffff80003767880, 
driver=0xffffffff84ae9da8 <bw_calcs_init+10104>, pass=2147483647,
     dcp=0xffffffff84ae9dd8 <bw_calcs_init+10152>) at 
/usr/src/sys/kern/subr_bus.c:1177
#21 0xffffffff84bb537b in acquire_i2c_hw_engine () at 
/usr/src/sys/compat/linuxkpi/common/src/linux_pci.c:279
#22 0xffffffff84b5ed21 in 
dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation 
() from /boot/modules/amdgpu.ko
#23 0x0000000000000246 in ?? ()
#24 0xffffffff81fcbde8 in w_locklistdata ()
#25 0x0000000000000000 in ?? ()
(kgdb) frame 12
#12 0xffffffff80bc200e in devclass_find_driver_internal 
(classname=0xfffff80003ae7c58 "drm", dc=<optimized out>) at 
/usr/src/sys/kern/subr_bus.c:1394
1394                    if (!strcmp(dl->driver->name, classname))
(kgdb) list
1389            driverlink_t dl;
1390
1391            PDEBUG(("%s in devclass %s", classname, DEVCLANAME(dc)));
1392
1393            TAILQ_FOREACH(dl, &dc->drivers, link) {
1394                    if (!strcmp(dl->driver->name, classname))
1395                            return (dl);
1396            }
1397
1398            PDEBUG(("not found"));

So it looks like one of the driver classes has uninitialized name?



More information about the freebsd-x11 mailing list