Skip to content

Commit 985cf8e

Browse files
DawidWesierski4awilczyns
authored andcommitted
Add: support ice 2.6.6 in kahawai runtime
Add support for ice 2.6.6, increase error handling add more comprehensive git patch commit messages.
1 parent 0f19a8c commit 985cf8e

6 files changed

Lines changed: 213 additions & 3 deletions
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
From cca447de21727b653dd5251ceb960aa0a8d9a447 Mon Sep 17 00:00:00 2001
2+
From: Szumski Tomasz <tomasz.szumski@intel.com>
3+
Date: Fri, 11 Jul 2025 13:32:58 +0200
4+
Subject: [PATCH 1/4] vf: support kahawai runtime rl queue
5+
6+
---
7+
src/ice_virtchnl.c | 14 +++++++++-----
8+
1 file changed, 9 insertions(+), 5 deletions(-)
9+
10+
diff --git a/src/ice_virtchnl.c b/src/ice_virtchnl.c
11+
index 0eb4250..040a1b4 100644
12+
--- a/src/ice_virtchnl.c
13+
+++ b/src/ice_virtchnl.c
14+
@@ -3657,6 +3657,11 @@ static int ice_vc_cfg_q_bw(struct ice_vf *vf, u8 *msg)
15+
16+
memcpy(vf->qs_bw, qs_bw, len);
17+
18+
+ /* for kahawai runtime rl */
19+
+ if (vf->qs_bw)
20+
+ if (ice_vf_cfg_qs_bw(vf, qbw->num_queues))
21+
+ v_ret = VIRTCHNL_STATUS_ERR_PARAM;
22+
+
23+
err_bw:
24+
kfree(qs_bw);
25+
26+
@@ -3787,9 +3787,11 @@ ice_vc_cfg_txq(struct ice_vf *vf, struct ice_vsi *vsi,
27+
vsi->tx_rings[q_idx]->dma = txqi->dma_ring_addr;
28+
vsi->tx_rings[q_idx]->count = txqi->ring_len;
29+
30+
+#if 0 /* for kahawai runtime rl */
31+
/* Disable queue before reconfiguration */
32+
if (ice_vf_vsi_dis_single_txq(vf, vsi, q_idx, txqi->queue_id))
33+
return VIRTCHNL_STATUS_ERR_PARAM;
34+
+#endif
35+
36+
/* Configure txtime/timestamp support if enabled */
37+
if (txqi->flags & VIRTCHNL_TXQ_FLAG_TXTIME_ENABLED) {
38+
@@ -3929,9 +3934,10 @@ static int ice_vc_cfg_qs_msg(struct ice_vf *vf, u8 *msg)
39+
}
40+
}
41+
}
42+
-
43+
+#if 0 /* for kahawai runtime rl */
44+
if (ice_vf_cfg_qs_bw(vf, qci->num_queue_pairs))
45+
goto error_param;
46+
+#endif
47+
#ifdef HAVE_NETDEV_UPPER_INFO
48+
49+
if (lag && lag->bonded && lag->primary &&
50+
--
51+
2.34.1
52+
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
From d41ec37b2e33ccdf88186eb540dbdd72689fa8ab Mon Sep 17 00:00:00 2001
2+
From: "Wesierski, Dawid" <dawid.wesierski@intel.com>
3+
Date: Mon, 27 Apr 2026 04:39:51 -0400
4+
Subject: [PATCH 1/3] ice: reduce TX scheduler default burst size to 2 KB
5+
6+
Reduce ICE_SCHED_DFLT_BURST_SIZE from 15 KB to 2 KB to meet
7+
ST 2110-21 narrow-sender compliance requirements.
8+
9+
The E810 TX scheduler uses a token bucket algorithm for
10+
hardware rate limiting. A 15 KB burst allows ~10 max-size
11+
Ethernet frames to be sent back-to-back, creating
12+
micro-bursts that violate the ST 2110-21 narrow-sender VRX
13+
budget. Reducing to 2 KB (~1.3 frames) forces near-constant
14+
rate output matching the configured shaper profile, keeping
15+
inter-packet spacing within the required jitter tolerance.
16+
17+
This must match the DPDK PMD-side burst size for consistent
18+
PF/VF rate limiting behavior.
19+
20+
Change-type: FeatureImplementation
21+
Signed-off-by: Wesierski, Dawid <dawid.wesierski@intel.com>
22+
---
23+
src/ice_type.h | 2 +-
24+
1 file changed, 1 insertion(+), 1 deletion(-)
25+
26+
diff --git a/src/ice_type.h b/src/ice_type.h
27+
index c2bf987..360478b 100644
28+
--- a/src/ice_type.h
29+
+++ b/src/ice_type.h
30+
@@ -1122,7 +1122,7 @@ enum ice_rl_type {
31+
#define ICE_SCHED_DFLT_RL_PROF_ID 0
32+
#define ICE_SCHED_NO_SHARED_RL_PROF_ID 0xFFFF
33+
#define ICE_SCHED_INVAL_PROF_ID 0xFFFF
34+
-#define ICE_SCHED_DFLT_BURST_SIZE (15 * 1024) /* in bytes (15k) */
35+
+#define ICE_SCHED_DFLT_BURST_SIZE (2 * 1024) /* in bytes (2k) */
36+
37+
/* Access Macros for Tx Sched RL Profile data */
38+
#define ICE_TXSCHED_GET_RL_PROF_ID(p) le16_to_cpu((p)->info.profile_id)
39+
--
40+
2.47.3
41+
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
From c354eda48c4c2d4bf4c53c3ccaf59e4741426ac1 Mon Sep 17 00:00:00 2001
2+
From: "Wesierski, Dawid" <dawid.wesierski@intel.com>
3+
Date: Mon, 27 Apr 2026 04:40:15 -0400
4+
Subject: [PATCH 2/3] ice: allow VIRTCHNL_VF_LARGE_NUM_QPAIRS with ICE_LUT_VSI
5+
6+
Remove the rss_lut_type != ICE_LUT_VSI restriction when
7+
negotiating the VIRTCHNL_VF_LARGE_NUM_QPAIRS capability.
8+
9+
ST2110 workloads create one TX/RX queue pair per media
10+
session. A single VF handling multiple simultaneous video,
11+
audio, and ancillary data sessions can easily exceed the
12+
default 16 queue pair limit. LARGE_NUM_QPAIRS lifts this cap
13+
but was blocked when using ICE_LUT_VSI RSS lookup type.
14+
15+
For ST2110 use cases, RSS distribution is not the primary
16+
concern since media streams use flow director rules for
17+
steering. The LUT type restriction unnecessarily prevents
18+
allocating enough queues for multi-session operation.
19+
20+
Change-type: FeatureImplementation
21+
Signed-off-by: Wesierski, Dawid <dawid.wesierski@intel.com>
22+
---
23+
src/ice_virtchnl.c | 3 +--
24+
1 file changed, 1 insertion(+), 2 deletions(-)
25+
26+
diff --git a/src/ice_virtchnl.c b/src/ice_virtchnl.c
27+
index bc68d8a..d3553d7 100644
28+
--- a/src/ice_virtchnl.c
29+
+++ b/src/ice_virtchnl.c
30+
@@ -769,8 +769,7 @@ static int ice_vc_get_vf_res_msg(struct ice_vf *vf, u8 *msg)
31+
if (test_bit(VIRTCHNL_VF_OFFLOAD_USO, vf->driver_caps))
32+
vfres->vf_cap_flags |= BIT(VIRTCHNL_VF_OFFLOAD_USO);
33+
34+
- if (test_bit(VIRTCHNL_VF_LARGE_NUM_QPAIRS, vf->driver_caps) &&
35+
- vsi->rss_lut_type != ICE_LUT_VSI)
36+
+if (test_bit(VIRTCHNL_VF_LARGE_NUM_QPAIRS, vf->driver_caps))
37+
vfres->vf_cap_flags |= BIT(VIRTCHNL_VF_LARGE_NUM_QPAIRS);
38+
39+
/* Indicate that VF can send more flags in VIRTCHNL_OP_GET_VF_CAPS2 */
40+
--
41+
2.47.3
42+
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
From 81b4613fa0e03d7294be558393d401ef33e889ab Mon Sep 17 00:00:00 2001
2+
From: "Wesierski, Dawid" <dawid.wesierski@intel.com>
3+
Date: Fri, 12 Jun 2026 08:56:46 -0400
4+
Subject: [PATCH 3/3] virtchnl: fix MAP_QUEUE_VECTOR legacy size calculation
5+
6+
VF traffic could be fully blocked when processing
7+
VIRTCHNL_OP_MAP_QUEUE_VECTOR (opcode 111) due to an ABI length
8+
mismatch between PF validation and VF message size computation.
9+
10+
The queue-vector map payload uses a legacy [1]-tail struct size
11+
convention. Using __vss_full() over-counts one element for this
12+
struct, making PF expect a message 16 bytes larger than what VF
13+
sends for a given map count.
14+
15+
For 32 maps:
16+
- VF sends: 8 + 32*16 = 520
17+
- PF expected (wrong): 24 + 32*16 = 536
18+
- PF expected (correct): 24 + (32-1)*16 = 520
19+
20+
This mismatch causes PF to reject opcode 111 with -EINVAL /
21+
VIRTCHNL_STATUS_ERR_PARAM. As a result, queue->vector mapping is not
22+
established, RX queues are never polled by NAPI, and VF software sees
23+
zero packets despite hardware RX counters increasing.
24+
25+
Fix by switching virtchnl_ss_queue_vector_maps() from __vss_full()
26+
to __vss_byelem(), which is the correct helper for legacy structs
27+
whose LEGACY_SIZEOF already includes one element.
28+
29+
Signed-off-by: Wesierski, Dawid <dawid.wesierski@intel.com>
30+
---
31+
src/virtchnl.h | 2 +-
32+
1 file changed, 1 insertion(+), 1 deletion(-)
33+
34+
diff --git a/src/virtchnl.h b/src/virtchnl.h
35+
index 6d185cb..1054fd3 100644
36+
--- a/src/virtchnl.h
37+
+++ b/src/virtchnl.h
38+
@@ -2161,7 +2161,7 @@ VIRTCHNL_CHECK_STRUCT_LEN(12, virtchnl_fdir_del);
39+
virtchnl_ss_byone(p, m, c, virtchnl_rss_lut)
40+
41+
#define virtchnl_ss_queue_vector_maps(p, m, c) \
42+
- __vss_full(p, m, c, virtchnl_queue_vector_maps_LEGACY_SIZEOF)
43+
+ __vss_byelem(p, m, c, virtchnl_queue_vector_maps_LEGACY_SIZEOF)
44+
45+
/* Status returned to VF after VF requests FSUB commands
46+
* VIRTCHNL_FSUB_SUCCESS
47+
--
48+
2.47.3
49+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
From 8e3a7ccd0857bb9d2fced745b548bbcaac0d2305 Mon Sep 17 00:00:00 2001
2+
From: "Wesierski, Dawid" <dawid.wesierski@intel.com>
3+
Date: Thu, 18 Jun 2026 07:25:38 -0400
4+
Subject: [PATCH] version: update to Kahawai_2.6.6
5+
6+
Signed-off-by: Wesierski, Dawid <dawid.wesierski@intel.com>
7+
---
8+
src/ice_main.c | 2 +-
9+
1 file changed, 1 insertion(+), 1 deletion(-)
10+
11+
diff --git a/src/ice_main.c b/src/ice_main.c
12+
index 14eebe1..42f5c66 100644
13+
--- a/src/ice_main.c
14+
+++ b/src/ice_main.c
15+
@@ -33,7 +33,7 @@
16+
#define DRV_VERSION_MINOR 6
17+
#define DRV_VERSION_BUILD 6
18+
19+
-#define DRV_VERSION "2.6.6"
20+
+#define DRV_VERSION "Kahawai_2.6.6"
21+
#define DRV_SUMMARY "Intel(R) Ethernet Connection E800 Series Linux Driver"
22+
#ifdef ICE_ADD_PROBES
23+
#define DRV_VERSION_EXTRA "_probes"
24+
--
25+
2.47.3
26+

versions.env

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
DPDK_VER=26.03
22
DPDK_MTL_MINOR_VER=90
3-
ICE_VER=2.5.4
4-
ICE_DMID=916199
3+
ICE_VER=2.6.6
4+
ICE_DMID=921605
55
ONE_API_GPU_VER=1.22.3
66
LIBRIST_COMMIT_VER=9f09a3defd6e59839aae3e3b7b5411213fa04b8a
77
RUST_HOOK_CARGO_VER=0.5.5
@@ -13,4 +13,4 @@ DPDK_REPO=https://github.com/dpdk/dpdk/archive/refs/tags/v${DPDK_VER}.tar.gz
1313
ICE_REPO=https://downloadmirror.intel.com/${ICE_DMID}/ice-${ICE_VER}.tar.gz
1414
ONE_API_REPO=https://github.com/oneapi-src/level-zero/archive/refs/tags/v${ONE_API_GPU_VER}.tar.gz
1515
XDP_REPO_URL=https://github.com/xdp-project/xdp-tools/archive/refs/tags/v${XDP_TOOLS_VER}.zip
16-
EBPF_REPO_URL=https://github.com/libbpf/libbpf/archive/refs/tags/v${EBPF_VER}.zip
16+
EBPF_REPO_URL=https://github.com/libbpf/libbpf/archive/refs/tags/v${EBPF_VER}.zip

0 commit comments

Comments
 (0)