Skip to content

Commit f9bd69b

Browse files
committed
Merge: [Intel 9.6 FEAT] ice: Driver Update
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/5841 JIRA: https://issues.redhat.com/browse/RHEL-49816 Driver update to version v6.12 Signed-off-by: Petr Oros <poros@redhat.com> Approved-by: Michal Schmidt <mschmidt@redhat.com> Approved-by: Kamal Heib <kheib@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: Rado Vrbovsky <rvrbovsk@redhat.com>
2 parents 898ef0f + 05b69e0 commit f9bd69b

Some content is hidden

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

77 files changed

+8762
-1199
lines changed

Documentation/networking/device_drivers/ethernet/intel/ice.rst

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -368,15 +368,28 @@ more options for Receive Side Scaling (RSS) hash byte configuration.
368368
# ethtool -N <ethX> rx-flow-hash <type> <option>
369369

370370
Where <type> is:
371-
tcp4 signifying TCP over IPv4
372-
udp4 signifying UDP over IPv4
373-
tcp6 signifying TCP over IPv6
374-
udp6 signifying UDP over IPv6
371+
tcp4 signifying TCP over IPv4
372+
udp4 signifying UDP over IPv4
373+
gtpc4 signifying GTP-C over IPv4
374+
gtpc4t signifying GTP-C (include TEID) over IPv4
375+
gtpu4 signifying GTP-U over IPV4
376+
gtpu4e signifying GTP-U and Extension Header over IPV4
377+
gtpu4u signifying GTP-U PSC Uplink over IPV4
378+
gtpu4d signifying GTP-U PSC Downlink over IPV4
379+
tcp6 signifying TCP over IPv6
380+
udp6 signifying UDP over IPv6
381+
gtpc6 signifying GTP-C over IPv6
382+
gtpc6t signifying GTP-C (include TEID) over IPv6
383+
gtpu6 signifying GTP-U over IPV6
384+
gtpu6e signifying GTP-U and Extension Header over IPV6
385+
gtpu6u signifying GTP-U PSC Uplink over IPV6
386+
gtpu6d signifying GTP-U PSC Downlink over IPV6
375387
And <option> is one or more of:
376388
s Hash on the IP source address of the Rx packet.
377389
d Hash on the IP destination address of the Rx packet.
378390
f Hash on bytes 0 and 1 of the Layer 4 header of the Rx packet.
379391
n Hash on bytes 2 and 3 of the Layer 4 header of the Rx packet.
392+
e Hash on GTP Packet on TEID (4bytes) of the Rx packet.
380393

381394

382395
Accelerated Receive Flow Steering (aRFS)

Documentation/networking/devlink/ice.rst

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Parameters
1111
==========
1212

1313
.. list-table:: Generic parameters implemented
14+
:widths: 5 5 90
1415

1516
* - Name
1617
- Mode
@@ -21,6 +22,77 @@ Parameters
2122
* - ``enable_iwarp``
2223
- runtime
2324
- mutually exclusive with ``enable_roce``
25+
* - ``tx_scheduling_layers``
26+
- permanent
27+
- The ice hardware uses hierarchical scheduling for Tx with a fixed
28+
number of layers in the scheduling tree. Each of them are decision
29+
points. Root node represents a port, while all the leaves represent
30+
the queues. This way of configuring the Tx scheduler allows features
31+
like DCB or devlink-rate (documented below) to configure how much
32+
bandwidth is given to any given queue or group of queues, enabling
33+
fine-grained control because scheduling parameters can be configured
34+
at any given layer of the tree.
35+
36+
The default 9-layer tree topology was deemed best for most workloads,
37+
as it gives an optimal ratio of performance to configurability. However,
38+
for some specific cases, this 9-layer topology might not be desired.
39+
One example would be sending traffic to queues that are not a multiple
40+
of 8. Because the maximum radix is limited to 8 in 9-layer topology,
41+
the 9th queue has a different parent than the rest, and it's given
42+
more bandwidth credits. This causes a problem when the system is
43+
sending traffic to 9 queues:
44+
45+
| tx_queue_0_packets: 24163396
46+
| tx_queue_1_packets: 24164623
47+
| tx_queue_2_packets: 24163188
48+
| tx_queue_3_packets: 24163701
49+
| tx_queue_4_packets: 24163683
50+
| tx_queue_5_packets: 24164668
51+
| tx_queue_6_packets: 23327200
52+
| tx_queue_7_packets: 24163853
53+
| tx_queue_8_packets: 91101417 < Too much traffic is sent from 9th
54+
55+
To address this need, you can switch to a 5-layer topology, which
56+
changes the maximum topology radix to 512. With this enhancement,
57+
the performance characteristic is equal as all queues can be assigned
58+
to the same parent in the tree. The obvious drawback of this solution
59+
is a lower configuration depth of the tree.
60+
61+
Use the ``tx_scheduling_layer`` parameter with the devlink command
62+
to change the transmit scheduler topology. To use 5-layer topology,
63+
use a value of 5. For example:
64+
$ devlink dev param set pci/0000:16:00.0 name tx_scheduling_layers
65+
value 5 cmode permanent
66+
Use a value of 9 to set it back to the default value.
67+
68+
You must do PCI slot powercycle for the selected topology to take effect.
69+
70+
To verify that value has been set:
71+
$ devlink dev param show pci/0000:16:00.0 name tx_scheduling_layers
72+
.. list-table:: Driver specific parameters implemented
73+
:widths: 5 5 90
74+
75+
* - Name
76+
- Mode
77+
- Description
78+
* - ``local_forwarding``
79+
- runtime
80+
- Controls loopback behavior by tuning scheduler bandwidth.
81+
It impacts all kinds of functions: physical, virtual and
82+
subfunctions.
83+
Supported values are:
84+
85+
``enabled`` - loopback traffic is allowed on port
86+
87+
``disabled`` - loopback traffic is not allowed on this port
88+
89+
``prioritized`` - loopback traffic is prioritized on this port
90+
91+
Default value of ``local_forwarding`` parameter is ``enabled``.
92+
``prioritized`` provides ability to adjust loopback traffic rate to increase
93+
one port capacity at cost of the another. User needs to disable
94+
local forwarding on one of the ports in order have increased capacity
95+
on the ``prioritized`` port.
2496

2597
Info versions
2698
=============
@@ -309,7 +381,7 @@ features are enabled after the hierarchy is exported, but before any
309381
changes are made.
310382

311383
This feature is also dependent on switchdev being enabled in the system.
312-
It's required bacause devlink-rate requires devlink-port objects to be
384+
It's required because devlink-rate requires devlink-port objects to be
313385
present, and those objects are only created in switchdev mode.
314386

315387
If the driver is set to the switchdev mode, it will export internal
@@ -344,7 +416,7 @@ nodes and nodes with children also can't be deleted.
344416
* - ``tx_weight``
345417
- allows for usage of Weighted Fair Queuing arbitration scheme among
346418
siblings. This arbitration scheme can be used simultaneously with
347-
the strict priority. Range 1-200. Only relative values mater for
419+
the strict priority. Range 1-200. Only relative values matter for
348420
arbitration.
349421

350422
``tx_priority`` and ``tx_weight`` can be used simultaneously. In that case

drivers/net/ethernet/intel/ice/Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,13 @@ ice-y := ice_main.o \
2828
ice_vlan_mode.o \
2929
ice_flex_pipe.o \
3030
ice_flow.o \
31+
ice_parser.o \
32+
ice_parser_rt.o \
3133
ice_idc.o \
3234
devlink/devlink.o \
3335
devlink/devlink_port.o \
36+
ice_sf_eth.o \
37+
ice_sf_vsi_vlan_ops.o \
3438
ice_ddp.o \
3539
ice_fw_update.o \
3640
ice_lag.o \

0 commit comments

Comments
 (0)