When a single queue of network cards is found, there is obvious competition
between the application layer and af_xdp. Only mounting af_xdp and running the
FTP upload service of the application layer IPv6 will cause abnormal
connectivity of the network card at the exit end
------------------ ???????? ------------------
??????:
"????"
<[email protected]>;
????????: 2025??6??16??(??????) ????11:16
??????: "bpf"<[email protected]>;"kuba"<[email protected]>;
????: ??????i40e af_xdp zerocopy happen crash
error2
[root@Top-inside 127.0.0.1-2025-06-14-16:33:16]# crash
/usr/lib/debug/lib/modules/6.6.62/vmlinux ./vmcore
crash 8.0.4-2.oe2403
Copyright (C) 2002-2022 Red Hat, Inc.
Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
Copyright (C) 1999-2006 Hewlett-Packard Co
Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
Copyright (C) 2005, 2011, 2020-2022 NEC Corporation
Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
Copyright (C) 2015, 2021 VMware, Inc.
This program is free software, covered by the GNU General Public License,
and you are welcome to change it and/or distribute copies of it under
certain conditions. Enter "help copying" to see the conditions.
This program has absolutely no warranty. Enter "help warranty" for
details.
GNU gdb (GDB) 10.2
Copyright (C) 2021 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-pc-linux-gnu".
Type "show configuration" for configuration details.
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"...
KERNEL: /usr/lib/debug/lib/modules/6.6.62/vmlinux
[TAINTED]
DUMPFILE: ./vmcore [PARTIAL DUMP]
CPUS: 8
DATE: Sat Jun 14 16:33:06 CST 2025
UPTIME: 02:21:33
LOAD AVERAGE: 4.55, 4.59, 3.88
TASKS: 258
NODENAME: Top-inside
RELEASE: 6.6.62
VERSION: #39 SMP PREEMPT_DYNAMIC Tue Mar 25 21:17:53 CST
2025
MACHINE: x86_64 (3600 Mhz)
MEMORY: 7.9 GB
PANIC: ""
PID: 0
COMMAND: "swapper/1"
TASK: ffff9fe0002b3240 (1 of 8)
[THREAD_INFO: ffff9fe0002b3240]
CPU: 1
STATE: TASK_RUNNING (PANIC)
crash> bt
PID: 0 TASK: ffff9fe0002b3240 CPU: 1
COMMAND: "swapper/1"
#0 [ffffb3da4003c8c8] machine_kexec at ffffffff92f15faf
#1 [ffffb3da4003c918] __crash_kexec at ffffffff9300d2e9
#2 [ffffb3da4003c9d8] crash_kexec at ffffffff9300e727
#3 [ffffb3da4003c9e0] oops_end at ffffffff92ed7262
#4 [ffffb3da4003ca00] exc_general_protection at ffffffff943d48d8
#5 [ffffb3da4003caa0] asm_exc_general_protection at ffffffff94401256
[exception RIP: skb_release_data+254]
RIP: ffffffff93f6e5de RSP: ffffb3da4003cb50 RFLAGS:
00010202
RAX: 006edd86b3f69797 RBX: 006edd86b3f69796 RCX:
0000000000000000
RDX: 0000000000000000 RSI: 0000000000000002 RDI:
ffff9fe11867e700
RBP: 0000000000000000 R8: ffffffff95f43a00
R9: 0000000000000000
R10: ffffb3da4003cb98 R11: 0000000000000000 R12:
ffff9fe109ddc6c0
R13: ffff9fe11867e700 R14: 0000000000000000 R15:
0000000000000002
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
#6 [ffffb3da4003cb80] kfree_skb_reason at ffffffff93f7081d
#7 [ffffb3da4003cb90] tcp_v4_rcv at ffffffff94128ae4
#8 [ffffb3da4003cc08] ip_protocol_deliver_rcu at ffffffff940f4acd
#9 [ffffb3da4003cc30] ip_local_deliver_finish at ffffffff940f4c91
#10 [ffffb3da4003cc48] ip_sublist_rcv_finish at ffffffff940f4e4f
#11 [ffffb3da4003cc60] ip_sublist_rcv at ffffffff940f4f99
#12 [ffffb3da4003cce0] ip_list_rcv at ffffffff940f533d
#13 [ffffb3da4003cd40] __netif_receive_skb_list_core at ffffffff93f8e9d0
#14 [ffffb3da4003cdb8] netif_receive_skb_list_internal at ffffffff93f8ef8c
#15 [ffffb3da4003ce20] napi_complete_done at ffffffff93f8f66d
#16 [ffffb3da4003ce48] i40e_napi_poll at ffffffffc02ff6de [i40e]
#17 [ffffb3da4003cef8] __napi_poll at ffffffff93f8f7b3
#18 [ffffb3da4003cf20] net_rx_action at ffffffff93f8fcd2
#19 [ffffb3da4003cf90] handle_softirqs at ffffffff92f426ed
#20 [ffffb3da4003cfe8] irq_exit_rcu at ffffffff92f43107
#21 [ffffb3da4003cff0] common_interrupt at ffffffff943d5256
--- <IRQ stack> ---
#22 [ffffb3da400e7de8] asm_common_interrupt at ffffffff94401466
[exception RIP: cpuidle_enter_state+198]
RIP: ffffffff943d87b6 RSP: ffffb3da400e7e98 RFLAGS:
00000202
RAX: ffff9fe165c6d2c0 RBX: ffff9fe165c76618 RCX:
000000000000001f
RDX: 0000000000000001 RSI: 00000000238e3989 RDI:
0000000000000000
RBP: 0000000000000002 R8: 0000000000000002
R9: 0000000000000048
R10: 0000000000000002 R11: ffff9fe165c6c224 R12:
ffffffff9523dc40
R13: 000007b98f0ac607 R14: 0000000000000002 R15:
0000000000000000
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
#23 [ffffb3da400e7ed0] cpuidle_enter at ffffffff93f277c8
#24 [ffffb3da400e7ef0] do_idle at ffffffff92f92600
#25 [ffffb3da400e7f30] cpu_startup_entry at ffffffff92f92855
#26 [ffffb3da400e7f40] start_secondary at ffffffff92f0ce97
#27 [ffffb3da400e7f50] secondary_startup_64_no_verify at ffffffff92e001cb
error3??
[root@Top-outside 127.0.0.1-2025-06-14-15:14:02]# crash
/usr/lib/debug/lib/modules/6.6.62/vmlinux ./vmcore
crash 8.0.4-2.oe2403
Copyright (C) 2002-2022 Red Hat, Inc.
Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
Copyright (C) 1999-2006 Hewlett-Packard Co
Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
Copyright (C) 2005, 2011, 2020-2022 NEC Corporation
Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
Copyright (C) 2015, 2021 VMware, Inc.
This program is free software, covered by the GNU General Public License,
and you are welcome to change it and/or distribute copies of it under
certain conditions. Enter "help copying" to see the conditions.
This program has absolutely no warranty. Enter "help warranty" for
details.
GNU gdb (GDB) 10.2
Copyright (C) 2021 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-pc-linux-gnu".
Type "show configuration" for configuration details.
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"...
KERNEL: /usr/lib/debug/lib/modules/6.6.62/vmlinux
[TAINTED]
DUMPFILE: ./vmcore [PARTIAL DUMP]
CPUS: 8
DATE: Sat Jun 14 15:13:48 CST 2025
UPTIME: 11 days, 06:02:24
LOAD AVERAGE: 0.16, 0.04, 0.03
TASKS: 250
NODENAME: Top-outside
RELEASE: 6.6.62
VERSION: #39 SMP PREEMPT_DYNAMIC Tue Mar 25 21:17:53 CST
2025
MACHINE: x86_64 (3600 Mhz)
MEMORY: 7.9 GB
PANIC: "Oops: 0000 [#1] PREEMPT SMP PTI" (check log
for details)
PID: 0
COMMAND: "swapper/5"
TASK: ffff9ccc402c0000 (1 of 8)
[THREAD_INFO: ffff9ccc402c0000]
CPU: 5
STATE: TASK_RUNNING (PANIC)
crash> bt
PID: 0 TASK: ffff9ccc402c0000 CPU: 5
COMMAND: "swapper/5"
#0 [ffffb6a7401f88d0] machine_kexec at ffffffffb7915faf
#1 [ffffb6a7401f8920] __crash_kexec at ffffffffb7a0d2e9
#2 [ffffb6a7401f89e0] crash_kexec at ffffffffb7a0e727
#3 [ffffb6a7401f89e8] oops_end at ffffffffb78d7262
#4 [ffffb6a7401f8a08] page_fault_oops at ffffffffb7921d1c
#5 [ffffb6a7401f8a88] exc_page_fault at ffffffffb8dd7c83
#6 [ffffb6a7401f8ab0] asm_exc_page_fault at ffffffffb8e01316
[exception RIP: __htab_map_lookup_elem+87]
RIP: ffffffffb7aba3b7 RSP: ffffb6a7401f8b68 RFLAGS:
00010246
RAX: 0000000000100000 RBX: 0000000045bb9028 RCX:
00000000f689d7d8
RDX: 00000000fcfa7359 RSI: 000000007289a3ff RDI:
ffffd6a73fd45d3c
RBP: 0000000000000010 R8: 00000000e2295342
R9: 00000000000007eb
R10: 0000000000000000 R11: ffffb6a7401f8ff8 R12:
ffffd6a73fd45d30
R13: 0000000000056af1 R14: ffffb6a78056bf10 R15:
0000000088756af1
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
#7 [ffffb6a7401f8bf8] get_page_from_freelist at ffffffffb7b81ff4
#8 [ffffb6a7401f8d80] __dev_flush at ffffffffb7adcf88
#9 [ffffb6a7401f8da8] i40e_finalize_xdp_rx at ffffffffc06357f7 [i40e]
#10 [ffffb6a7401f8dc0] i40e_clean_rx_irq_zc at ffffffffc06431dd [i40e]
#11 [ffffb6a7401f8e48] i40e_napi_poll at ffffffffc0635b42 [i40e]
#12 [ffffb6a7401f8ef8] __napi_poll at ffffffffb898f7b3
#13 [ffffb6a7401f8f20] net_rx_action at ffffffffb898fcd2
#14 [ffffb6a7401f8f90] handle_softirqs at ffffffffb79426ed
#15 [ffffb6a7401f8fe8] irq_exit_rcu at ffffffffb7943107
#16 [ffffb6a7401f8ff0] common_interrupt at ffffffffb8dd5256
--- <IRQ stack> ---
#17 [ffffb6a740107de8] asm_common_interrupt at ffffffffb8e01466
[exception RIP: cpuidle_enter_state+198]
RIP: ffffffffb8dd87b6 RSP: ffffb6a740107e98 RFLAGS:
00000202
RAX: ffff9ccda5d6d2c0 RBX: ffff9ccda5d76618 RCX:
000000000000001f
RDX: 0000000000000005 RSI: 00000000238e3989 RDI:
0000000000000000
RBP: 0000000000000001 R8: 0000000000000002
R9: 000000000000002d
R10: 0000000000000007 R11: ffff9ccda5d6c224 R12:
ffffffffb9c3dc40
R13: 00037428ff8e8e3b R14: 0000000000000001 R15:
0000000000000000
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
#18 [ffffb6a740107ed0] cpuidle_enter at ffffffffb89277c8
#19 [ffffb6a740107ef0] do_idle at ffffffffb7992600
#20 [ffffb6a740107f30] cpu_startup_entry at ffffffffb7992855
#21 [ffffb6a740107f40] start_secondary at ffffffffb790ce97
#22 [ffffb6a740107f50] secondary_startup_64_no_verify at ffffffffb78001cb
The above are all crash issues that occur when using af_xdp zerocopy forwarding
on i40e.
------------------ ???????? ------------------
??????:
"????"
<[email protected]>;
????????: 2025??6??16??(??????) ????11:14
??????: "bpf"<[email protected]>;"kuba"<[email protected]>;
????: ??????i40e af_xdp zerocopy happen crash
Reproduction: When mounting af_xdp using zc mode and continuously sending IPv6
requests, this exception occurs ab -r -n 1000 -c 1
http://[3001::33:33:33:161]:80/1k.txt
Solution: Modify the memcpy(addr, skb_frag_page(frag),
skb_frag_size(frag)) of the i40e_constructors' function in i40e_xsk. c
under the i40e driver; Change to memcpy(addr, skb_frag_address(frag),
skb_frag_size(frag));
------------------ ???????? ------------------
??????:
"????"
<[email protected]>;
????????: 2025??6??16??(??????) ????11:04
??????: "bpf"<[email protected]>;"kuba"<[email protected]>;
????: i40e af_xdp zerocopy happen crash
root@Top-inside 127.0.0.1-2025-06-12-21:15:57]# crash
/usr/lib/debug/lib/modules/6.6.62/vmlinux ./vmcore
crash 8.0.4-2.oe2403
Copyright (C) 2002-2022 Red Hat, Inc.
Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
Copyright (C) 1999-2006 Hewlett-Packard Co
Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
Copyright (C) 2005, 2011, 2020-2022 NEC Corporation
Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
Copyright (C) 2015, 2021 VMware, Inc.
This program is free software, covered by the GNU General Public License,
and you are welcome to change it and/or distribute copies of it under
certain conditions. Enter "help copying" to see the conditions.
This program has absolutely no warranty. Enter "help warranty" for
details.
GNU gdb (GDB) 10.2
Copyright (C) 2021 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-pc-linux-gnu".
Type "show configuration" for configuration details.
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"...
KERNEL: /usr/lib/debug/lib/modules/6.6.62/vmlinux
[TAINTED]
DUMPFILE: ./vmcore [PARTIAL DUMP]
CPUS: 8
DATE: Thu Jun 12 21:15:48 CST 2025
UPTIME: 00:09:24
LOAD AVERAGE: 0.97, 2.18, 1.31
TASKS: 252
NODENAME: Top-inside
RELEASE: 6.6.62
VERSION: #39 SMP PREEMPT_DYNAMIC Tue Mar 25 21:17:53 CST
2025
MACHINE: x86_64 (3600 Mhz)
MEMORY: 7.9 GB
PANIC: "Oops: 0000 [#1] PREEMPT SMP PTI" (check log
for details)
PID: 0
COMMAND: "swapper/0"
TASK: ffffffffbcc0c900 (1 of 8)
[THREAD_INFO: ffffffffbcc0c900]
CPU: 0
STATE: TASK_RUNNING (PANIC)
crash> bt
PID: 0 TASK: ffffffffbcc0c900 CPU: 0
COMMAND: "swapper/0"
#0 [ffffb84200003b30] machine_kexec at ffffffffbab15faf
#1 [ffffb84200003b80] __crash_kexec at ffffffffbac0d2e9
#2 [ffffb84200003c40] crash_kexec at ffffffffbac0e727
#3 [ffffb84200003c48] oops_end at ffffffffbaad7262
#4 [ffffb84200003c68] page_fault_oops at ffffffffbab21d1c
#5 [ffffb84200003ce8] exc_page_fault at ffffffffbbfd7cab
#6 [ffffb84200003d10] asm_exc_page_fault at ffffffffbc001316
[exception RIP: memcpy_orig+100]
RIP: ffffffffbbfd8bc4 RSP: ffffb84200003dc0 RFLAGS:
00010206
RAX: ffff9964a246a000 RBX: ffffb842528b8ed0 RCX:
ffff9964a246a000
RDX: 0000000000000022 RSI: ffffda823d4a2de2 RDI:
ffff9964a246a062
RBP: ffff996411de46c0 R8: ffff99656dffd900
R9: 00000000000aafee
R10: 0000000000000001 R11: ffffb842528b8ec0 R12:
ffff9964071de000
R13: 0000000000000231 R14: ffff996414fed380 R15:
00000000000000ac
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
#7 [ffffb84200003dc0] i40e_clean_rx_irq_zc at ffffffffc0532a69 [i40e]
#8 [ffffb84200003e48] i40e_napi_poll at ffffffffc0524b42 [i40e]
#9 [ffffb84200003ef8] __napi_poll at ffffffffbbb8f7b3
#10 [ffffb84200003f20] net_rx_action at ffffffffbbb8fcd2
#11 [ffffb84200003f90] handle_softirqs at ffffffffbab426ed
#12 [ffffb84200003fe8] irq_exit_rcu at ffffffffbab43107
#13 [ffffb84200003ff0] common_interrupt at ffffffffbbfd5256
--- <IRQ stack> ---
#14 [ffffffffbcc03d78] asm_common_interrupt at ffffffffbc001466
[exception RIP: cpuidle_enter_state+198]
RIP: ffffffffbbfd87b6 RSP: ffffffffbcc03e20 RFLAGS:
00000202
RAX: ffff996565c2d2c0 RBX: ffff996565c36618 RCX:
000000000000001f
RDX: 0000000000000000 RSI: 00000000238e31c5 RDI:
0000000000000000
RBP: 0000000000000001 R8: 0000000000000002
R9: 0000000000000028
R10: 0000000000000008 R11: ffff996565c2c224 R12:
ffffffffbce3dc40
R13: 00000083607c6c48 R14: 0000000000000001 R15:
0000000000000000
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
#15 [ffffffffbcc03e58] cpuidle_enter at ffffffffbbb277c8
#16 [ffffffffbcc03e78] do_idle at ffffffffbab92600
#17 [ffffffffbcc03eb8] cpu_startup_entry at ffffffffbab92855
#18 [ffffffffbcc03ed8] arch_call_rest_init at ffffffffbd7a0ad9
#19 [ffffffffbcc03ee0] start_kernel at ffffffffbd7a1147
#20 [ffffffffbcc03f30] x86_64_start_reservations at ffffffffbd7ac578
#21 [ffffffffbcc03f38] x86_64_start_kernel at ffffffffbd7ac69c
#22 [ffffffffbcc03f50] secondary_startup_64_no_verify at ffffffffbaa001cb
I am using af-xdp in zc mode on i40e, and this exception occurs when
constantly sending IPv6 requests. I have searched for many explanations without
any related problems. Can you help me check if forwarding in af-xdp zerocopy
mode on i40e may cause bugs