[Bug 275063] kernel using 100% CPU in arc_prune

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 04 Dec 2023 01:09:34 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275063

iron.udjin@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |iron.udjin@gmail.com

--- Comment #6 from iron.udjin@gmail.com ---
I hitted the same issue on 14.0-RELEASE. When I tried to restart the server,
got kernel panic in arc_prune process:

Fatal trap 12: page fault while in kernel mode 
cpuid = 7; apic id = 07 
fault virtual address   = 0x458
fault code      = supervisor read data, page not present
instruction pointer = 0x20:0xffffffff80b4e386
stack pointer           = 0x28:0xfffffe0206679d60
frame pointer           = 0x28:0xfffffe0206679e00
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     = 0 (arc_prune)
rdi: ffffffff8226f568 rsi: 0000000000000000 rdx: 0000000000000000
rcx: 0000000000000000  r8: 000000000000007e  r9: fffffe02062fd518
rax: 0000000000000000 rbx: ffffffff8226f568 rbp: fffffe0206679e00
r10: fffff8162b935800 r11: fffff8162b935c00 r12: fffffe0206380560
r13: 0000000000000000 r14: 0000000000000000 r15: 0000000000000000
trap number     = 12 
panic: page fault
cpuid = 7
time = 1701648338
KDB: stack backtrace:
#0 0xffffffff80b9002d at kdb_backtrace+0x5d
#1 0xffffffff80b43132 at vpanic+0x132
#2 0xffffffff80b42ff3 at panic+0x43
#3 0xffffffff8100c85c at trap_fatal+0x40c
#4 0xffffffff8100c8af at trap_pfault+0x4f
#5 0xffffffff80fe3828 at calltrap+0x8
#6 0xffffffff81f78fa7 at arc_prune_task+0x87
#7 0xffffffff81f76ddf at taskq_run+0x1f
#8 0xffffffff80ba5922 at taskqueue_run_locked+0x182
#9 0xffffffff80ba6bb2 at taskqueue_thread_loop+0xc2
#10 0xffffffff80afdb0f at fork_exit+0x7f
#11 0xffffffff80fe488e at fork_trampoline+0xe

__curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57
warning: Source file is more recent than executable.
57      __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcpu,
(kgdb) #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  0xffffffff80b42cc7 in kern_reboot (howto=260)
    at /usr/src/sys/kern/kern_shutdown.c:526
#3  0xffffffff80b4319f in vpanic (fmt=0xffffffff81136b3b "%s",
    ap=ap@entry=0xfffffe0206679bb0) at /usr/src/sys/kern/kern_shutdown.c:970
#4  0xffffffff80b42ff3 in panic (fmt=<unavailable>)
    at /usr/src/sys/kern/kern_shutdown.c:894
#5  0xffffffff8100c85c in trap_fatal (frame=0xfffffe0206679ca0, eva=1112)
    at /usr/src/sys/amd64/amd64/trap.c:952
#6  0xffffffff8100c8af in trap_pfault (frame=0xfffffe0206679ca0,
    usermode=false, signo=<optimized out>, ucode=<optimized out>)
    at /usr/src/sys/amd64/amd64/trap.c:760
#7  <signal handler called>
#8  _sx_xlock_hard (sx=0xffffffff8226f568 <callb_table+152>,
    x=<optimized out>, opts=opts@entry=0) at /usr/src/sys/kern/kern_sx.c:684
#9  0xffffffff81f78fa7 in __sx_xlock (td=0xfffffe0206380560, opts=0,
    file=0x0, line=0, sx=<optimized out>) at /usr/src/sys/sys/sx.h:166
#10 arc_prune_task (arg=<optimized out>)
    at /usr/src/sys/contrib/openzfs/module/os/freebsd/zfs/arc_os.c:149
#11 0xffffffff81f76ddf in taskq_run (arg=0xfffff8026e484300,
    pending=<optimized out>) 
    at /usr/src/sys/contrib/openzfs/module/os/freebsd/spl/spl_taskq.c:320
#12 0xffffffff80ba5922 in taskqueue_run_locked (
    queue=queue@entry=0xfffff8010e55ce00) 
    at /usr/src/sys/kern/subr_taskqueue.c:512
#13 0xffffffff80ba6bb2 in taskqueue_thread_loop (
    arg=arg@entry=0xfffff8011e59ba70)
    at /usr/src/sys/kern/subr_taskqueue.c:824
#14 0xffffffff80afdb0f in fork_exit (
    callout=0xffffffff80ba6af0 <taskqueue_thread_loop>,
    arg=0xfffff8011e59ba70, frame=0xfffffe0206679f40)
    at /usr/src/sys/kern/kern_fork.c:1160
#15 <signal handler called>
(kgdb)

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