[Bug 294798] drm-latest: panic when starting KDE wayland : panic: pctrie_iter_insert_lookup: key 80 is already present

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 26 Apr 2026 03:44:37 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294798

            Bug ID: 294798
           Summary: drm-latest: panic when starting KDE wayland : panic:
                    pctrie_iter_insert_lookup: key 80 is already present
           Product: Base System
           Version: Unspecified
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: henry.hu.sh@gmail.com

I recently updated to the latest snapshot kernel & base using pkgbase:
FreeBSD vita.local 15.1-PRERELEASE FreeBSD 15.1-PRERELEASE
stable/15-n283327-f9d4517b53bf GENERIC amd64

then installed nvidia-drm-latest-kmod-580 and drm-latest-kmod from ports. Then,
when I try to start KDE wayland, I get this panic:

panic: pctrie_iter_insert_lookup: key 80 is already present

(kgdb) #0  __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57
        td = <optimized out>
#1  doadump (textdump=<optimized out>) at /usr/src/sys/kern/kern_shutdown.c:399
        error = 0
        coredump = <optimized out>
#2  0xffffffff80b7fe99 in kern_reboot (howto=260)
    at /usr/src/sys/kern/kern_shutdown.c:519
        once = 0
#3  0xffffffff80b803a7 in vpanic (
    fmt=0xffffffff8127b02b "%s: key %jx is already present", 
    ap=ap@entry=0xfffffe021bb67a10) at /usr/src/sys/kern/kern_shutdown.c:974
        buf = "pctrie_iter_insert_lookup: key 80 is already present", '\000'
<repeats 203 times>
        __pc = 0x0
        __pc = 0x0
        __pc = 0x0
        other_cpus = {__bits = {267911167, 0 <repeats 15 times>}}
        td = 0xfffff80a01697000
        bootopt = <unavailable>
        newpanic = <optimized out>
#4  0xffffffff80b801d3 in panic (fmt=<unavailable>)
    at /usr/src/sys/kern/kern_shutdown.c:887
        ap = {{gp_offset = 24, fp_offset = 48, 
            overflow_arg_area = 0xfffffe021bb67a40, 
            reg_save_area = 0xfffffe021bb679e0}}
#5  0xffffffff80bd4d38 in pctrie_iter_insert_lookup (
    it=it@entry=0xffffffff80f370f2 <vm_page_iter_insert+50>, 
    val=val@entry=0xfffffe003881bc20) at /usr/src/sys/kern/subr_pctrie.c:458
        found = <optimized out>
        res = 0x0
#6  0xffffffff80f370f2 in VM_RADIX_PCTRIE_ITER_INSERT (it=0xfffffe021bb67c18, 
    ptr=0xfffffe003881bc08) at /usr/src/sys/vm/vm_radix.h:59
        val = 0xfffffe003881bc20
        parentp = <optimized out>
#7  vm_radix_iter_insert (pages=0xfffffe021bb67c18, page=0xfffffe003881bc08)
    at /usr/src/sys/vm/vm_radix.h:79
No locals.
#8  vm_page_insert_lookup (m=m@entry=0xfffffe003881bc08, 
    object=0xfffff80a016ef3c0, object@entry=0xfffffe021bb67c18, 
    pindex=<unavailable>, iter=true, pages=<unavailable>, 
    pages@entry=0xffffffff80f370f2 <vm_page_iter_insert+50>)
    at /usr/src/sys/vm/vm_page.c:1515
        error = <optimized out>
#9  vm_page_iter_insert (m=m@entry=0xfffffe003881bc08, 
    object=object@entry=0xfffff80a016ef3c0, pindex=<unavailable>, 
    pages=<unavailable>, pages@entry=0xfffffe021bb67c18)
    at /usr/src/sys/vm/vm_page.c:1556
No locals.
#10 0xffffffff80f37b31 in vm_page_alloc_domain_iter (
    object=object@entry=0xfffff80a016ef3c0, pindex=pindex@entry=128, 
    domain=<optimized out>, req=32768, pages=pages@entry=0xfffffe021bb67c18)
    at /usr/src/sys/vm/vm_page.c:2200
        flags = <optimized out>
        m = 0xfffffe003881bc08
        vmd = <optimized out>
#11 0xffffffff80f37814 in vm_page_alloc_iter (object=0xfffff80a016ef3c0, 
    pindex=128, req=32768, pages=pages@entry=0xfffffe021bb67c18)
    at /usr/src/sys/vm/vm_page.c:2030
        di = {di_domain = 0xffffffff81800120 <domainset_firsttouch>, 
          di_iter = 0xfffff80a01697070, di_valid_mask = {__bits = {1}}, 
          di_remain_mask = {__bits = {0}}, di_min_mask = {__bits = {0}}, 
          di_offset = 1, di_flags = 0, di_policy = 2, di_minskip = true}
        domain = 0
        m = <optimized out>
#12 0xffffffff80f1edcd in vm_fault_allocate (fs=fs@entry=0xfffffe021bb67c80, 
    pages=pages@entry=0xfffffe021bb67c18) at /usr/src/sys/vm/vm_fault.c:1363
        res = <optimized out>
        dset = 0xffffffff81800120 <domainset_firsttouch>
#13 0xffffffff80f1d633 in vm_fault_object (fs=0xfffffe021bb67c80, 
    behindp=0xfffffe021bb67c64, aheadp=0xfffffe021bb67c78)
    at /usr/src/sys/vm/vm_fault.c:1633
        pages = {ptree = 0xfffff80a016ef408, node = 0xfffff809dc289e40, 
          index = 128, limit = 0}
        res = <optimized out>
        dead = <optimized out>
        _v = <optimized out>
        _v = <optimized out>
        _v = <optimized out>
        _tid = <optimized out>
        _v = <optimized out>
#14 vm_fault (map=<optimized out>, vaddr=38107873280, fault_type=2 '\002', 
    fault_flags=<optimized out>, m_hold=m_hold@entry=0x0)
    at /usr/src/sys/vm/vm_fault.c:1791
        pages = {ptree = 0xffffffff81bcdb40 <umtxq_chains+28320>, node = 0x0, 
          index = 18446744071591222080, limit = 0}
        ahead = 2
        behind = 13
        fs = {vaddr = 38107873280, m_hold = 0x0, fault_type = 2 '\002', 
          prot = <optimized out>, fault_flags = 0, wired = 0, 
          oom_start_time = {tv_sec = -8755979584768, tv_usec = 2147585564}, 
          oom_started = false, nera = -1, can_read_lock = true, m_cow = 0x0, 
          object = 0xfffff80a016ef3c0, pindex = 128, m = 0x0, 
          m_needs_zeroing = true, first_object = 0xfffff80a016ef3c0, 
          first_pindex = 128, first_m = 0x0, map = 0xfffff80028071248, 
          entry = 0xfffff80a33afb2a0, map_generation = 3334, 
          lookup_still_valid = true, vp = 0x0}
        faultcount = <optimized out>
        hardfault = <optimized out>
        rv = <optimized out>
        res = <optimized out>
        res_next = <optimized out>
#15 0xffffffff80f1d18d in vm_fault_trap (map=<optimized out>, 
    vaddr=<optimized out>, fault_type=<optimized out>, 
    fault_flags=fault_flags@entry=0, signo=0xfffffe021bb67f00, 
    ucode=0xfffffe021bb67f04) at /usr/src/sys/vm/vm_fault.c:753
        result = <optimized out>
#16 0xffffffff81091e4c in trap_pfault (frame=frame@entry=0xfffffe021bb67f40, 
    usermode=true, signo=<unavailable>, signo@entry=0xfffffe021bb67f00, 
    ucode=<unavailable>, ucode@entry=0xfffffe021bb67f04)
    at /usr/src/sys/amd64/amd64/trap.c:916
        __pc = 0x0
        __pc = 0x0
        __pc = 0x0
        td = 0xfffff80a01697000
        p = <optimized out>
        eva = <unavailable>
        map = <unavailable>
        ftype = <unavailable>
        rv = <optimized out>
#17 0xffffffff81091461 in trap (frame=<optimized out>)
    at /usr/src/sys/amd64/amd64/trap.c:472
        __pc = 0x0
        __pc = 0x0
        __pc = 0x0
        ksi = {ksi_link = {tqe_next = 0x0, tqe_prev = 0x0}, ksi_info = {
            si_signo = 0, si_errno = 0, si_code = 0, si_pid = 0, si_uid = 0, 
            si_status = 0, si_addr = 0x0, si_value = {sival_int = 0, 
              sival_ptr = 0x0, sigval_int = 0, sigval_ptr = 0x0}, _reason = {
              _fault = {_trapno = -1615724928}, _timer = {
                _timerid = -1615724928, _overrun = 8}, _mesgq = {
                _mqd = -1615724928}, _poll = {_band = 37038980736}, 
              _capsicum = {_syscall = -1615724928}, __spare__ = {
                __spare1__ = 37038980736, __spare2__ = {1, 0, 4, 0, 64, 0, 
                  -546890496}}}}, ksi_flags = -1615725104, 
          ksi_sigq = 0xffffffff81069c73 <Xinvlop+179>}
        signo = 519
        ucode = 0
        td = 0xfffff80a01697000
        p = 0xfffffe01ff304ab0
        dr6 = 0
        type = 12
        addr = 36591146712
        pf = <optimized out>
        i = <optimized out>

Now I've switched to nvidia-drm-66-kmod-580 and drm-66-kmod, and it works fine.

-- 
You are receiving this mail because:
You are the assignee for the bug.