Eric Dumazet
74b4efe48c
BACKPORT: tcp: allow drivers to tweak TSQ logic
...
I had many reports that TSQ logic breaks wifi aggregation.
Current logic is to allow up to 1 ms of bytes to be queued into qdisc
and drivers queues.
But Wifi aggregation needs a bigger budget to allow bigger rates to
be discovered by various TCP Congestion Controls algorithms.
This patch adds an extra socket field, allowing wifi drivers to select
another log scale to derive TCP Small Queue credit from current pacing
rate.
Initial value is 10, meaning that this patch does not change current
behavior.
We expect wifi drivers to set this field to smaller values (tests have
been done with values from 6 to 9)
They would have to use following template :
if (skb->sk && skb->sk->sk_pacing_shift != MY_PACING_SHIFT)
skb->sk->sk_pacing_shift = MY_PACING_SHIFT;
Ref: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Johannes Berg <johannes.berg@intel.com>
Cc: Toke Høiland-Jørgensen <toke@toke.dk>
Cc: Kir Kolyshkin <kir@openvz.org>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>
2026-05-15 17:59:25 +07:00
..
9p
bluetooth
Bluetooth: L2CAP: Fix use-after-free caused by l2cap_chan_put
2022-08-25 11:09:20 +02:00
caif
net: caif: add proper error handling
2021-06-10 12:42:36 +02:00
irda
iucv
netfilter
Merge remote-tracking branch 'common/android-4.9-q' into android12-4.9-sdm845
2022-03-31 22:52:51 +03:00
netns
UPSTREAM: net: xsk: track AF_XDP sockets on a per-netns list
2026-05-15 17:58:06 +07:00
nfc
NFC: add NCI_UNREG flag to eliminate the race
2021-12-08 08:45:04 +01:00
phonet
phonet: fix building with clang
2019-03-23 13:19:44 +01:00
sctp
BACKPORT: net: Work around lockdep limitation in sockets that use sockets
2026-05-15 17:56:15 +07:00
tc_act
UPSTREAM: skbedit: allow the user to specify bitmask for mark
2026-05-15 17:57:02 +07:00
6lowpan.h
6lowpan: add 802.15.4 short addr slaac
2016-06-15 20:41:22 -07:00
act_api.h
net sched: fix reporting the first-time use timestamp
2020-06-03 08:16:25 +02:00
addrconf.h
UPSTREAM: bpf: Allow sk_lookup with IPv6 module
2026-05-15 17:57:31 +07:00
af_ieee802154.h
af_rxrpc.h
rxrpc: Rewrite the data and ack handling code
2016-09-08 11:10:12 +01:00
af_unix.h
af_unix: Suppress false-positive lockdep splat for spin_lock() in __unix_gc().
2024-07-21 16:03:38 -07:00
af_vsock.h
vsock: split dwork to avoid reinitializations
2018-08-22 07:47:13 +02:00
ah.h
arp.h
ipv4: Define __ipv4_neigh_lookup_noref when CONFIG_INET is disabled
2019-06-11 12:22:49 +02:00
atmclip.h
ax25.h
ax25: fix possible use-after-free
2019-02-23 09:05:59 +01:00
ax88796.h
bond_3ad.h
bonding: 3ad: apply ad_actor settings changes immediately
2016-02-09 04:45:49 -05:00
bond_alb.h
bond_options.h
bonding.h
bonding: wait for sysfs kobject destruction before freeing struct slave
2020-12-11 13:37:57 +01:00
bpf_sk_storage.h
UPSTREAM: bpf: support cloning sk storage on accept()
2026-05-15 17:58:48 +07:00
busy_poll.h
net: Fix a data-race around sysctl_net_busy_poll.
2022-09-05 10:23:55 +02:00
calipso.h
calipso: Add a label cache.
2016-06-27 15:06:17 -04:00
cfg80211-wext.h
cfg80211.h
Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-18.1-caf-sdm845
2021-07-22 02:11:11 +03:00
cfg802154.h
ieee802154: add netns support
2016-07-08 12:20:57 +02:00
checksum.h
openvswitch: Fix setting ipv6 fields causing hw csum failure
2022-03-02 11:32:02 +01:00
cipso_ipv4.h
netlabel: out of bound access in cipso_v4_validate()
2017-02-18 15:11:41 +01:00
cls_cgroup.h
cls_cgroup: get sk_classid only from full sockets
2016-04-19 20:09:25 -04:00
cnss.h
Merge "cnss: Add support for PCIe WLAN IPA uc SMMU feature"
2018-07-26 07:45:06 -07:00
cnss2.h
cnss2: Sync code from kernel 4.14
2020-05-17 20:19:19 -07:00
cnss_logger.h
cnss: Add support of cnss driver
2018-02-08 16:32:00 +08:00
cnss_nl.h
cnss_nl: Add new attributes for cld80211 attr list
2020-03-07 00:19:25 +05:30
cnss_prealloc.h
wcnss: Fix buffer overflow in wcnss_prealloc_get
2018-09-12 16:05:33 +05:30
cnss_utils.h
cnss_utils: Add support for derived MAC address
2017-11-09 15:08:16 -08:00
codel.h
codel: split into multiple files
2016-04-25 16:44:27 -04:00
codel_impl.h
codel: split into multiple files
2016-04-25 16:44:27 -04:00
codel_qdisc.h
net_sched: fq_codel: cache skb->truesize into skb->cb
2016-06-25 12:19:35 -04:00
compat.h
packet: compat support for sock_fprog
2016-06-09 23:41:03 -07:00
datalink.h
dcbevent.h
dcbnl.h
devlink.h
devlink: remove unused priv_size
2016-08-26 11:55:18 -07:00
dn.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dsa.h
net: dsa: add port fast ageing
2016-09-23 08:38:50 -04:00
dsfield.h
dst.h
net: Added pointer check for dst->ops->neigh_lookup in dst_neigh_lookup_skb
2020-07-22 09:10:48 +02:00
dst_cache.h
net: add dst_cache support
2016-02-16 20:21:48 -05:00
dst_metadata.h
UPSTREAM: bpf: don't rely on the verifier lock for metadata_dst allocation
2026-05-15 17:55:50 +07:00
dst_ops.h
BACKPORT: net: fix __dst_negative_advice() race
2024-08-19 10:13:09 +03:00
esp.h
ethoc.h
fib_rules.h
This is the 4.9.217 stable release
2020-03-20 11:01:08 +01:00
firewire.h
flow.h
UPSTREAM: flow: Extend flow informations with xfrm interface id.
2018-10-26 21:39:51 -07:00
flow_dissector.h
UPSTREAM: flow_dissector: remove unused FLOW_DISSECTOR_F_STOP_AT_L3 flag
2026-05-15 17:58:51 +07:00
flowcache.h
fou.h
fou: Add encap ops for IPv6 tunnels
2016-05-20 18:03:16 -04:00
fq.h
net/flow_dissector: switch to siphash
2019-11-10 11:23:31 +01:00
fq_impl.h
net/flow_dissector: switch to siphash
2019-11-10 11:23:31 +01:00
garp.h
gen_stats.h
net: sched: do not acquire qdisc spinlock in qdisc/class stats dump
2016-06-07 16:37:14 -07:00
genetlink.h
genetlink: remove genl_bind
2020-07-22 09:10:48 +02:00
geneve.h
net: Remove deprecated tunnel specific UDP offload functions
2016-06-17 20:23:32 -07:00
gre.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2016-08-18 01:17:32 -04:00
gro_cells.h
BACKPORT: gro_cells: move to net/core/gro_cells.c
2026-05-15 17:54:38 +07:00
gtp.h
gtp: #define #define _GTP_H_ and not #define _GTP_H
2016-07-25 17:55:43 -07:00
gue.h
hwbm.h
net: add a hardware buffer management helper API
2016-03-14 12:19:46 -04:00
icmp.h
net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending
2021-03-03 17:44:46 +01:00
ieee80211_radiotap.h
mac80211: add support for radiotap timestamp field
2016-09-12 11:45:45 +02:00
ieee802154_netdev.h
net: ieee802154: return -EINVAL for unknown addr type
2022-10-26 13:15:48 +02:00
if_inet6.h
BACKPORT: ipv6: Implement draft-ietf-6man-rfc4941bis
2022-01-31 14:39:14 +00:00
ila.h
inet6_connection_sock.h
ipv6: remove unused in6_addr struct
2016-03-22 15:45:44 -04:00
inet6_hashtables.h
BACKPORT: net: ipv6: add second dif to inet6 socket lookups
2026-05-15 17:55:19 +07:00
inet_common.h
BACKPORT: net: Introduce __inet_bind() and __inet6_bind
2026-05-15 17:56:16 +07:00
inet_connection_sock.h
BACKPORT: inet: Add a 2nd listener hashtable (port+addr)
2026-05-15 17:56:48 +07:00
inet_ecn.h
BACKPORT: sched: consistently handle layer3 header accesses in the presence of VLANs
2026-05-15 17:57:03 +07:00
inet_frag.h
net: IP defrag: encapsulate rbtree defrag code into callable functions
2019-05-02 09:32:06 +02:00
inet_hashtables.h
UPSTREAM: tcp/dccp: fix possible race __inet_lookup_established()
2026-05-15 17:56:49 +07:00
inet_sock.h
This is the 4.9.325 stable release
2022-07-29 18:58:19 +02:00
inet_timewait_sock.h
BACKPORT: ipv4: Namespaceify tcp_tw_recycle and tcp_max_tw_buckets knob
2026-05-15 17:55:39 +07:00
inetpeer.h
net: ipv4: use a dedicated counter for icmp_v4 redirect packets
2019-02-23 09:05:59 +01:00
ip.h
UPSTREAM: udp: Move udp[46]_portaddr_hash() to net/ip[v6].h
2026-05-15 17:56:48 +07:00
ip6_checksum.h
ipv6: Pass proto to csum_ipv6_magic as __u8 instead of unsigned short
2016-03-13 23:55:13 -04:00
ip6_fib.h
ipv6: fix sparse warning on rt6i_node
2017-09-20 08:19:53 +02:00
ip6_route.h
This is the 4.9.277 stable release
2021-07-28 12:36:41 +02:00
ip6_tunnel.h
ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL
2019-07-21 09:05:57 +02:00
ip_fib.h
UPSTREAM: ipv4: fib: Remove unused functions
2026-05-15 17:55:00 +07:00
ip_tunnels.h
ip_tunnel: add collect_md mode to IPIP tunnel
2016-09-17 10:13:07 -04:00
ip_vs.h
ipvs: move old_secure_tcp into struct netns_ipvs
2019-11-12 19:15:57 +01:00
ipcomp.h
ipconfig.h
ipv6.h
UPSTREAM: udp: Move udp[46]_portaddr_hash() to net/ip[v6].h
2026-05-15 17:56:48 +07:00
ipv6_frag.h
ip6: fix skb leak in ip6frag_expire_frag_queue()
2019-09-16 08:19:33 +02:00
ipx.h
iw_handler.h
wext: handle NULL extra data in iwe_stream_add_point better
2017-08-11 08:49:34 -07:00
kcm.h
kcm: Use stream parser
2016-08-17 19:36:23 -04:00
l3mdev.h
ipvlan, l3mdev: fix broken l3s mode wrt local routes
2019-02-06 17:33:27 +01:00
lapb.h
lib80211.h
llc.h
llc: fix out-of-bound array index in llc_sk_dev_hash()
2021-11-26 11:48:39 +01:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc: fix sk_buff leak in llc_conn_service()
2019-11-06 12:18:24 +01:00
llc_if.h
llc_pdu.h
net: llc: fix skb_over_panic
2021-08-04 11:58:03 +02:00
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
lwtunnel.h
lwtunnel: valid encap attr check should return 0 when lwtunnel is disabled
2017-02-18 15:11:42 +01:00
mac80211.h
mac80211: round IEEE80211_TX_STATUS_HEADROOM up to multiple of 4
2018-05-30 07:50:28 +02:00
mac802154.h
ieee802154: cleanup WARN_ON for fc fetch
2016-07-08 13:23:12 +02:00
mip6.h
mld.h
mpls.h
BACKPORT: treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 295
2026-05-15 17:57:45 +07:00
mpls_iptunnel.h
BACKPORT: treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 295
2026-05-15 17:57:45 +07:00
mrp.h
mrp: introduce active flags to prevent UAF when applicant uninit
2023-01-07 12:07:32 +01:00
ncsi.h
net/ncsi: Introduce ncsi_stop_dev()
2016-10-04 02:11:51 -04:00
ndisc.h
UPSTREAM: ipv6: ndisc: RFC-ietf-6man-ra-pref64-09 is now published as RFC8781
2020-11-16 14:33:43 +01:00
neighbour.h
Merge android-4.9.209(c830063) into msm-4.9
2020-03-13 15:47:19 +08:00
net_namespace.h
UPSTREAM: net: xsk: track AF_XDP sockets on a per-netns list
2026-05-15 17:58:06 +07:00
net_ratelimit.h
netevent.h
neigh: Send a notification when DELAY_PROBE_TIME changes
2016-07-05 09:06:29 -07:00
netlabel.h
netlabel: Implement CALIPSO config functions for SMACK.
2016-06-27 15:06:18 -04:00
netlink.h
netlink: fix nla_put_{u8,u16,u32} for KASAN
2017-10-12 11:51:25 +02:00
netprio_cgroup.h
netrom.h
nexthop.h
net: fix rtnh_ok()
2018-05-16 10:08:41 +02:00
nl802154.h
net: ieee802154: handle iftypes as u32
2021-12-08 08:45:03 +01:00
p8022.h
page_pool.h
UPSTREAM: xdp: page_pool related fix to cpumap
2026-05-15 17:57:59 +07:00
ping.h
net: ping: make ping_v6_sendmsg static
2016-03-23 22:09:58 -04:00
pkt_cls.h
net/sched: pkt_cls: change tc actions order to be as the user sets
2016-09-28 05:02:44 -04:00
pkt_sched.h
BACKPORT: sched: consistently handle layer3 header accesses in the presence of VLANs
2026-05-15 17:57:03 +07:00
pptp.h
pptp: Refactor the struct and macros of PPTP codes
2016-08-15 10:55:53 -07:00
protocol.h
BACKPORT: net: Add sysctl to toggle early demux for tcp and udp
2026-05-15 17:54:49 +07:00
psnap.h
raw.h
BACKPORT: net: ipv4: add second dif to raw socket lookups
2026-05-15 17:55:19 +07:00
rawv6.h
UPSTREAM: net: ipv6: add second dif to raw socket lookups
2026-05-15 17:55:19 +07:00
red.h
sch_red: fix off-by-one checks in red_check_params()
2021-04-16 11:59:07 +02:00
regulatory.h
regulatory: add NUL to request alpha2
2018-05-30 07:50:30 +02:00
request_sock.h
BACKPORT: ipv4: Namespaceify tcp_max_syn_backlog knob
2026-05-15 17:55:39 +07:00
rmnet_config.h
net: rmnet_data: Add snapshot of rmnet_data driver
2016-11-01 20:02:26 -06:00
rose.h
route.h
This is the 4.9.104 stable release
2018-05-30 13:19:56 +02:00
rtnetlink.h
can: dev: Move device back to init netns on owning netns delete
2021-03-30 14:41:42 +02:00
sch_generic.h
BACKPORT: flow_dissector: switch kernel context to struct bpf_flow_dissector
2026-05-15 17:58:41 +07:00
scm.h
BACKPORT: pids: Compute task_tgid using signal->leader_pid
2026-05-15 17:59:00 +07:00
secure_seq.h
secure_seq: use the 64 bits of the siphash for port offset calculation
2022-06-25 11:45:19 +02:00
seg6.h
BACKPORT: ipv6: sr: add core files for SR HMAC support
2026-05-15 17:54:16 +07:00
seg6_hmac.h
BACKPORT: ipv6: sr: add core files for SR HMAC support
2026-05-15 17:54:16 +07:00
slhc_vj.h
slip: Check if rstate is initialized before uncompressing
2018-04-20 08:21:07 +02:00
snmp.h
net: snmp: fix 64bit stats on 32bit arches
2016-04-28 11:49:45 -04:00
sock.h
BACKPORT: tcp: allow drivers to tweak TSQ logic
2026-05-15 17:59:25 +07:00
sock_reuseport.h
UPSTREAM: bpf: Enable BPF_PROG_TYPE_SK_REUSEPORT bpf prog in reuseport selection
2026-05-15 17:56:49 +07:00
Space.h
stp.h
strparser.h
BACKPORT: bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
2026-05-15 17:58:46 +07:00
switchdev.h
switchdev: remove FIB offload infrastructure
2016-09-28 04:48:00 -04:00
tcp.h
UPSTREAM: bpf: tcp: Support tcp_congestion_ops in bpf
2026-05-15 17:59:24 +07:00
tcp_states.h
timewait_sock.h
tls.h
UPSTREAM: tls: replace poll implementation with read hook
2026-05-15 17:58:37 +07:00
transp_v6.h
ipv6: add new struct ipcm6_cookie
2016-05-03 16:08:14 -04:00
tso.h
udp.h
BACKPORT: bpf: Hooks for sys_connect
2026-05-15 17:56:15 +07:00
udp_tunnel.h
vxlan: Add new UDP encapsulation offload type for VXLAN-GPE
2016-06-17 20:23:32 -07:00
udplite.h
udplite: fix partial checksum initialization
2018-03-11 16:21:32 +01:00
vsock_addr.h
vxlan.h
vxlan: fix hlist corruption
2017-07-21 07:42:18 +02:00
wext.h
wimax.h
x25.h
net: x25: fix one potential use-after-free issue
2018-04-13 19:48:00 +02:00
x25device.h
xdp.h
UPSTREAM: xdp: page_pool related fix to cpumap
2026-05-15 17:57:59 +07:00
xdp_sock.h
UPSTREAM: xsk: Make xskmap flush_list common for all map instances
2026-05-15 17:59:22 +07:00
xfrm.h
BACKPORT: audit: use inline function to get audit context
2026-05-15 17:59:18 +07:00