kernel panic while copying files

From: Gary Jennejohn <gljennjohn_at_gmail.com>
Date: Mon, 07 Jun 2021 09:01:09 UTC
I've seen this panic three times in the last two days:

[first panic]
Unread portion of the kernel message buffer:


Fatal trap 12: page fault while in kernel mode
cpuid = 3; apic id = 03
fault virtual address   = 0x801118000
fault code              = supervisor write data, page not present
instruction pointer     = 0x20:0xffffffff808d2212
stack pointer           = 0x28:0xfffffe00dbc8c760
frame pointer           = 0x28:0xfffffe00dbc8c7a0
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         = 28 (dom0)
trap number             = 12
panic: page fault
cpuid = 3
time = 1622963058
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00dbc8c410
vpanic() at vpanic+0x181/frame 0xfffffe00dbc8c460
panic() at panic+0x43/frame 0xfffffe00dbc8c4c0
trap_fatal() at trap_fatal+0x387/frame 0xfffffe00dbc8c520
trap_pfault() at trap_pfault+0x4f/frame 0xfffffe00dbc8c580
trap() at trap+0x253/frame 0xfffffe00dbc8c690
calltrap() at calltrap+0x8/frame 0xfffffe00dbc8c690
--- trap 0xc, rip = 0xffffffff808d2212, rsp = 0xfffffe00dbc8c760, rbp = 0xfffffe00dbc8c7a0 ---
zone_release() at zone_release+0x1f2/frame 0xfffffe00dbc8c7a0
bucket_drain() at bucket_drain+0xda/frame 0xfffffe00dbc8c7d0
bucket_cache_reclaim_domain() at bucket_cache_reclaim_domain+0x30a/frame 0xfffffe00dbc8c830
zone_reclaim() at zone_reclaim+0x162/frame 0xfffffe00dbc8c880
uma_reclaim_domain() at uma_reclaim_domain+0xa2/frame 0xfffffe00dbc8c8b0
vm_pageout_worker() at vm_pageout_worker+0x41e/frame 0xfffffe00dbc8cb70
vm_pageout() at vm_pageout+0x21e/frame 0xfffffe00dbc8cbb0
fork_exit() at fork_exit+0x7e/frame 0xfffffe00dbc8cbf0
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00dbc8cbf0
--- trap 0, rip = 0, rsp = 0, rbp = 0 ---
KDB: enter: panic

__curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55
55       __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcpu,
	   pc_curthread)));

One difference was that in the second and third panics the fault virtual
address was 0x0.  But the backtrace was the same.

Relevant info from the info.x files:
Architecture: amd64
Architecture Version: 2
Version String: FreeBSD 14.0-CURRENT #33 main-n247184-1970d693039: Sat Jun
5 09:58:55 CEST 2021

CPU: AMD Ryzen 5 1600 Six-Core Processor             (3194.09-MHz K8-class CPU)
  Origin="AuthenticAMD"  Id=0x800f11  Family=0x17  Model=0x1  Stepping=1
  AMD Features=0x2e500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM>
  AMD Features2=0x35c233ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW,SKINIT,WDT,TCE,Topology,PCXC,PNXC,DBE,PL2I,MWAITX>
  AMD Extended Feature Extensions ID EBX=0x1007<CLZERO,IRPerf,XSaveErPtr,IBPB>

I have 16GiB of memory in the box.

The panic occurred while copying files from an internal SATA SSD to a
SATA 8TB disk in an external USB3 docking station.  The panic seems to
occur quite quickly, after only a few files have been copied.

swap is on a different internal disk.

I can poke around in the crash dumps with kgdb if anyone wants more
information.

-- 
Gary Jennejohn