netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: netdev@vger.kernel.org, Eric Dumazet <edumazet@google.com>,
	Gal Pressman <gal@nvidia.com>,
	linux-rt-devel@lists.linux.dev,
	"David S. Miller" <davem@davemloft.net>,
	Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
	Clark Williams <clrkwllms@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [PATCH net] net: gro_cells: Provide lockdep class for gro_cell's bh_lock
Date: Tue, 4 Nov 2025 06:05:33 -0800	[thread overview]
Message-ID: <20251104060533.57c1bb79@kernel.org> (raw)
In-Reply-To: <20251104111201.5eBxkOKb@linutronix.de>

On Tue, 4 Nov 2025 12:12:01 +0100 Sebastian Andrzej Siewior wrote:
> One GRO-cell device's NAPI callback can nest into the GRO-cell of
> another device if the underlying device is also using GRO-cell.
> This is the case for IPsec over vxlan.
> These two GRO-cells are separate devices. From lockdep's point of view
> it is the same because each device is sharing the same lock class and so
> it reports a possible deadlock assuming one device is nesting into
> itself.
> 
> Provide a lockclass for the bh_lock on for gro-cell device allowing
> lockdep to distinguish between individual devices.
> 
> Fixes: 25718fdcbdd2 ("net: gro_cells: Use nested-BH locking for gro_cell")
> Reported-by: Gal Pressman <gal@nvidia.com>
> Closes: https://lore.kernel.org/all/66664116-edb8-48dc-ad72-d5223696dd19@nvidia.com/
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

Breaks boot:

[    2.053035][    T1] netem: version 1.3
[    2.054087][    T1] ipip: IPv4 and MPLS over IPv4 tunneling driver
[    2.055273][    T1] BUG: key ffff888009041e10 has not been registered!
[    2.055683][    T1] ------------[ cut here ]------------
[    2.055863][    T1] DEBUG_LOCKS_WARN_ON(1)
[    2.055880][    T1] WARNING: CPU: 1 PID: 1 at kernel/locking/lockdep.c:4976 lockdep_init_map_type+0x24c/0x270
[    2.056328][    T1] Modules linked in:
[    2.056488][    T1] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.0-rc3-virtme #1 PREEMPT(full) 
[    2.056792][    T1] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    2.057007][    T1] RIP: 0010:lockdep_init_map_type+0x24c/0x270
[    2.057220][    T1] Code: ff 4c 89 e6 48 c7 c7 50 97 83 b6 e8 ee c9 01 00 e9 3d ff ff ff 90 48 c7 c6 1a 2d 7d b6 48 c7 c7 67 29 7d b6 e8 65 6e e9 ff 90 <0f> 0b 90 90 e9 47 ff ff ff 90 48 c7 c6 56 2e 7d b6 48 c7 c7 67 29
[    2.057839][    T1] RSP: 0000:ffffc90000017960 EFLAGS: 00010286
[    2.058161][    T1] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
[    2.058417][    T1] RDX: 0000000000000002 RSI: 0000000000000004 RDI: 0000000000000001
[    2.058663][    T1] RBP: ffffe8ffffc01ce8 R08: 0000000000000000 R09: fffffbfff6e4090c
[    2.059045][    T1] R10: 0000000000000003 R11: 0000000000000004 R12: ffff888009041e10
[    2.059298][    T1] R13: 0000000000000000 R14: ffffe8ffffc01ad0 R15: ffffe8ffffc01a78
[    2.059657][    T1] FS:  0000000000000000(0000) GS:ffff8880ae587000(0000) knlGS:0000000000000000
[    2.059966][    T1] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    2.060199][    T1] CR2: 0000000000000000 CR3: 0000000079349001 CR4: 0000000000772ef0
[    2.060559][    T1] PKRU: 55555554
[    2.060684][    T1] Call Trace:
[    2.060819][    T1]  <TASK>
[    2.060911][    T1]  gro_cells_init+0x252/0x3d0
[    2.061082][    T1]  ip_tunnel_init+0xef/0x5f0
[    2.061364][    T1]  register_netdevice+0x59f/0x17b0
[    2.061545][    T1]  ? unregister_netdevice_queue+0x410/0x410
[    2.061767][    T1]  ? alloc_netdev_mqs+0xdd7/0x1370
[    2.062035][    T1]  __ip_tunnel_create+0x326/0x440
[    2.062201][    T1]  ? ip_tunnel_add+0x180/0x180
[    2.062374][    T1]  ip_tunnel_init_net+0x16f/0x4e0
[    2.062539][    T1]  ? paint_ptr+0x3b/0x90
[    2.062666][    T1]  ? ip_tunnel_ctl+0x890/0x890
[    2.062953][    T1]  ? mark_held_locks+0x49/0x70
[    2.063125][    T1]  ? _raw_spin_unlock_irqrestore+0x59/0x70
[    2.063332][    T1]  ops_init+0x189/0x550
[    2.063469][    T1]  register_pernet_operations+0x31f/0x8b0
[    2.063747][    T1]  ? ops_undo_list+0x890/0x890
[    2.063918][    T1]  ? rwsem_down_write_slowpath+0xc60/0xc60
[    2.064134][    T1]  ? rng_is_initialized+0x20/0x20
[    2.064408][    T1]  ? __up_write+0x1ad/0x520
[    2.064584][    T1]  ? ip_mr_init+0x120/0x120
[    2.064777][    T1]  register_pernet_device+0x2a/0x60
[    2.064947][    T1]  ipip_init+0x23/0xe0
[    2.065072][    T1]  do_one_initcall+0x8c/0x1d0
[    2.065353][    T1]  ? trace_initcall_start+0x130/0x130
[    2.065535][    T1]  ? rcu_is_watching+0x12/0xb0
[    2.065700][    T1]  ? __kmalloc_noprof+0x313/0x820
[    2.065983][    T1]  ? rcu_is_watching+0x12/0xb0
[    2.066158][    T1]  do_initcalls+0x176/0x280
[    2.066383][    T1]  kernel_init_freeable+0x227/0x310
[    2.066565][    T1]  ? rest_init+0x260/0x260
[    2.066774][    T1]  kernel_init+0x20/0x1f0
[    2.066900][    T1]  ? rest_init+0x260/0x260
[    2.067062][    T1]  ? rest_init+0x260/0x260
[    2.067227][    T1]  ret_from_fork+0x1db/0x270
[    2.067397][    T1]  ? rest_init+0x260/0x260
[    2.067677][    T1]  ret_from_fork_asm+0x11/0x20
[    2.067858][    T1]  </TASK>
[    2.067995][    T1] irq event stamp: 337037
[    2.068127][    T1] hardirqs last  enabled at (337037): [<ffffffffb3bcfb47>] __up_console_sem+0x67/0x70
[    2.068525][    T1] hardirqs last disabled at (337036): [<ffffffffb3bcfb2c>] __up_console_sem+0x4c/0x70
[    2.068829][    T1] softirqs last  enabled at (336962): [<ffffffffb3a63822>] handle_softirqs+0x352/0x610
[    2.069231][    T1] softirqs last disabled at (336631): [<ffffffffb3a6408b>] irq_exit_rcu+0xab/0x100
[    2.069541][    T1] ---[ end trace 0000000000000000 ]---
[    2.073346][    T1] IPv4 over IPsec tunneling driver
[    2.077691][    T1] NET: Registered PF_INET6 protocol family
[    2.087079][    T1] Segment Routing with IPv6
[    2.087254][    T1] RPL Segment Routing with IPv6
[    2.087776][    T1] In-situ OAM (IOAM) with IPv6
[    2.092422][    T1] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.100954][    T1] NET: Registered PF_PACKET protocol family
[    2.102004][    T1] 8021q: 802.1Q VLAN Support v1.8
[    2.102407][    T1] 9pnet: Installing 9P2000 support
-- 
pw-bot: cr

  reply	other threads:[~2025-11-04 14:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-04 11:12 [PATCH net] net: gro_cells: Provide lockdep class for gro_cell's bh_lock Sebastian Andrzej Siewior
2025-11-04 14:05 ` Jakub Kicinski [this message]
2025-11-04 15:34   ` [PATCH net v2] net: gro_cells: Reduce lock scope in gro_cell_poll Sebastian Andrzej Siewior
2025-11-06  1:50     ` patchwork-bot+netdevbpf
2025-11-04 14:22 ` [syzbot ci] Re: net: gro_cells: Provide lockdep class for gro_cell's bh_lock syzbot ci

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=20251104060533.57c1bb79@kernel.org \
    --to=kuba@kernel.org \
    --cc=bigeasy@linutronix.de \
    --cc=clrkwllms@kernel.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gal@nvidia.com \
    --cc=horms@kernel.org \
    --cc=linux-rt-devel@lists.linux.dev \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rostedt@goodmis.org \
    /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;
as well as URLs for NNTP newsgroup(s).