Skip to content

Commit 8f7aa3d

Browse files
committed
Merge tag 'net-next-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
Pull networking updates from Jakub Kicinski: "Core & protocols: - Replace busylock at the Tx queuing layer with a lockless list. Resulting in a 300% (4x) improvement on heavy TX workloads, sending twice the number of packets per second, for half the cpu cycles. - Allow constantly busy flows to migrate to a more suitable CPU/NIC queue. Normally we perform queue re-selection when flow comes out of idle, but under extreme circumstances the flows may be constantly busy. Add sysctl to allow periodic rehashing even if it'd risk packet reordering. - Optimize the NAPI skb cache, make it larger, use it in more paths. - Attempt returning Tx skbs to the originating CPU (like we already did for Rx skbs). - Various data structure layout and prefetch optimizations from Eric. - Remove ktime_get() from the recvmsg() fast path, ktime_get() is sadly quite expensive on recent AMD machines. - Extend threaded NAPI polling to allow the kthread busy poll for packets. - Make MPTCP use Rx backlog processing. This lowers the lock pressure, improving the Rx performance. - Support memcg accounting of MPTCP socket memory. - Allow admin to opt sockets out of global protocol memory accounting (using a sysctl or BPF-based policy). The global limits are a poor fit for modern container workloads, where limits are imposed using cgroups. - Improve heuristics for when to kick off AF_UNIX garbage collection. - Allow users to control TCP SACK compression, and default to 33% of RTT. - Add tcp_rcvbuf_low_rtt sysctl to let datacenter users avoid unnecessarily aggressive rcvbuf growth and overshot when the connection RTT is low. - Preserve skb metadata space across skb_push / skb_pull operations. - Support for IPIP encapsulation in the nftables flowtable offload. - Support appending IP interface information to ICMP messages (RFC 5837). - Support setting max record size in TLS (RFC 8449). - Remove taking rtnl_lock from RTM_GETNEIGHTBL and RTM_SETNEIGHTBL. - Use a dedicated lock (and RCU) in MPLS, instead of rtnl_lock. - Let users configure the number of write buffers in SMC. - Add new struct sockaddr_unsized for sockaddr of unknown length, from Kees. - Some conversions away from the crypto_ahash API, from Eric Biggers. - Some preparations for slimming down struct page. - YAML Netlink protocol spec for WireGuard. - Add a tool on top of YAML Netlink specs/lib for reporting commonly computed derived statistics and summarized system state. Driver API: - Add CAN XL support to the CAN Netlink interface. - Add uAPI for reporting PHY Mean Square Error (MSE) diagnostics, as defined by the OPEN Alliance's "Advanced diagnostic features for 100BASE-T1 automotive Ethernet PHYs" specification. - Add DPLL phase-adjust-gran pin attribute (and implement it in zl3073x). - Refactor xfrm_input lock to reduce contention when NIC offloads IPsec and performs RSS. - Add info to devlink params whether the current setting is the default or a user override. Allow resetting back to default. - Add standard device stats for PSP crypto offload. - Leverage DSA frame broadcast to implement simple HSR frame duplication for a lot of switches without dedicated HSR offload. - Add uAPI defines for 1.6Tbps link modes. Device drivers: - Add Motorcomm YT921x gigabit Ethernet switch support. - Add MUCSE driver for N500/N210 1GbE NIC series. - Convert drivers to support dedicated ops for timestamping control, and away from the direct IOCTL handling. While at it support GET operations for PHY timestamping. - Add (and convert most drivers to) a dedicated ethtool callback for reading the Rx ring count. - Significant refactoring efforts in the STMMAC driver, which supports Synopsys turn-key MAC IP integrated into a ton of SoCs. - Ethernet high-speed NICs: - Broadcom (bnxt): - support PPS in/out on all pins - Intel (100G, ice, idpf): - ice: implement standard ethtool and timestamping stats - i40e: support setting the max number of MAC addresses per VF - iavf: support RSS of GTP tunnels for 5G and LTE deployments - nVidia/Mellanox (mlx5): - reduce downtime on interface reconfiguration - disable being an XDP redirect target by default (same as other drivers) to avoid wasting resources if feature is unused - Meta (fbnic): - add support for Linux-managed PCS on 25G, 50G, and 100G links - Wangxun: - support Rx descriptor merge, and Tx head writeback - support Rx coalescing offload - support 25G SPF and 40G QSFP modules - Ethernet virtual: - Google (gve): - allow ethtool to configure rx_buf_len - implement XDP HW RX Timestamping support for DQ descriptor format - Microsoft vNIC (mana): - support HW link state events - handle hardware recovery events when probing the device - Ethernet NICs consumer, and embedded: - usbnet: add support for Byte Queue Limits (BQL) - AMD (amd-xgbe): - add device selftests - NXP (enetc): - add i.MX94 support - Broadcom integrated MACs (bcmgenet, bcmasp): - bcmasp: add support for PHY-based Wake-on-LAN - Broadcom switches (b53): - support port isolation - support BCM5389/97/98 and BCM63XX ARL formats - Lantiq/MaxLinear switches: - support bridge FDB entries on the CPU port - use regmap for register access - allow user to enable/disable learning - support Energy Efficient Ethernet - support configuring RMII clock delays - add tagging driver for MaxLinear GSW1xx switches - Synopsys (stmmac): - support using the HW clock in free running mode - add Eswin EIC7700 support - add Rockchip RK3506 support - add Altera Agilex5 support - Cadence (macb): - cleanup and consolidate descriptor and DMA address handling - add EyeQ5 support - TI: - icssg-prueth: support AF_XDP - Airoha access points: - add missing Ethernet stats and link state callback - add AN7583 support - support out-of-order Tx completion processing - Power over Ethernet: - pd692x0: preserve PSE configuration across reboots - add support for TPS23881B devices - Ethernet PHYs: - Open Alliance OATC14 10BASE-T1S PHY cable diagnostic support - Support 50G SerDes and 100G interfaces in Linux-managed PHYs - micrel: - support for non PTP SKUs of lan8814 - enable in-band auto-negotiation on lan8814 - realtek: - cable testing support on RTL8224 - interrupt support on RTL8221B - motorcomm: support for PHY LEDs on YT853 - microchip: support for LAN867X Rev.D0 PHYs w/ SQI and cable diag - mscc: support for PHY LED control - CAN drivers: - m_can: add support for optional reset and system wake up - remove can_change_mtu() obsoleted by core handling - mcp251xfd: support GPIO controller functionality - Bluetooth: - add initial support for PASTa - WiFi: - split ieee80211.h file, it's way too big - improvements in VHT radiotap reporting, S1G, Channel Switch Announcement handling, rate tracking in mesh networks - improve multi-radio monitor mode support, and add a cfg80211 debugfs interface for it - HT action frame handling on 6 GHz - initial chanctx work towards NAN - MU-MIMO sniffer improvements - WiFi drivers: - RealTek (rtw89): - support USB devices RTL8852AU and RTL8852CU - initial work for RTL8922DE - improved injection support - Intel: - iwlwifi: new sniffer API support - MediaTek (mt76): - WED support for >32-bit DMA - airoha NPU support - regdomain improvements - continued WiFi7/MLO work - Qualcomm/Atheros: - ath10k: factory test support - ath11k: TX power insertion support - ath12k: BSS color change support - ath12k: statistics improvements - brcmfmac: Acer A1 840 tablet quirk - rtl8xxxu: 40 MHz connection fixes/support" * tag 'net-next-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1381 commits) net: page_pool: sanitise allocation order net: page pool: xa init with destroy on pp init net/mlx5e: Support XDP target xmit with dummy program net/mlx5e: Update XDP features in switch channels selftests/tc-testing: Test CAKE scheduler when enqueue drops packets net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop wireguard: netlink: generate netlink code wireguard: uapi: generate header with ynl-gen wireguard: uapi: move flag enums wireguard: uapi: move enum wg_cmd wireguard: netlink: add YNL specification selftests: drv-net: Fix tolerance calculation in devlink_rate_tc_bw.py selftests: drv-net: Fix and clarify TC bandwidth split in devlink_rate_tc_bw.py selftests: drv-net: Set shell=True for sysfs writes in devlink_rate_tc_bw.py selftests: drv-net: Use Iperf3Runner in devlink_rate_tc_bw.py selftests: drv-net: introduce Iperf3Runner for measurement use cases selftests: drv-net: Add devlink_rate_tc_bw.py to TEST_PROGS net: ps3_gelic_net: Use napi_alloc_skb() and napi_gro_receive() Documentation: net: dsa: mention simple HSR offload helpers Documentation: net: dsa: mention availability of RedBox ...
2 parents 015e7b0 + 4de4454 commit 8f7aa3d

File tree

1,652 files changed

+58092
-24019
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,652 files changed

+58092
-24019
lines changed

Documentation/admin-guide/sysctl/net.rst

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,14 @@ mem_pcpu_rsv
212212

213213
Per-cpu reserved forward alloc cache size in page units. Default 1MB per CPU.
214214

215+
bypass_prot_mem
216+
---------------
217+
218+
Skip charging socket buffers to the global per-protocol memory
219+
accounting controlled by net.ipv4.tcp_mem, net.ipv4.udp_mem, etc.
220+
221+
Default: 0 (off)
222+
215223
rmem_default
216224
------------
217225

@@ -347,9 +355,9 @@ skb_defer_max
347355
-------------
348356

349357
Max size (in skbs) of the per-cpu list of skbs being freed
350-
by the cpu which allocated them. Used by TCP stack so far.
358+
by the cpu which allocated them.
351359

352-
Default: 64
360+
Default: 128
353361

354362
optmem_max
355363
----------
@@ -406,6 +414,23 @@ to SOCK_TXREHASH_DEFAULT (i. e. not overridden by setsockopt).
406414
If set to 1 (default), hash rethink is performed on listening socket.
407415
If set to 0, hash rethink is not performed.
408416

417+
txq_reselection_ms
418+
------------------
419+
420+
Controls how often (in ms) a busy connected flow can select another tx queue.
421+
422+
A resection is desirable when/if user thread has migrated and XPS
423+
would select a different queue. Same can occur without XPS
424+
if the flow hash has changed.
425+
426+
But switching txq can introduce reorders, especially if the
427+
old queue is under high pressure. Modern TCP stacks deal
428+
well with reorders if they happen not too often.
429+
430+
To disable this feature, set the value to 0.
431+
432+
Default : 1000
433+
409434
gro_normal_batch
410435
----------------
411436

Documentation/devicetree/bindings/net/airoha,en7581-eth.yaml

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ properties:
1717
compatible:
1818
enum:
1919
- airoha,en7581-eth
20+
- airoha,an7583-eth
2021

2122
reg:
2223
items:
@@ -44,6 +45,7 @@ properties:
4445
- description: PDMA irq
4546

4647
resets:
48+
minItems: 7
4749
maxItems: 8
4850

4951
reset-names:
@@ -54,8 +56,9 @@ properties:
5456
- const: xsi-mac
5557
- const: hsi0-mac
5658
- const: hsi1-mac
57-
- const: hsi-mac
59+
- enum: [ hsi-mac, xfp-mac ]
5860
- const: xfp-mac
61+
minItems: 7
5962

6063
memory-region:
6164
items:
@@ -81,6 +84,36 @@ properties:
8184
interface to implement hardware flow offloading programming Packet
8285
Processor Engine (PPE) flow table.
8386

87+
allOf:
88+
- $ref: ethernet-controller.yaml#
89+
- if:
90+
properties:
91+
compatible:
92+
contains:
93+
enum:
94+
- airoha,en7581-eth
95+
then:
96+
properties:
97+
resets:
98+
minItems: 8
99+
100+
reset-names:
101+
minItems: 8
102+
103+
- if:
104+
properties:
105+
compatible:
106+
contains:
107+
enum:
108+
- airoha,an7583-eth
109+
then:
110+
properties:
111+
resets:
112+
maxItems: 7
113+
114+
reset-names:
115+
maxItems: 7
116+
84117
patternProperties:
85118
"^ethernet@[1-4]$":
86119
type: object

Documentation/devicetree/bindings/net/airoha,en7581-npu.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ properties:
1818
compatible:
1919
enum:
2020
- airoha,en7581-npu
21+
- airoha,an7583-npu
2122

2223
reg:
2324
maxItems: 1
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/net/amd,xgbe-seattle-v1a.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: AMD XGBE Seattle v1a
8+
9+
maintainers:
10+
- Shyam Sundar S K <[email protected]>
11+
12+
allOf:
13+
- $ref: /schemas/net/ethernet-controller.yaml#
14+
15+
properties:
16+
compatible:
17+
const: amd,xgbe-seattle-v1a
18+
19+
reg:
20+
items:
21+
- description: MAC registers
22+
- description: PCS registers
23+
- description: SerDes Rx/Tx registers
24+
- description: SerDes integration registers (1/2)
25+
- description: SerDes integration registers (2/2)
26+
27+
interrupts:
28+
description: Device interrupts. The first entry is the general device
29+
interrupt. If amd,per-channel-interrupt is specified, each DMA channel
30+
interrupt must be specified. The last entry is the PCS auto-negotiation
31+
interrupt.
32+
minItems: 2
33+
maxItems: 6
34+
35+
clocks:
36+
items:
37+
- description: DMA clock for the device
38+
- description: PTP clock for the device
39+
40+
clock-names:
41+
items:
42+
- const: dma_clk
43+
- const: ptp_clk
44+
45+
iommus:
46+
maxItems: 1
47+
48+
phy-mode: true
49+
50+
dma-coherent: true
51+
52+
amd,per-channel-interrupt:
53+
description: Indicates that Rx and Tx complete will generate a unique
54+
interrupt for each DMA channel.
55+
type: boolean
56+
57+
amd,speed-set:
58+
description: >
59+
Speed capabilities of the device.
60+
0 = 1GbE and 10GbE
61+
1 = 2.5GbE and 10GbE
62+
$ref: /schemas/types.yaml#/definitions/uint32
63+
enum: [0, 1]
64+
65+
amd,serdes-blwc:
66+
description: Baseline wandering correction enablement for each speed.
67+
$ref: /schemas/types.yaml#/definitions/uint32-array
68+
minItems: 3
69+
maxItems: 3
70+
items:
71+
enum: [0, 1]
72+
73+
amd,serdes-cdr-rate:
74+
description: CDR rate speed selection for each speed.
75+
$ref: /schemas/types.yaml#/definitions/uint32-array
76+
items:
77+
- description: CDR rate for 1GbE
78+
- description: CDR rate for 2.5GbE
79+
- description: CDR rate for 10GbE
80+
81+
amd,serdes-pq-skew:
82+
description: PQ data sampling skew for each speed.
83+
$ref: /schemas/types.yaml#/definitions/uint32-array
84+
items:
85+
- description: PQ skew for 1GbE
86+
- description: PQ skew for 2.5GbE
87+
- description: PQ skew for 10GbE
88+
89+
amd,serdes-tx-amp:
90+
description: TX amplitude boost for each speed.
91+
$ref: /schemas/types.yaml#/definitions/uint32-array
92+
items:
93+
- description: TX amplitude for 1GbE
94+
- description: TX amplitude for 2.5GbE
95+
- description: TX amplitude for 10GbE
96+
97+
amd,serdes-dfe-tap-config:
98+
description: DFE taps available to run for each speed.
99+
$ref: /schemas/types.yaml#/definitions/uint32-array
100+
items:
101+
- description: DFE taps available for 1GbE
102+
- description: DFE taps available for 2.5GbE
103+
- description: DFE taps available for 10GbE
104+
105+
amd,serdes-dfe-tap-enable:
106+
description: DFE taps to enable for each speed.
107+
$ref: /schemas/types.yaml#/definitions/uint32-array
108+
items:
109+
- description: DFE taps to enable for 1GbE
110+
- description: DFE taps to enable for 2.5GbE
111+
- description: DFE taps to enable for 10GbE
112+
113+
required:
114+
- compatible
115+
- reg
116+
- interrupts
117+
- clocks
118+
- clock-names
119+
- phy-mode
120+
121+
unevaluatedProperties: false
122+
123+
examples:
124+
- |
125+
ethernet@e0700000 {
126+
compatible = "amd,xgbe-seattle-v1a";
127+
reg = <0xe0700000 0x80000>,
128+
<0xe0780000 0x80000>,
129+
<0xe1240800 0x00400>,
130+
<0xe1250000 0x00060>,
131+
<0xe1250080 0x00004>;
132+
interrupts = <0 325 4>,
133+
<0 326 1>, <0 327 1>, <0 328 1>, <0 329 1>,
134+
<0 323 4>;
135+
amd,per-channel-interrupt;
136+
clocks = <&xgbe_dma_clk>, <&xgbe_ptp_clk>;
137+
clock-names = "dma_clk", "ptp_clk";
138+
phy-mode = "xgmii";
139+
mac-address = [ 02 a1 a2 a3 a4 a5 ];
140+
amd,speed-set = <0>;
141+
amd,serdes-blwc = <1>, <1>, <0>;
142+
amd,serdes-cdr-rate = <2>, <2>, <7>;
143+
amd,serdes-pq-skew = <10>, <10>, <30>;
144+
amd,serdes-tx-amp = <15>, <15>, <10>;
145+
amd,serdes-dfe-tap-config = <3>, <3>, <1>;
146+
amd,serdes-dfe-tap-enable = <0>, <0>, <127>;
147+
};

Documentation/devicetree/bindings/net/amd-xgbe.txt

Lines changed: 0 additions & 76 deletions
This file was deleted.

Documentation/devicetree/bindings/net/aspeed,ast2600-mdio.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@ allOf:
1919

2020
properties:
2121
compatible:
22-
const: aspeed,ast2600-mdio
22+
oneOf:
23+
- const: aspeed,ast2600-mdio
24+
- items:
25+
- enum:
26+
- aspeed,ast2700-mdio
27+
- const: aspeed,ast2600-mdio
2328

2429
reg:
2530
maxItems: 1

0 commit comments

Comments
 (0)