Bug 280351 - siftr.ko load/unload caused Fatal trap 12: page fault while in kernel mode
Summary: siftr.ko load/unload caused Fatal trap 12: page fault while in kernel mode
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Only Me
Assignee: Kristof Provost
URL:
Keywords: crash
Depends on:
Blocks:
 
Reported: 2024-07-18 19:43 UTC by Cheng Cui
Modified: 2024-08-29 15:30 UTC (History)
3 users (show)

See Also:
linimon: mfc-stable14?


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cheng Cui freebsd_committer freebsd_triage 2024-07-18 19:43:13 UTC
Can reliably hit this panic with the following reproduce method in a Virtual Machine(VM) under Bhyve. I suspect it has something to do with commit d79a9edb5ce1, so I add the Author: Mitchell Horne in this bug report.

root@n1fbsd:~ # kldload siftr

Statistical Information For TCP Research (SIFTR) 1.3.0
          http://caia.swin.edu.au/urp/newtcp

root@n1fbsd:~ # kldstat
Id Refs Address                Size Name
 1    5 0xffffffff80200000  1d66830 kernel
 2    1 0xffffffff82610000     3e70 siftr.ko
 3    1 0xffffffff82614000     3230 alq.ko
root@n1fbsd:~ # kldunload siftr
root@n1fbsd:~ # kldstat
Id Refs Address                Size Name
 1    1 0xffffffff80200000  1d66830 kernel
root@n1fbsd:~ # reboot
Connection to n1fbsd closed by remote host.
Connection to n1fbsd closed.

The kernel is rebuilt and is running on top of commit 9207f9d206a4. The panic message from console is like below, and it keeps panicing in loop if reboot from console.

login: Jul 18 15:33:15 n1fbsd reboot[874]: rebooted by root
Jul 18 15:33:15 n1fbsd syslogd: exiting on signal 15
Waiting (max 60 seconds) for system process `vnlru' to stop... done


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address	= 0xffffffff82611680
fault code		= supervisor read instruction, page not present
instruction pointer	= 0x20:0xffffffff82611680
stack pointer	        = 0x28:0xfffffe007db94d78
frame pointer	        = 0x28:0xfffffe007db94db0
code segment		= base rx0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags	= interrupt enabled, resume, IOPL = 0
current process		= 874 (reboot)
rdi: 0000000000000000 rsi: 0000000000000000 rdx: ffffffff81a4b3f8
rcx: 0000000000000000  r8: 0000000000000000  r9: 0000000000010000
rax: 0000000000000000 rbx: 0000000000000000 rbp: fffffe007db94db0
r10: 0000000000000001 r11: 0000000000010000 r12: fffff80007370240
r13: fffffe000d4f8000 r14: fffff800030ee4a8 r15: fffff800030ee480
trap number		= 12
panic: page fault
cpuid = 0
time = 1721331200
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe007db94a40
vpanic() at vpanic+0x13f/frame 0xfffffe007db94b70
panic() at panic+0x43/frame 0xfffffe007db94bd0
trap_fatal() at trap_fatal+0x40f/frame 0xfffffe007db94c30
trap_pfault() at trap_pfault+0xae/frame 0xfffffe007db94ca0
calltrap() at calltrap+0x8/frame 0xfffffe007db94ca0
--- trap 0xc, rip = 0xffffffff82611680, rsp = 0xfffffe007db94d78, rbp = 0xfffffe007db94db0 ---
_end() at 0xffffffff82611680/frame 0xfffffe007db94db0
sys_reboot() at sys_reboot+0x3a9/frame 0xfffffe007db94e00
amd64_syscall() at amd64_syscall+0x15c/frame 0xfffffe007db94f30
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe007db94f30
--- syscall (55, FreeBSD ELF64, reboot), rip = 0x3c0f272a7d1a, rsp = 0x3c0f26819248, rbp = 0x3c0f26819c60 ---
KDB: enter: panic
[ thread pid 874 tid 100186 ]
Stopped at      kdb_enter+0x33: movq    $0,0xe4b992(%rip)
db>
Comment 1 commit-hook freebsd_committer freebsd_triage 2024-07-19 08:11:02 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=fb05f761ac0b28b03eb057e36fe118f007d43d73

commit fb05f761ac0b28b03eb057e36fe118f007d43d73
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2024-07-19 06:08:14 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2024-07-19 06:09:58 +0000

    siftr: remove the shutdown_pre_sync event handler on unload

    PR:             280351
    MFC after:      2 weeks

 sys/netinet/siftr.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
Comment 2 Cheng Cui freebsd_committer freebsd_triage 2024-07-19 13:43:46 UTC
(In reply to commit-hook from comment #1)

After sync-up with the above commit fb05f761ac0b28b03eb057e36fe118f007d43d73, the problem can no longer be reproduced.

Thanks for the fix!
Comment 3 Mark Linimon freebsd_committer freebsd_triage 2024-07-20 09:17:28 UTC
^Triage: assign to committer.
Comment 4 commit-hook freebsd_committer freebsd_triage 2024-08-02 16:39:59 UTC
A commit in branch stable/14 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=c1f711fd359f41f9cdb18dd7a02d1fb0ce8866a2

commit c1f711fd359f41f9cdb18dd7a02d1fb0ce8866a2
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2024-07-19 06:08:14 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2024-08-02 07:30:38 +0000

    siftr: remove the shutdown_pre_sync event handler on unload

    PR:             280351
    MFC after:      2 weeks

    (cherry picked from commit fb05f761ac0b28b03eb057e36fe118f007d43d73)

 sys/netinet/siftr.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
Comment 5 commit-hook freebsd_committer freebsd_triage 2024-08-02 16:40:00 UTC
A commit in branch stable/13 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=8448df88fdb4ed880b43e3fe91691d37b3940fe8

commit 8448df88fdb4ed880b43e3fe91691d37b3940fe8
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2024-07-19 06:08:14 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2024-08-02 07:30:41 +0000

    siftr: remove the shutdown_pre_sync event handler on unload

    PR:             280351
    MFC after:      2 weeks

    (cherry picked from commit fb05f761ac0b28b03eb057e36fe118f007d43d73)

 sys/netinet/siftr.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)