]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net/sched: don't use dynamic lockdep keys with clsact/ingress/noqueue
authorDavide Caratti <dcaratti@redhat.com>
Wed, 4 Feb 2026 16:02:31 +0000 (17:02 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 5 Feb 2026 17:32:45 +0000 (09:32 -0800)
commita90f6dcefca6d5ad765435b3188a3a440ed193a1
tree7ff7e526431531309b2e72889faf040456f3ab2a
parent7e7fcfb0798a038b31fa3825734b5194c46b3e86
net/sched: don't use dynamic lockdep keys with clsact/ingress/noqueue

Currently we are registering one dynamic lockdep key for each allocated
qdisc, to avoid false deadlock reports when mirred (or TC eBPF) redirects
packets to another device while the root lock is acquired [1].
Since dynamic keys are a limited resource, we can save them at least for
qdiscs that are not meant to acquire the root lock in the traffic path,
or to carry traffic at all, like:

 - clsact
 - ingress
 - noqueue

Don't register dynamic keys for the above schedulers, so that we hit
MAX_LOCKDEP_KEYS later in our tests.

[1] https://github.com/multipath-tcp/mptcp_net-next/issues/451

Changes in v2:
 - change ordering of spin_lock_init() vs. lockdep_register_key()
   (Jakub Kicinski)

Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Link: https://patch.msgid.link/94448f7fa7c4f52d2ce416a4895ec87d456d7417.1770220576.git.dcaratti@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/pkt_sched.h
net/sched/sch_api.c
net/sched/sch_generic.c