[Bug 278161] [panic] kernel panic on kern_munmap from awk process

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 04 Apr 2024 09:29:40 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278161

            Bug ID: 278161
           Summary: [panic] kernel panic on kern_munmap from awk process
           Product: Base System
           Version: 14.0-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: supportme@ukr.net

[ng7:~]# kgdb /usr/lib/debug/boot/kernel/kernel.debug /var/crash/vmcore.0
GNU gdb (GDB) 14.1 [GDB v14.1 for FreeBSD]
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-portbld-freebsd14.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/debug/boot/kernel/kernel.debug...

Unread portion of the kernel message buffer:


Fatal trap 12: page fault while in kernel mode
cpuid = 4; apic id = 04
fault virtual address   = 0x30
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff80986d13
stack pointer           = 0x28:0xfffffe010279abe0
frame pointer           = 0x28:0xfffffe010279ac30
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         = 41337 (awk)
rdi: ffffffff80f5cdc0 rsi: fffffe010279acd0 rdx: 0000302d4e0a1000
rcx: 000007fd78a3807f  r8: 000ffffffffff000  r9: fffffe010279acd0
rax: 0000000000000000 rbx: 0000000000000000 rbp: fffffe010279ac30
r10: 000007fffffff000 r11: 0000000000000000 r12: 0000000000000020
r13: fffff802875c7f80 r14: 0000000000000040 r15: fffff800271b1d38
trap number             = 12
panic: page fault
cpuid = 4
time = 1712172060
KDB: stack backtrace:
#0 0xffffffff80688add at kdb_backtrace+0x5d
#1 0xffffffff8063f141 at vpanic+0x131
#2 0xffffffff8063f003 at panic+0x43
#3 0xffffffff80994e7f at trap_fatal+0x40f
#4 0xffffffff80994ecf at trap_pfault+0x4f
#5 0xffffffff8096d3a8 at calltrap+0x8
#6 0xffffffff8098c9dc at pmap_remove_ptes+0xdc
#7 0xffffffff8097d972 at pmap_remove1+0x552
#8 0xffffffff808f63ff at vm_map_delete+0x1af
#9 0xffffffff808ff730 at kern_munmap+0x90
#10 0xffffffff80995729 at amd64_syscall+0x109
#11 0xffffffff8096dcbb at fast_syscall_common+0xf8
Uptime: 64d6h51m44s
Dumping 6112 out of 32712 MB:..1%..11%..21%..31%..41%..51%..61%..71%..81%..91%

Reading symbols from /boot/kernel/zfs.ko...
Reading symbols from /usr/lib/debug//boot/kernel/zfs.ko.debug...
Reading symbols from /boot/kernel/acl_nfs4.ko...
Reading symbols from /usr/lib/debug//boot/kernel/acl_nfs4.ko.debug...
Reading symbols from /boot/kernel/xdr.ko...
Reading symbols from /usr/lib/debug//boot/kernel/xdr.ko.debug...
Reading symbols from /boot/kernel/cryptodev.ko...
Reading symbols from /usr/lib/debug//boot/kernel/cryptodev.ko.debug...
Reading symbols from /boot/kernel/cpuctl.ko...
Reading symbols from /usr/lib/debug//boot/kernel/cpuctl.ko.debug...
Reading symbols from /boot/kernel/opensolaris.ko...
Reading symbols from /usr/lib/debug//boot/kernel/opensolaris.ko.debug...
Reading symbols from /boot/kernel/ipmi.ko...
Reading symbols from /usr/lib/debug//boot/kernel/ipmi.ko.debug...
Reading symbols from /boot/kernel/smbus.ko...
Reading symbols from /usr/lib/debug//boot/kernel/smbus.ko.debug...
Reading symbols from /boot/kernel/if_lagg.ko...
Reading symbols from /usr/lib/debug//boot/kernel/if_lagg.ko.debug...
Reading symbols from /boot/kernel/if_infiniband.ko...
Reading symbols from /usr/lib/debug//boot/kernel/if_infiniband.ko.debug...
Reading symbols from /boot/kernel/coretemp.ko...
Reading symbols from /usr/lib/debug//boot/kernel/coretemp.ko.debug...
Reading symbols from /boot/kernel/ichsmb.ko...
Reading symbols from /usr/lib/debug//boot/kernel/ichsmb.ko.debug...
Reading symbols from /boot/kernel/uhid.ko...
Reading symbols from /usr/lib/debug//boot/kernel/uhid.ko.debug...
Reading symbols from /boot/kernel/ums.ko...
Reading symbols from /usr/lib/debug//boot/kernel/ums.ko.debug...
Reading symbols from /boot/kernel/usbhid.ko...
Reading symbols from /usr/lib/debug//boot/kernel/usbhid.ko.debug...
Reading symbols from /boot/kernel/hidbus.ko...
--Type <RET> for more, q to quit, c to continue without paging--
Reading symbols from /usr/lib/debug//boot/kernel/hidbus.ko.debug...
Reading symbols from /boot/kernel/mac_ntpd.ko...
Reading symbols from /usr/lib/debug//boot/kernel/mac_ntpd.ko.debug...
__curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57
57              __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct
pcpu,
(kgdb) bt
#0  __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57
#1  doadump (textdump=<optimized out>) at /usr/src/sys/kern/kern_shutdown.c:405
#2  0xffffffff8063ecd7 in kern_reboot (howto=260) at
/usr/src/sys/kern/kern_shutdown.c:523
#3  0xffffffff8063f1ae in vpanic (fmt=0xffffffff80a260e3 "%s",
ap=ap@entry=0xfffffe010279aa30) at /usr/src/sys/kern/kern_shutdown.c:967
#4  0xffffffff8063f003 in panic (fmt=<unavailable>) at
/usr/src/sys/kern/kern_shutdown.c:891
#5  0xffffffff80994e7f in trap_fatal (frame=0xfffffe010279ab20, eva=48) at
/usr/src/sys/amd64/amd64/trap.c:952
#6  0xffffffff80994ecf in trap_pfault (frame=0xfffffe010279ab20,
usermode=false, signo=<optimized out>, ucode=<optimized out>) at
/usr/src/sys/amd64/amd64/trap.c:760
#7  <signal handler called>
#8  pmap_remove_pte (pmap=pmap@entry=0xfffff800271b1d38,
ptq=ptq@entry=0xfffff803f4a0c508, va=va@entry=52971140943872,
ptepde=16989077607, free=free@entry=0xfffffe010279acb0,
lockp=lockp@entry=0xfffffe010279acd0)
    at /usr/src/sys/amd64/amd64/pmap.c:6287
#9  0xffffffff8098c9dc in pmap_remove_ptes (pmap=pmap@entry=0xfffff800271b1d38,
sva=52971140943872, sva@entry=52971140415488, eva=eva@entry=52971142381568,
pde=0xfffff80016da7380, free=free@entry=0xfffffe010279acb0, 
    lockp=lockp@entry=0xfffffe010279acd0) at
/usr/src/sys/amd64/amd64/pmap.c:6352
#10 0xffffffff8097d972 in pmap_remove1 (pmap=0xfffff800271b1d38,
sva=52971140415488, eva=52971142512640, map_delete=<optimized out>) at
/usr/src/sys/amd64/amd64/pmap.c:6505
#11 0xffffffff8097dadf in pmap_map_delete (pmap=0xffffffff80f5cdc0
<vm_phys_fictitious_reg_lock>, sva=18446741879022791888, eva=52971140943872) at
/usr/src/sys/amd64/amd64/pmap.c:6539
#12 0xffffffff808f63ff in vm_map_delete (map=map@entry=0xfffff800271b1c08,
start=start@entry=52971140415488, end=end@entry=52971142512640) at
/usr/src/sys/vm/vm_map.c:4045
#13 0xffffffff808ff730 in kern_munmap (td=0xfffff800036f8000, addr0=<optimized
out>, size=<optimized out>) at /usr/src/sys/vm/vm_mmap.c:619
#14 0xffffffff80995729 in syscallenter (td=0xfffff800036f8000) at
/usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:188
#15 amd64_syscall (td=0xfffff800036f8000, traced=0) at
/usr/src/sys/amd64/amd64/trap.c:1194
#16 <signal handler called>
#17 0x00000008233b5d3a in ?? ()
Backtrace stopped: Cannot access memory at address 0x820aeeb28
(kgdb) up
#1  doadump (textdump=<optimized out>) at /usr/src/sys/kern/kern_shutdown.c:405
405             dump_savectx();
(kgdb) 
#2  0xffffffff8063ecd7 in kern_reboot (howto=260) at
/usr/src/sys/kern/kern_shutdown.c:523
523                     doadump(TRUE);
(kgdb) 
#3  0xffffffff8063f1ae in vpanic (fmt=0xffffffff80a260e3 "%s",
ap=ap@entry=0xfffffe010279aa30) at /usr/src/sys/kern/kern_shutdown.c:967
967             kern_reboot(bootopt);
(kgdb) 
#4  0xffffffff8063f003 in panic (fmt=<unavailable>) at
/usr/src/sys/kern/kern_shutdown.c:891
891             vpanic(fmt, ap);
(kgdb) 
#5  0xffffffff80994e7f in trap_fatal (frame=0xfffffe010279ab20, eva=48) at
/usr/src/sys/amd64/amd64/trap.c:952
952             panic("%s", type < nitems(trap_msg) ? trap_msg[type] :
(kgdb) p type
$27 = <optimized out>
(kgdb) l
947                     if (handled)
948                             return;
949             }
950     #endif
951             printf("trap number             = %d\n", type);
952             panic("%s", type < nitems(trap_msg) ? trap_msg[type] :
953                 "unknown/reserved trap");
954     }
955     
956     #ifdef KDTRACE_HOOKS
(kgdb) l -
937             printf("r10: %016lx r11: %016lx r12: %016lx\n", frame->tf_r10,
938                 frame->tf_r11, frame->tf_r12);
939             printf("r13: %016lx r14: %016lx r15: %016lx\n", frame->tf_r13,
940                 frame->tf_r14, frame->tf_r15);
941     
942     #ifdef KDB
943             if (debugger_on_trap) {
944                     kdb_why = KDB_WHY_TRAP;
945                     handled = kdb_trap(type, 0, frame);
946                     kdb_why = KDB_WHY_UNSET;
(kgdb) p frame
$28 = (struct trapframe *) 0xfffffe010279ab20
(kgdb) p *frame
$29 = {tf_rdi = -2131374656, tf_rsi = -2194686759728, tf_rdx = 52971140943872,
tf_rcx = 8785232101503, tf_r8 = 4503599627366400, tf_r9 = -2194686759728,
tf_rax = 0, tf_rbx = 0, tf_rbp = -2194686759888, tf_r10 = 8796093018112, 
  tf_r11 = 0, tf_r12 = 32, tf_r13 = -8785232101504, tf_r14 = 64, tf_r15 =
-8795436933832, tf_trapno = 12, tf_fs = 19, tf_gs = 27, tf_addr = 48, tf_flags
= 1, tf_es = 59, tf_ds = 59, tf_err = 0, tf_rip = -2137494253, tf_cs = 32, 
  tf_rflags = 66118, tf_rsp = -2194686759968, tf_ss = 40}
(kgdb) up
#6  0xffffffff80994ecf in trap_pfault (frame=0xfffffe010279ab20,
usermode=false, signo=<optimized out>, ucode=<optimized out>) at
/usr/src/sys/amd64/amd64/trap.c:760
760                     if (td->td_critnest != 0 ||
(kgdb) l
755                      * lock, then it is most likely a fatal kernel page
fault.
756                      * If WITNESS is enabled, then it's going to whine
about
757                      * bogus LORs with various VM locks, so just skip to
the
758                      * fatal trap handling directly.
759                      */
760                     if (td->td_critnest != 0 ||
761                         WITNESS_CHECK(WARN_SLEEPOK | WARN_GIANTOK, NULL,
762                         "Kernel page fault") != 0) {
763                             trap_fatal(frame, eva);
764                             return (-1);
(kgdb) p frame
$30 = (struct trapframe *) 0xfffffe010279ab20
(kgdb) p eva
$31 = 48
(kgdb) p td
$32 = (struct thread *) 0xfffff800036f8000
(kgdb) p *td
$33 = {td_lock = 0xfffffe0038409200, td_proc = 0xfffffe00e056c580, td_plist =
{tqe_next = 0x0, tqe_prev = 0xfffffe00e056c590}, td_runq = {tqe_next = 0x0,
tqe_prev = 0xfffffe0038409408}, {td_slpq = {tqe_next = 0x0, 
      tqe_prev = 0xfffff8039730a580}, td_zombie = 0x0}, td_lockq = {tqe_next =
0x0, tqe_prev = 0xfffffe0143d4ea58}, td_hash = {le_next = 0x0, le_prev =
0xfffffe00e00a5ec0}, td_cpuset = 0xfffff80002ae6d00, td_domain = {
    dr_policy = 0xffffffff80c01110 <domainset_firsttouch>, dr_iter = 239359},
td_sel = 0x0, td_sleepqueue = 0xfffff8039730a580, td_turnstile =
0xfffff80002e37900, td_rlqe = 0xfffff8000cd42e10, td_umtxq =
0xfffff80003700480, 
  td_tid = 100312, td_sigqueue = {sq_signals = {__bits = {0, 0, 0, 0}}, sq_kill
= {__bits = {0, 0, 0, 0}}, sq_ptrace = {__bits = {0, 0, 0, 0}}, sq_list =
{tqh_first = 0x0, tqh_last = 0xfffff800036f80d8}, sq_proc = 0xfffffe00e056c580, 
    sq_flags = 1}, td_lend_user_pri = 255 '\377', td_allocdomain = 0 '\000',
td_base_ithread_pri = 0 '\000', td_kmsan = 0x0, td_flags = 6, td_ast = 0,
td_inhibitors = 0, td_pflags = 0, td_pflags2 = 0, td_dupfd = 0, td_sqqueue = 0, 
  td_wchan = 0x0, td_wmesg = 0x0, td_owepreempt = 0 '\000', td_tsqueue = 0
'\000', td_stopsched = 1 '\001', td_locks = 0, td_rw_rlocks = 0, td_sx_slocks =
0, td_lk_slocks = 0, td_blocked = 0x0, td_lockname = 0x0, td_contested = {
    lh_first = 0x0}, td_sleeplocks = 0x0, td_intr_nesting_level = 0, td_pinned
= 1, td_realucred = 0xfffff8036a565800, td_ucred = 0xfffff8036a565800, td_limit
= 0xfffff803d5a6f500, td_slptick = 0, td_blktick = 0, 
  td_swvoltick = -888747322, td_swinvoltick = 0, td_cow = 28, td_ru = {ru_utime
= {tv_sec = 0, tv_usec = 0}, ru_stime = {tv_sec = 0, tv_usec = 0}, ru_maxrss =
0, ru_ixrss = 0, ru_idrss = 0, ru_isrss = 0, ru_minflt = 65, ru_majflt = 0, 
    ru_nswap = 0, ru_inblock = 0, ru_oublock = 0, ru_msgsnd = 0, ru_msgrcv = 0,
ru_nsignals = 0, ru_nvcsw = 1, ru_nivcsw = 0}, td_rux = {rux_runtime = 0,
rux_uticks = 0, rux_sticks = 0, rux_iticks = 0, rux_uu = 0, rux_su = 0, 
    rux_tu = 0}, td_incruntime = 562220, td_runtime = 562220, td_pticks = 0,
td_sticks = 0, td_iticks = 0, td_uticks = 0, td_intrval = 0, td_oldsigmask =
{__bits = {0, 0, 0, 0}}, td_generation = 1, td_sigstk = {ss_sp = 0x0, ss_size =
0, 
    ss_flags = 4}, td_xsig = 0, td_profil_addr = 0, td_profil_ticks = 0,
td_name = "awk", '\000' <repeats 16 times>, td_fpop = 0x0, td_dbgflags = 0,
td_si = {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 = 0}, _timer =
{_timerid = 0, _overrun = 0}, _mesgq = {_mqd = 0}, _poll = {_band = 0}, 
      _capsicum = {_syscall = 0}, __spare__ = {__spare1__ = 0, __spare2__ = {0,
0, 0, 0, 0, 0, 0}}}}, td_ng_outbound = 0, td_osd = {osd_nslots = 0, osd_slots =
0x0, osd_next = {le_next = 0x0, le_prev = 0x0}}, td_map_def_user = 0x0, 
  td_dbg_forked = 0, td_vp_reserved = 0x0, td_no_sleeping = 0, td_su = 0x0,
td_sleeptimo = 0, td_rtcgen = 0, td_errno = 0, td_vslock_sz = 0, td_kcov_info =
0x0, td_ucredref = -9, td_sigmask = {__bits = {0, 0, 0, 0}}, 
  td_rqindex = 25 '\031', td_base_pri = 52 '4', td_priority = 52 '4',
td_pri_class = 3 '\003', td_user_pri = 100 'd', td_base_user_pri = 100 'd',
td_rb_list = 0, td_rbp_list = 0, td_rb_inact = 0, td_sa = {code = 73,
original_code = 73, 
    callp = 0xffffffff80c486b0 <sysent+2336>, args = {52971140415488, 2097152,
3, 2097151, 0, 0, 0, 0}}, td_sigblock_ptr = 0x5594989a4910, td_sigblock_val =
0, td_pcb = 0xfffff800036f8520, td_state = TDS_RUNNING, td_uretoff = {
    tdu_retval = {0, 3}, tdu_off = 0}, td_cowgen = 0, td_slpcallout = {c_links
= {le = {le_next = 0x0, le_prev = 0xfffffe003843cb20}, sle = {sle_next = 0x0},
tqe = {tqe_next = 0x0, tqe_prev = 0xfffffe003843cb20}}, 
    c_time = 23856685301620388, c_precision = 80530631250, c_arg =
0xfffff800036f8000, c_func = 0xffffffff806988b0 <sleepq_timeout>, c_lock = 0x0,
c_flags = 0, c_iflags = 272, c_cpu = 0}, td_frame = 0xfffffe010279af40, 
  td_kstack = 18446741879022776320, td_kstack_pages = 4, td_critnest = 1, td_md
= {md_spinlock_count = 1, md_saved_flags = 582, md_spurflt_addr =
47518932344832, md_invl_gen = {gen = 6283878933, {link = {le_next = 0x0,
le_prev = 0x64}, {
          next = 0x0, saved_pri = 100 'd'}}}, md_efirt_tmp = 0, md_efirt_dis_pf
= 0, md_pcb = {pcb_r15 = -2131742328, pcb_r14 = -2198079557120, pcb_r13 =
-8796049711104, pcb_r12 = -2141217104, pcb_rbp = 0, pcb_rsp = -2194686759112, 
      pcb_rbx = -8796035383296, pcb_rip = -2137594880, pcb_fsbase = 0,
pcb_gsbase = 0, pcb_kgsbase = 0, pcb_cr0 = 0, pcb_cr2 = 0, pcb_cr3 = 0, pcb_cr4
= 0, pcb_dr0 = 0, pcb_dr1 = 0, pcb_dr2 = 0, pcb_dr3 = 0, pcb_dr6 = 0, pcb_dr7 =
0, 
      pcb_gdt = {rd_limit = 0, rd_base = 0}, pcb_idt = {rd_limit = 0, rd_base =
0}, pcb_ldt = {rd_limit = 0, rd_base = 0}, pcb_tr = 0, pcb_flags = 24,
pcb_initial_fpucw = 895, pcb_onfault = 0x0, pcb_saved_ucr3 = 0, pcb_tssp = 0x0, 
      pcb_efer = 0, pcb_star = 0, pcb_lstar = 0, pcb_cstar = 0, pcb_sfmask = 0,
pcb_save = 0xfffffe0105e94380, pcb_pad = {0, 0, 0, 0, 0}}, md_stack_base =
18446741879022792704, md_usr_fpu_save = 0xfffffe0105e94380}, td_ar = 0x0, 
  td_lprof = {{lh_first = 0x0}, {lh_first = 0x0}}, td_dtrace =
0xfffff8000c970b00, td_vnet = 0x0, td_vnet_lpush = 0x0, td_intr_frame = 0x0,
td_rfppwait_p = 0xfffffe01401b5000, td_ma = 0x0, td_ma_cnt = 0, td_emuldata =
0x0, 
  td_lastcpu = 4, td_oncpu = 4, td_lkpi_task = 0x0, td_pmcpend = 0,
td_remotereq = 0x0, td_ktr_io_lim = 0}
(kgdb) up
#7  <signal handler called>
(kgdb) up
#8  pmap_remove_pte (pmap=pmap@entry=0xfffff800271b1d38,
ptq=ptq@entry=0xfffff803f4a0c508, va=va@entry=52971140943872,
ptepde=16989077607, free=free@entry=0xfffffe010279acb0,
lockp=lockp@entry=0xfffffe010279acd0)
    at /usr/src/sys/amd64/amd64/pmap.c:6287
6287                    CHANGE_PV_LIST_LOCK_TO_VM_PAGE(lockp, m);
(kgdb) p m
$34 = (vm_page_t) 0x0
(kgdb) p lockp
$35 = (struct rwlock **) 0xfffffe010279acd0
(kgdb) p *lockp
$36 = (struct rwlock *) 0x0
(kgdb) l
6282                    m = PHYS_TO_VM_PAGE(oldpte & PG_FRAME);
6283                    if ((oldpte & (PG_M | PG_RW)) == (PG_M | PG_RW))
6284                            vm_page_dirty(m);
6285                    if (oldpte & PG_A)
6286                            vm_page_aflag_set(m, PGA_REFERENCED);
6287                    CHANGE_PV_LIST_LOCK_TO_VM_PAGE(lockp, m);
6288                    pmap_pvh_free(&m->md, pmap, va);
6289                    if (TAILQ_EMPTY(&m->md.pv_list) &&
6290                        (m->flags & PG_FICTITIOUS) == 0) {
6291                            pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m));
(kgdb) p oldpte
$37 = 18446735288477450112
(kgdb) l -
6272            PG_A = pmap_accessed_bit(pmap);
6273            PG_M = pmap_modified_bit(pmap);
6274            PG_RW = pmap_rw_bit(pmap);
6275    
6276            PMAP_LOCK_ASSERT(pmap, MA_OWNED);
6277            oldpte = pte_load_clear(ptq);
6278            if (oldpte & PG_W)
6279                    pmap->pm_stats.wired_count -= 1;
6280            pmap_resident_count_adj(pmap, -1);
6281            if (oldpte & PG_MANAGED) {
(kgdb) p pmap
$38 = (pmap_t) 0xfffff800271b1d38
(kgdb) p *pmap
$39 = {pm_mtx = {lock_object = {lo_name = 0xffffffff80a4bc2c "pmap", lo_flags =
21168128, lo_data = 0, lo_witness = 0x0}, mtx_lock = 18446735277674168320},
pm_pmltop = 0xfffff802b9d05000, pm_pmltopu = 0x0, pm_cr3 = 11707371520, 
  pm_ucr3 = 18446744073709551615, pm_pvchunk = {tqh_first = 0xfffff806412fb000,
tqh_last = 0xfffff807d1faf008}, pm_active = {__bits = {16, 0 <repeats 15
times>}}, pm_type = PT_X86, pm_stats = {resident_count = 524, wired_count =
-1}, 
  pm_root = {rt_root = 0x1}, pm_eptgen = 0, pm_eptsmr = 0x0, pm_flags = 256,
pm_pcidp = 0xfffffe015e1c6108, pm_pkru = {rs_trie = {pt_root = 0x0},
rs_dup_data = 0x0, rs_free_data = 0x0, rs_data_ctx = 0x0, rs_alloc_flags = 0}}
(kgdb) p ptq
$40 = (pt_entry_t *) 0xfffff803f4a0c508
(kgdb) p *ptq
Cannot access memory at address 0xfffff803f4a0c508
(kgdb) up
#9  0xffffffff8098c9dc in pmap_remove_ptes (pmap=pmap@entry=0xfffff800271b1d38,
sva=52971140943872, sva@entry=52971140415488, eva=eva@entry=52971142381568,
pde=0xfffff80016da7380, free=free@entry=0xfffffe010279acb0, 
    lockp=lockp@entry=0xfffffe010279acd0) at
/usr/src/sys/amd64/amd64/pmap.c:6352
6352                    if (pmap_remove_pte(pmap, pte, sva, *pde, free, lockp))
{
(kgdb) p pmap
$41 = (pmap_t) 0xfffff800271b1d38
(kgdb) p pte
$42 = (pt_entry_t *) 0xfffff803f4a0c508
(kgdb) p sva
$43 = 52971140943872
(kgdb) p *pde
Cannot access memory at address 0xfffff80016da7380
(kgdb) p free
$44 = (struct spglist *) 0xfffffe010279acb0
(kgdb) p *free
$45 = {slh_first = 0x0}
(kgdb) p lockp
$46 = (struct rwlock **) 0xfffffe010279acd0
(kgdb) l
6347                    }
6348                    if ((*pte & PG_G) == 0)
6349                            anyvalid = true;
6350                    else if (va == eva)
6351                            va = sva;
6352                    if (pmap_remove_pte(pmap, pte, sva, *pde, free, lockp))
{
6353                            sva += PAGE_SIZE;
6354                            break;
6355                    }
6356            }
(kgdb) up
#10 0xffffffff8097d972 in pmap_remove1 (pmap=0xfffff800271b1d38,
sva=52971140415488, eva=52971142512640, map_delete=<optimized out>) at
/usr/src/sys/amd64/amd64/pmap.c:6505
6505                    if (pmap_remove_ptes(pmap, sva, va_next, pde, &free,
&lock))
(kgdb) l
6500                     * range being removed.
6501                     */
6502                    if (va_next > eva)
6503                            va_next = eva;
6504    
6505                    if (pmap_remove_ptes(pmap, sva, va_next, pde, &free,
&lock))
6506                            anyvalid = 1;
6507            }
6508            if (lock != NULL)
6509                    rw_wunlock(lock);
(kgdb) p pmap
$47 = (pmap_t) 0xfffff800271b1d38
(kgdb) p sva
$48 = 52971140415488
(kgdb) p va_next
$49 = 52971142381568
(kgdb) p pde
$50 = <optimized out>
(kgdb) p &free
$51 = (struct spglist *) 0xfffffe010279acb0
(kgdb) p &lock
$52 = (struct rwlock **) 0xfffffe010279acd0
(kgdb) up
#11 0xffffffff8097dadf in pmap_map_delete (pmap=0xffffffff80f5cdc0
<vm_phys_fictitious_reg_lock>, sva=18446741879022791888, eva=52971140943872) at
/usr/src/sys/amd64/amd64/pmap.c:6539
6539            pmap_remove1(pmap, sva, eva, true);
(kgdb) l
6534     *      of a logical mapping.
6535     */
6536    void
6537    pmap_map_delete(pmap_t pmap, vm_offset_t sva, vm_offset_t eva)
6538    {
6539            pmap_remove1(pmap, sva, eva, true);
6540    }
6541    
6542    /*
6543     *      Routine:        pmap_remove_all
(kgdb) p pmap
$53 = (pmap_t) 0xffffffff80f5cdc0 <vm_phys_fictitious_reg_lock>
(kgdb) p sva
$54 = 18446741879022791888
(kgdb) p eva
$55 = 52971140943872
(kgdb) up
#12 0xffffffff808f63ff in vm_map_delete (map=map@entry=0xfffff800271b1c08,
start=start@entry=52971140415488, end=end@entry=52971142512640) at
/usr/src/sys/vm/vm_map.c:4045
4045                            pmap_map_delete(map->pmap, entry->start,
entry->end);
(kgdb) l
4040                     * mappings could exist.  For instance, it does not
4041                     * make sense to call pmap_remove() for guard entries.
4042                     */
4043                    if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) != 0 ||
4044                        entry->object.vm_object != NULL)
4045                            pmap_map_delete(map->pmap, entry->start,
entry->end);
4046    
4047                    if (entry->end == map->anon_loc)
4048                            map->anon_loc = entry->start;
4049    
(kgdb) p entry
$56 = <optimized out>
(kgdb) up
#13 0xffffffff808ff730 in kern_munmap (td=0xfffff800036f8000, addr0=<optimized
out>, size=<optimized out>) at /usr/src/sys/vm/vm_mmap.c:619
619             rv = vm_map_delete(map, addr, end);
(kgdb) l
614                                     }
615                             }
616                     }
617             }
618     #endif
619             rv = vm_map_delete(map, addr, end);
620     
621     #ifdef HWPMC_HOOKS
622             if (rv == KERN_SUCCESS && __predict_false(pmc_handled)) {
623                     /* downgrade the lock to prevent a LOR with the pmc-sx
lock */
(kgdb) p map
$57 = (vm_map_t) 0xfffff800271b1c08
(kgdb) p addr
$58 = 52971140415488
(kgdb) p end
$59 = 52971142512640
(kgdb) up
#14 0xffffffff80995729 in syscallenter (td=0xfffff800036f8000) at
/usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:188
188                     error = (se->sy_call)(td, sa->args);
(kgdb) l
183     #endif
184     
185                     if (!sy_thr_static)
186                             syscall_thread_exit(td, se);
187             } else {
188                     error = (se->sy_call)(td, sa->args);
189                     /* Save the latest error return value. */
190                     if (__predict_false((td->td_pflags & TDP_NERRNO) != 0))
191                             td->td_pflags &= ~TDP_NERRNO;
192                     else
(kgdb) p se
$60 = (struct sysent *) 0xffffffff80c486b0 <sysent+2336>
(kgdb) p *se
$61 = {sy_call = 0xffffffff808ff680 <sys_munmap>, sy_systrace_args_func = 0x0,
sy_narg = 2 '\002', sy_flags = 1 '\001', sy_auevent = 213, sy_entry = 0,
sy_return = 0, sy_thrcnt = 1}
(kgdb) p td
$62 = (struct thread *) 0xfffff800036f8000
(kgdb) p sa
$63 = <optimized out>

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