mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Lillian Berry" <lillian@star-ark.net>
To: intel-wired-lan@lists.osuosl.org
Cc: lillian@fly.io, ops@fly.io,
	"Tony Nguyen" <anthony.l.nguyen@intel.com>,
	"Przemek Kitszel" <przemyslaw.kitszel@intel.com>,
	"Andrew Lunn" <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: i40e: panic when ethtool -G command is interrupted
Date: Thu, 11 Jun 2026 13:34:36 -0400	[thread overview]
Message-ID: <276d5659-cd79-474b-85d4-ab9ba522fead@app.fastmail.com> (raw)

Hi,

We are seeing reproducible kernel panics on the i40e driver when an
ethtool command is interrupted, for instance with OOM.

The issue reproduces on 7.0.0 as well as 7.1-rc7 (built with Clang
22.1.7), on Ubuntu 22.04 LTS
on a system with the following hardware: Gigabyte MZ92-FS1-00 - Dual
EPYC 7763 - Intel XL710 NIC (both ports connected)
with the following kernel parameters: mem=8G nr_cpus=128
then running this command while the system is under memory pressure:
ethtool -G $nic rx 4096 tx 4096

The ethtool command is killed by OOM and leaves the driver in an invalid
state; it then panics during packet processing.

Below is the full oops, including information from
./scripts/decode_stacktrace.sh:

[   33.028260] BUG: unable to handle page fault for address: 0000000000002000
[   33.035732] #PF: supervisor read access in kernel mode
[   33.035735] #PF: error_code(0x0000) - not-present page
[   33.035737] PGD 0 P4D 0
[   33.049543] Oops: Oops: 0000 [#1] SMP NOPTI
[   33.049548] CPU: 29 UID: 0 PID: 0 Comm: swapper/29 Not tainted 7.1.0-rc7-fly #glocaltest PREEMPT(full)
[   33.049553] Hardware name: GIGABYTE R182-Z93-00/MZ92-FS1-00, BIOS M10 11/23/2021
[   33.049555] RIP: 0010:i40e_napi_poll (??:0 drivers/net/ethernet/intel/i40e/i40e_txrx.c:942 drivers/net/ethernet/intel/i40e/i40e_txrx.c:2769) i40e
[   33.076892] Code: 00 00 00 00 4d 01 ef 41 c1 e7 03 4c 03 7b 28 48 8b 43 08 45 89 ec 41 c1 e4 04 49 01 c4 0f b7 8b 84 00 00 00 41 29 cd c1 e1 04 <8b> 0c 08 48 c1 e1 04 48 01 c1 48 89 8d 30 ff ff ff c7 45 cc 00 00
All code
========
   0:	00 00                	add    %al,(%rax)
   2:	00 00                	add    %al,(%rax)
   4:	4d 01 ef             	add    %r13,%r15
   7:	41 c1 e7 03          	shl    $0x3,%r15d
   b:	4c 03 7b 28          	add    0x28(%rbx),%r15
   f:	48 8b 43 08          	mov    0x8(%rbx),%rax
  13:	45 89 ec             	mov    %r13d,%r12d
  16:	41 c1 e4 04          	shl    $0x4,%r12d
  1a:	49 01 c4             	add    %rax,%r12
  1d:	0f b7 8b 84 00 00 00 	movzwl 0x84(%rbx),%ecx
  24:	41 29 cd             	sub    %ecx,%r13d
  27:	c1 e1 04             	shl    $0x4,%ecx
  2a:*	8b 0c 08             	mov    (%rax,%rcx,1),%ecx		<-- trapping instruction
  2d:	48 c1 e1 04          	shl    $0x4,%rcx
  31:	48 01 c1             	add    %rax,%rcx
  34:	48 89 8d 30 ff ff ff 	mov    %rcx,-0xd0(%rbp)
  3b:	c7                   	.byte 0xc7
  3c:	45 cc                	rex.RB int3
	...

Code starting with the faulting instruction
===========================================
   0:	8b 0c 08             	mov    (%rax,%rcx,1),%ecx
   3:	48 c1 e1 04          	shl    $0x4,%rcx
   7:	48 01 c1             	add    %rax,%rcx
   a:	48 89 8d 30 ff ff ff 	mov    %rcx,-0xd0(%rbp)
  11:	c7                   	.byte 0xc7
  12:	45 cc                	rex.RB int3
	...
[   33.076895] RSP: 0018:ffffd4a0c1034d30 EFLAGS: 00010216
[   33.096198] RAX: 0000000000000000 RBX: ffff8d0a53ea9800 RCX: 0000000000002000
[   33.096200] RDX: 0000000000000000 RSI: 0000000000000040 RDI: ffff8d0a53e99810
[   33.096202] RBP: ffffd4a0c1034e20 R08: ffffd4a0c1034ea0 R09: 0000000000000000
[   33.123880] R10: 0000000000000000 R11: ffffffffc0953970 R12: 0000000000000000
[   33.123881] R13: 00000000fffffe00 R14: ffffd4a0c1034eb7 R15: 0000000000000000
[   33.123884] FS:  0000000000000000(0000) GS:ffff8d0b871a0000(0000) knlGS:0000000000000000
[   33.147004] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   33.147006] CR2: 0000000000002000 CR3: 000000000383a005 CR4: 0000000000f70ef0
[   33.147008] PKRU: 55555554
[   33.147009] Call Trace:
[   33.147011]  <IRQ>
[   33.147023]  __napi_poll (net/core/dev.c:7733)
[   33.147029]  net_rx_action (net/core/dev.c:7796 net/core/dev.c:7953)
[   33.147037]  handle_softirqs (kernel/softirq.c:622)
[   33.147042]  __irq_exit_rcu (kernel/softirq.c:656 kernel/softirq.c:496 kernel/softirq.c:735)
[   33.147045]  irq_exit_rcu (kernel/softirq.c:752)
[   33.147047]  common_interrupt (arch/x86/kernel/irq.c:326)
[   33.147053]  </IRQ>
[   33.147054]  <TASK>
[   33.147056]  asm_common_interrupt (./arch/x86/include/asm/idtentry.h:688)
[   33.147059] RIP: 0010:cpuidle_enter_state (drivers/cpuidle/cpuidle.c:289 drivers/cpuidle/cpuidle.c:292)
[   33.147062] Code: ef ff ff 49 89 c5 8b 73 04 bf ff ff ff ff e8 75 bf c6 ff 31 ff e8 9e 31 dd fe 45 84 f6 74 05 e8 d4 bf c6 ff fb 0f 1f 44 00 00 <4c> 8b 45 d0 45 85 c0 0f 88 9b 00 00 00 45 89 c1 41 83 f8 0a 0f 83
All code
========
   0:	ef                   	out    %eax,(%dx)
   1:	ff                   	(bad)
   2:	ff 49 89             	decl   -0x77(%rcx)
   5:	c5 8b 73             	(bad)
   8:	04 bf                	add    $0xbf,%al
   a:	ff                   	(bad)
   b:	ff                   	(bad)
   c:	ff                   	(bad)
   d:	ff                   	(bad)
   e:	e8 75 bf c6 ff       	call   0xffffffffffc6bf88
  13:	31 ff                	xor    %edi,%edi
  15:	e8 9e 31 dd fe       	call   0xfffffffffedd31b8
  1a:	45 84 f6             	test   %r14b,%r14b
  1d:	74 05                	je     0x24
  1f:	e8 d4 bf c6 ff       	call   0xffffffffffc6bff8
  24:	fb                   	sti
  25:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
  2a:*	4c 8b 45 d0          	mov    -0x30(%rbp),%r8		<-- trapping instruction
  2e:	45 85 c0             	test   %r8d,%r8d
  31:	0f 88 9b 00 00 00    	js     0xd2
  37:	45 89 c1             	mov    %r8d,%r9d
  3a:	41 83 f8 0a          	cmp    $0xa,%r8d
  3e:	0f                   	.byte 0xf
  3f:	83                   	.byte 0x83

Code starting with the faulting instruction
===========================================
   0:	4c 8b 45 d0          	mov    -0x30(%rbp),%r8
   4:	45 85 c0             	test   %r8d,%r8d
   7:	0f 88 9b 00 00 00    	js     0xa8
   d:	45 89 c1             	mov    %r8d,%r9d
  10:	41 83 f8 0a          	cmp    $0xa,%r8d
  14:	0f                   	.byte 0xf
  15:	83                   	.byte 0x83
[   33.147063] RSP: 0018:ffffd4a0c04a7e48 EFLAGS: 00000246
[   33.147065] RAX: 0000000000000000 RBX: ffff8d0a44fe7c00 RCX: 0000000000000000
[   33.147067] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
[   33.147068] RBP: ffffd4a0c04a7e90 R08: 0000000000000000 R09: 0000000000000000
[   33.147069] R10: 0000000000000000 R11: ffffffffaa9bfd20 R12: 0000000000000002
[   33.147070] R13: 00000007b0a32cf7 R14: 0000000000000000 R15: ffffffffabce2c70
[   33.147072]  ? __pfx_acpi_idle_enter+0x10/0x10
[   33.147078]  ? cpuidle_enter_state (drivers/cpuidle/cpuidle.c:286)
[   33.147081]  cpuidle_enter (drivers/cpuidle/cpuidle.c:391)
[   33.147084]  do_idle (kernel/sched/idle.c:161 kernel/sched/idle.c:247 kernel/sched/idle.c:352)
[   33.147089]  cpu_startup_entry (kernel/sched/idle.c:451)
[   33.147091]  start_secondary (arch/x86/kernel/smpboot.c:312)
[   33.147095]  common_startup_64 (arch/x86/kernel/head_64.S:418)
[   33.147101]  </TASK>
[   33.147102] Modules linked in: ip_set nvme_fabrics wireguard libcurve25519 ip6_udp_tunnel udp_tunnel nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nfnetlink_log dm_thin_pool dm_persistent_data dm_bio_prison dm_bufio binfmt_misc ipmi_ssif nls_utf8 amd_atl intel_rapl_msr intel_rapl_common amd64_edac edac_mce_amd kvm_amd kvm irqbypass rapl bonding wmi_bmof tls igb joydev input_leds ast cdc_ether dca mac_hid i2c_algo_bit usbnet mii i40e libie_adminq libie i2c_piix4 ptdma k10temp i2c_smbus acpi_ipmi ipmi_si ipmi_devintf ipmi_msghandler sch_fq dm_multipath nf_tables scsi_dh_rdac scsi_dh_emc nfnetlink scsi_dh_alua efi_pstore ip_tables x_tables raid1 nvme nvme_core nvme_keyring ahci uas nvme_auth libahci ccp usb_storage wmi hid_generic usbhid hid tcp_bbr autofs4 aesni_intel gf128mul
[   33.147185] CR2: 0000000000002000
[   33.147187] ---[ end trace 0000000000000000 ]---

I will post the full dmesg and .config in a followup mail.

I'm not familiar with this driver, but from a quick look this appears to
be related to, but not the exact same issue as, this previous report
from Jakub Kicinski:
https://lore.kernel.org/intel-wired-lan/20260315125451.3741843c@kernel.org/

Kindly,
Lillian

             reply	other threads:[~2026-06-11 17:34 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-11 17:34 Lillian Berry [this message]
2026-06-11 17:35 ` Lillian Berry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=276d5659-cd79-474b-85d4-ab9ba522fead@app.fastmail.com \
    --to=lillian@star-ark.net \
    --cc=andrew+netdev@lunn.ch \
    --cc=anthony.l.nguyen@intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=kuba@kernel.org \
    --cc=lillian@fly.io \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=ops@fly.io \
    --cc=pabeni@redhat.com \
    --cc=przemyslaw.kitszel@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®