[Bug 268699] vtnet: page faults under high bandwidth load
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 268699] vtnet: page faults under high bandwidth load"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 268699] vtnet: page faults under high bandwidth load"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 268699] vtnet: page faults under high bandwidth load"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 268699] vtnet: page faults under high bandwidth load"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 268699] vtnet: page faults under high bandwidth load"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 268699] vtnet: page faults under high bandwidth load"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 268699] vtnet: page faults under high bandwidth load"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 02 Jan 2023 00:52:50 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268699 Bug ID: 268699 Summary: vtnet: page faults under high bandwidth load Product: Base System Version: 13.1-RELEASE Hardware: amd64 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: nc@FreeBSD.org I run three high-bandwidth Tor exit relay on FreeBSD 13.1-RELEASE, in KVM VPSes at BuyVM.net and AlienData.com (and more at other non-KVM hosts), namely 4GB RAM, dedicated CPU core AMD Ryzen VPS services (sort of virtual dedicated servers). Using the vtnet Ethernet adapter, I frequently get page faults like this, especially if I consistently push ~250-300 Mbps of traffic for a few days. Full page fault attached. Fatal trap 12: page fault while in kernel mode cpuid = 0; apic id = 00 fault virtual address = 0x8 fault code = supervisor read data, page not present instruction pointer = 0x20:0xffffffff80cb8088 stack pointer = 0x0:0xfffffe00634be830 frame pointer = 0x0:0xfffffe00634be870 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 = 12 (irq25: virtio_pci0) trap number = 12 panic: page fault cpuid = 0 time = 1672613133 KDB: stack backtrace: #0 0xffffffff80c694a5 at kdb_backtrace+0x65 #1 0xffffffff80c1bb5f at vpanic+0x17f #2 0xffffffff80c1b9d3 at panic+0x43 #3 0xffffffff810afdf5 at trap_fatal+0x385 #4 0xffffffff810afe4f at trap_pfault+0x4f #5 0xffffffff810875b8 at calltrap+0x8 #6 0xffffffff80cb8297 at sbdrop+0x37 #7 0xffffffff80dd8021 at tcp_do_segment+0x2df1 #8 0xffffffff80dd44f1 at tcp_input_with_port+0xb61 #9 0xffffffff80dd3929 at tcp6_input_with_port+0x69 #10 0xffffffff80dd4ceb at tcp6_input+0xb #11 0xffffffff80e16eae at ip6_input+0x95e #12 0xffffffff80d530c9 at netisr_dispatch_src+0xb9 #13 0xffffffff80d36ee8 at ether_demux+0x138 #14 0xffffffff80d38275 at ether_nh_input+0x355 #15 0xffffffff80d530c9 at netisr_dispatch_src+0xb9 #16 0xffffffff80d37319 at ether_input+0x69 #17 0xffffffff80a51fde at vtnet_rxq_eof+0x73e Uptime: 16h0m55s Dumping 660 out of 4062 MB:..3%..13%..22%..32%..42%..51%..61%..71%..83%..93% __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55 55 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcpu, (kgdb) #0 __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55 #1 doadump (textdump=<optimized out>) at /usr/src/sys/kern/kern_shutdown.c:399 #2 0xffffffff80c1b75c in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:487 #3 0xffffffff80c1bbce in vpanic (fmt=0xffffffff811b4fb9 "%s", ap=<optimized out>) at /usr/src/sys/kern/kern_shutdown.c:920 #4 0xffffffff80c1b9d3 in panic (fmt=<unavailable>) at /usr/src/sys/kern/kern_shutdown.c:844 #5 0xffffffff810afdf5 in trap_fatal (frame=0xfffffe00634be770, eva=8) at /usr/src/sys/amd64/amd64/trap.c:944 #6 0xffffffff810afe4f in trap_pfault (frame=0xfffffe00634be770, usermode=false, signo=<optimized out>, ucode=<optimized out>) at /usr/src/sys/amd64/amd64/trap.c:763 #7 <signal handler called> #8 sbcut_internal (sb=sb@entry=0xfffff800acf4b9c0, len=2306, len@entry=2856) at /usr/src/sys/kern/uipc_sockbuf.c:1488 #9 0xffffffff80cb8297 in sbdrop (sb=sb@entry=0xfffff800acf4b9c0, len=2856) at /usr/src/sys/kern/uipc_sockbuf.c:1597 #10 0xffffffff80dd8021 in tcp_do_segment (m=<optimized out>, th=<optimized out>, so=0x1, tp=0xfffffe00a90d4950, drop_hdrlen=72, tlen=<optimized out>, iptos=0 '\000') at /usr/src/sys/netinet/tcp_input.c:1869 #11 0xffffffff80dd44f1 in tcp_input_with_port (mp=<optimized out>, mp@entry=0xfffffe00634beb38, offp=<optimized out>, offp@entry=0xfffffe00634beb30, proto=<optimized out>, port=0) at /usr/src/sys/netinet/tcp_input.c:1414 #12 0xffffffff80dd3929 in tcp6_input_with_port (mp=0xfffffe00634beb38, offp=0xfffffe00634beb30, proto=<optimized out>, port=port@entry=0) at /usr/src/sys/netinet/tcp_input.c:627 #13 0xffffffff80dd4ceb in tcp6_input (mp=0xfffff800acf4b9c0, offp=0xfffff800908a7800, proto=1665919160) at /usr/src/sys/netinet/tcp_input.c:634 #14 0xffffffff80e16eae in ip6_input (m=0x0) at /usr/src/sys/netinet6/ip6_input.c:929 #15 0xffffffff80d530c9 in netisr_dispatch_src (proto=6, source=source@entry=0, m=0xfffff8004001c100) at /usr/src/sys/net/netisr.c:1143 #16 0xffffffff80d5349f in netisr_dispatch (proto=2901719488, m=0xfffffe00634be8b8) at /usr/src/sys/net/netisr.c:1234 #17 0xffffffff80d36ee8 in ether_demux (ifp=ifp@entry=0xfffff8000360e000, m=0xfffff800908a7800) at /usr/src/sys/net/if_ethersubr.c:921 #18 0xffffffff80d38275 in ether_input_internal (ifp=0xfffff8000360e000, m=0xfffff800908a7800) at /usr/src/sys/net/if_ethersubr.c:707 #19 ether_nh_input (m=<optimized out>) at /usr/src/sys/net/if_ethersubr.c:737 #20 0xffffffff80d530c9 in netisr_dispatch_src (proto=proto@entry=5, source=source@entry=0, m=m@entry=0xfffff8004001c100) at /usr/src/sys/net/netisr.c:1143 #21 0xffffffff80d5349f in netisr_dispatch (proto=2901719488, proto@entry=5, m=0xfffffe00634be8b8, m@entry=0xfffff8004001c100) at /usr/src/sys/net/netisr.c:1234 #22 0xffffffff80d37319 in ether_input (ifp=<optimized out>, m=0xfffff8004001c100) at /usr/src/sys/net/if_ethersubr.c:828 #23 0xffffffff80a51fde in vtnet_rxq_input (rxq=0xfffff800037e1480, m=0xfffff8004001c100, hdr=<optimized out>) at /usr/src/sys/dev/virtio/network/if_vtnet.c:2043 #24 vtnet_rxq_eof (rxq=<optimized out>, rxq@entry=0xfffff800037e1480) at /usr/src/sys/dev/virtio/network/if_vtnet.c:2147 #25 0xffffffff80a51797 in vtnet_rx_vq_process (rxq=0xfffff800037e1480, tries=<optimized out>) at /usr/src/sys/dev/virtio/network/if_vtnet.c:2211 #26 0xffffffff80bdbcfa in intr_event_execute_handlers (ie=0xfffff800037c3e00, p=<optimized out>) at /usr/src/sys/kern/kern_intr.c:1168 #27 ithread_execute_handlers (ie=<optimized out>, p=<optimized out>) at /usr/src/sys/kern/kern_intr.c:1181 #28 ithread_loop (arg=arg@entry=0xfffff80003625840) at /usr/src/sys/kern/kern_intr.c:1269 #29 0xffffffff80bd8a9e in fork_exit ( callout=0xffffffff80bdbaa0 <ithread_loop>, arg=0xfffff80003625840, frame=0xfffffe00634bef40) at /usr/src/sys/kern/kern_fork.c:1093 #30 <signal handler called> #31 mi_startup () at /usr/src/sys/kern/init_main.c:322 Backtrace stopped: Cannot access memory at address 0x8 (kgdb) /etc/sysctl.conf is: kern.ipc.soacceptqueue=2048 net.inet.ip.portrange.first=1024 net.inet.tcp.cc.algorithm=htcp net.inet.tcp.cc.htcp.adaptive_backoff=1 net.inet.tcp.cc.htcp.rtt_scaling=1 net.inet.tcp.recvbuf_max=4194304 net.inet.tcp.recvspace=65536 net.inet.tcp.sendbuf_inc=65536 net.inet.tcp.sendbuf_max=4194304 net.inet.tcp.sendspace=65536 net.inet.tcp.abc_l_var=44 net.inet.tcp.initcwnd_segments=44 net.inet.tcp.rfc6675_pipe=1 /boot/loader.conf is: cc_htcp_load="YES" Side notes: To sysctl.conf, if I add "net.inet.tcp.tso=0", I can get about a day or two of uptime (from ~6-14 hours), but eventually page fault, as has happened on my BuyVM VPS. Right now, I'm trying "-rxcsum -txcsum -tso -lro -txcsum6 -vlanhwtag -vlanhwtso" in the "ifconfig_vtnet0" line/config, to see if that improves anything. Core dump attached -- You are receiving this mail because: You are the assignee for the bug.