mirror-linux/Documentation/admin-guide/sysctl
Eric Dumazet ffe4ccd359 net: add net.core.qdisc_max_burst
In blamed commit, I added a check against the temporary queue
built in __dev_xmit_skb(). Idea was to drop packets early,
before any spinlock was acquired.

if (unlikely(defer_count > READ_ONCE(q->limit))) {
	kfree_skb_reason(skb, SKB_DROP_REASON_QDISC_DROP);
	return NET_XMIT_DROP;
}

It turned out that HTB Qdisc has a zero q->limit.
HTB limits packets on a per-class basis.
Some of our tests became flaky.

Add a new sysctl : net.core.qdisc_max_burst to control
how many packets can be stored in the temporary lockless queue.

Also add a new QDISC_BURST_DROP drop reason to better diagnose
future issues.

Thanks Neal !

Fixes: 100dfa74ca ("net: dev_queue_xmit() llist adoption")
Reported-and-bisected-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Neal Cardwell <ncardwell@google.com>
Link: https://patch.msgid.link/20260107104159.3669285-1-edumazet@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-01-13 10:12:11 +01:00
..
abi.rst docs: admin-guide: sysctl: avoid using ReST :doc:`foo` markup 2021-06-17 13:24:36 -06:00
fs.rst docs: admin-guide: update to current minimum pipe size default 2025-08-11 11:10:57 -06:00
index.rst docs: sysctl: add a few more top-level /proc/sys entries 2025-08-21 12:00:10 -06:00
kernel.rst sys_info: add a default kernel sys_info mask 2025-11-20 14:03:43 -08:00
net.rst net: add net.core.qdisc_max_burst 2026-01-13 10:12:11 +01:00
sunrpc.rst
user.rst time/namespace: Add max_time_namespaces ucount 2020-04-07 12:37:21 +02:00
vm.rst docs: Remove colon from ctltable title in vm.rst 2025-07-23 11:57:05 +02:00