kernel-modules: Update i40e, iavf and ice device drivers
This commit updates i40e, iavf and ice device drivers to the following versions, refreshes StarlingX patches and resolves a build failure for the ice device driver with the v5.10 kernel: * i40e 2.16.11 * iavf 4.2.7 * ice 1.6.7 While refreshing the patches, the format and original author attribution of the following i40e patch were fixed: i40e-Enable-getting-link-status-from-VF.patch The following iavf patch was found to be no longer necessary, so it is dropped: 0001-Fix-build-issues.patch Furthermore, we noticed that enabling PREEMPT_RT causes CONFIG_NET_RX_BUSY_POLL to be disabled with recent kernels; however, the XDP code in the ice driver depends on the napi_busy_loop function made available by CONFIG_NET_RX_BUSY_POLL. This in turn results in a build failure. The following patch resolves this issue, and the validity of this patch was confirmed by colleagues at Intel: 0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch Verification: This commit has gone through informal tests by one of the commit authors on a system with a Fortville/X710 network controller (which requires the i40e driver). Formal regression tests were carried out by colleagues in the verification team at Wind River, exercising ice, i40e and iavf device drivers. The titles of these regression test cases are as follows: * test_sriovdp_netdev_single_pod[1-True-1-lock/unlock] * test_sriovdp_netdev_single_pod[max-True-1-lock/unlock] * test_sriovdp_netdev_single_pod[1-True-1-reboot] * test_sriovdp_netdev_single_pod[max-True-1-reboot] * test_sriovdp_netdev_connectivity[1-1-calico-ipam-6] * test_sriovdp_netdev_connectivity[1-1-host-local-6] * test_sriovdp_netdev_ipv6_single_pod * test_sriov_pod_to_pod_netdevice_ping_iperf[1] * test_sriovdp_exceed_max_vf * test_sriovdp_pending_pod[netdevice] * test_sriovdp_resource_allocation[netdevice] * test_sriovdp_replicas_same_network[netdevice] * test_add_delete_vf_interface * test_verify_vfs_cannot_be_created_over_data_interface * test_verify_class_modification_when_vf_interface_configured Credits: Work on this patch was started by Jiping Ma. M. Vefa Bicakci refreshed the i40e patches, and prepared the changes for code review. Thanks to the colleagues in the verification team for their help with the regression tests. Story: 2008921 Task: 43665 Signed-off-by: Jiping Ma <jiping.ma2@windriver.com> Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com> Change-Id: I0cb63c15c415947d1c94c4b7c5143e8d46eabd99
This commit is contained in:
parent
62e6815691
commit
242e5e9b74
@ -1,9 +1,9 @@
|
||||
dpdk-20.05.tar.gz#dpdk-20.05#https://fast.dpdk.org/rel/dpdk-20.05.tar.gz#http##
|
||||
drbd-8.4.11-1.tar.gz#drbd-8.4.11-1#http://www.linbit.com/downloads/drbd/8.4/drbd-8.4.11-1.tar.gz#http##
|
||||
e1000e-3.6.0.tar.gz#e1000e-3.6.0#https://sourceforge.net/projects/e1000/files/e1000e%20stable/3.6.0/e1000e-3.6.0.tar.gz#http##
|
||||
i40e-2.14.13.tar.gz#i40e-2.14.13#https://sourceforge.net/projects/e1000/files/i40e%20stable/2.14.13/i40e-2.14.13.tar.gz/download#http##
|
||||
iavf-4.0.1.tar.gz#iavf-4.0.1#https://sourceforge.net/projects/e1000/files/iavf%20stable/4.0.1/iavf-4.0.1.tar.gz/download#http##
|
||||
ice-1.2.1.tar.gz#ice-1.2.1#https://sourceforge.net/projects/e1000/files/ice%20stable/1.2.1/ice-1.2.1.tar.gz/download#http##
|
||||
i40e-2.16.11.tar.gz#i40e-2.16.11#https://sourceforge.net/projects/e1000/files/i40e%20stable/2.16.11/i40e-2.16.11.tar.gz/download#https##
|
||||
iavf-4.2.7.tar.gz#iavf-4.2.7#https://sourceforge.net/projects/e1000/files/iavf%20stable/4.2.7/iavf-4.2.7.tar.gz/download#https##
|
||||
ice-1.6.7.tar.gz#ice-1.6.7#https://sourceforge.net/projects/e1000/files/ice%20stable/1.6.7/ice-1.6.7.tar.gz/download#https##
|
||||
ixgbe-5.6.5.tar.gz#ixgbe-5.6.5#https://sourceforge.net/projects/e1000/files/ixgbe%20stable/5.6.5/ixgbe-5.6.5.tar.gz/download#http##
|
||||
ixgbevf-4.6.3.tar.gz#ixgbevf-4.6.3#https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/4.6.3/ixgbevf-4.6.3.tar.gz/download#http##
|
||||
!kernel-rt-4.18.0-147.3.1.rt24.96.el8_1.src.rpm#kernel-rt#https://git.centos.org/rpms/kernel-rt#http_script#327ec52423c67051249291f131ec7f6fff44a828#post-dl-script/kernel-rt.sh
|
||||
|
@ -1,6 +1,6 @@
|
||||
COPY_LIST=" \
|
||||
$PKG_BASE/files/* \
|
||||
$STX_BASE/downloads/i40e-2.14.13.tar.gz"
|
||||
$STX_BASE/downloads/i40e-2.16.11.tar.gz"
|
||||
OPT_DEP_LIST_FOR_BUILD_TYPE[std]=$GIT_BASE/kernel-std
|
||||
OPT_DEP_LIST_FOR_BUILD_TYPE[rt]=$GIT_BASE/kernel-rt
|
||||
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-std]=58597630f681940c2a20cca75dc96c06ae9be15b
|
||||
|
@ -8,7 +8,7 @@
|
||||
%define kmod_name i40e
|
||||
|
||||
Name: %{kmod_name}-kmod%{?bt_ext}
|
||||
Version: 2.14.13
|
||||
Version: 2.16.11
|
||||
Release: 0%{?_tis_dist}.%{tis_patch_ver}
|
||||
Group: System Environment/Kernel
|
||||
License: GPLv2
|
||||
|
@ -1,11 +1,7 @@
|
||||
From 647a8819680fb79b0416d0883096e49cc746db0e Mon Sep 17 00:00:00 2001
|
||||
From: Steven Webster <steven.webster@windriver.com>
|
||||
Date: Thu, 25 Jun 2020 11:23:05 -0400
|
||||
Subject: [PATCH] From b8c666367cd98a2b0033c043f6f206abd8e238a6 Mon Sep 17
|
||||
00:00:00 2001 Message-Id:
|
||||
<b8c666367cd98a2b0033c043f6f206abd8e238a6.1572295393.git.Jim.Somerville@windriver.com>
|
||||
From: Vadim Suraev <vsuraev@northforgeinc.com> Date: Mon, 8 Feb 2016 15:57:30
|
||||
-0500 Subject: [PATCH 1/2] i40e: Enable getting link status from VF
|
||||
From de86a2f22230d3193ba08afe02b5bdfe75575089 Mon Sep 17 00:00:00 2001
|
||||
From: Vadim Suraev <vsuraev@northforgeinc.com>
|
||||
Date: Mon, 8 Feb 2016 15:57:30 -0500
|
||||
Subject: [PATCH] i40e: Enable getting link status from VF
|
||||
|
||||
Add handling of custom OP code sent from the PMD VF to get link status via the
|
||||
virtual channel interface.
|
||||
@ -15,16 +11,18 @@ Signed-off-by: eric zhang <eric.zhang@windriver.com>
|
||||
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
||||
Signed-off-by: Steven Webster <Steven.Webster@windriver.com>
|
||||
Signed-off-by: Babak Sarashki <babak.sarashki@windriver.com>
|
||||
[mvb: Refresh patch for i40e v2.6.11]
|
||||
Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com>
|
||||
---
|
||||
src/i40e_virtchnl_pf.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
src/i40e_virtchnl_pf.c | 78 ++++++++++++++++++++++++++++++++++++++++++
|
||||
src/virtchnl.h | 1 +
|
||||
2 files changed, 79 insertions(+)
|
||||
|
||||
diff --git a/src/i40e_virtchnl_pf.c b/src/i40e_virtchnl_pf.c
|
||||
index b7325d0..0542c92 100644
|
||||
index 5ec2a78b937d..11190fb94c29 100644
|
||||
--- a/src/i40e_virtchnl_pf.c
|
||||
+++ b/src/i40e_virtchnl_pf.c
|
||||
@@ -3198,6 +3198,81 @@ err_out:
|
||||
@@ -3249,6 +3249,81 @@ err_out:
|
||||
aq_ret);
|
||||
}
|
||||
|
||||
@ -106,7 +104,7 @@ index b7325d0..0542c92 100644
|
||||
/**
|
||||
* i40e_vc_config_queues_msg
|
||||
* @vf: pointer to the VF info
|
||||
@@ -5065,6 +5140,9 @@ int i40e_vc_process_vf_msg(struct i40e_pf *pf, s16 vf_id, u32 v_opcode,
|
||||
@@ -5331,6 +5406,9 @@ int i40e_vc_process_vf_msg(struct i40e_pf *pf, s16 vf_id, u32 v_opcode,
|
||||
case VIRTCHNL_OP_REQUEST_QUEUES:
|
||||
ret = i40e_vc_request_queues_msg(vf, msg);
|
||||
break;
|
||||
@ -117,17 +115,17 @@ index b7325d0..0542c92 100644
|
||||
case VIRTCHNL_OP_ENABLE_CHANNELS:
|
||||
ret = i40e_vc_add_qch_msg(vf, msg);
|
||||
diff --git a/src/virtchnl.h b/src/virtchnl.h
|
||||
index 4db8bf4..b72f679 100644
|
||||
index e72daf5130de..07f6d8a88db9 100644
|
||||
--- a/src/virtchnl.h
|
||||
+++ b/src/virtchnl.h
|
||||
@@ -132,6 +132,7 @@ enum virtchnl_ops {
|
||||
/* opcodes 39, 40, 41, 42 and 43 are reserved */
|
||||
/* opcode 44 is reserved */
|
||||
/* opcode 45, 46, 47, 48 and 49 are reserved */
|
||||
@@ -150,6 +150,7 @@ enum virtchnl_ops {
|
||||
VIRTCHNL_OP_ENABLE_QUEUES_V2 = 107,
|
||||
VIRTCHNL_OP_DISABLE_QUEUES_V2 = 108,
|
||||
VIRTCHNL_OP_MAP_QUEUE_VECTOR = 111,
|
||||
+ VIRTCHNL_OP_GET_LINK_STAT = 0x101,
|
||||
VIRTCHNL_OP_MAX,
|
||||
};
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
2.29.2
|
||||
|
||||
|
@ -1,18 +1,20 @@
|
||||
From d25056d46d4b5406131274e79243ad7f18242039 Mon Sep 17 00:00:00 2001
|
||||
From a6a16444cbb50ce98c3cdf8ad5dff5e6ef1f66c1 Mon Sep 17 00:00:00 2001
|
||||
From: Jim Somerville <Jim.Somerville@windriver.com>
|
||||
Date: Mon, 26 Mar 2018 11:03:47 -0400
|
||||
Subject: [PATCH 1/2] i40e add more debug info for VFs still in reset
|
||||
Subject: [PATCH] i40e add more debug info for VFs still in reset
|
||||
|
||||
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
||||
[mvb: Refresh patch for i40e v2.6.11]
|
||||
Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com>
|
||||
---
|
||||
src/i40e_virtchnl_pf.c | 16 ++++++++--------
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/i40e_virtchnl_pf.c b/src/i40e_virtchnl_pf.c
|
||||
index b07c9a0..50b1dbd 100644
|
||||
index 11190fb94c29..2de803d3463e 100644
|
||||
--- a/src/i40e_virtchnl_pf.c
|
||||
+++ b/src/i40e_virtchnl_pf.c
|
||||
@@ -5031,8 +5031,8 @@ static int i40e_set_vf_mac(struct i40e_vf *vf, struct i40e_vsi *vsi,
|
||||
@@ -5525,8 +5525,8 @@ static int i40e_set_vf_mac(struct i40e_vf *vf, struct i40e_vsi *vsi,
|
||||
msleep(20);
|
||||
}
|
||||
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
|
||||
@ -23,7 +25,7 @@ index b07c9a0..50b1dbd 100644
|
||||
ret = -EAGAIN;
|
||||
goto error_param;
|
||||
}
|
||||
@@ -5164,8 +5164,8 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev,
|
||||
@@ -5663,8 +5663,8 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev,
|
||||
vf = &pf->vf[vf_id];
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
|
||||
@ -34,7 +36,7 @@ index b07c9a0..50b1dbd 100644
|
||||
ret = -EAGAIN;
|
||||
goto error_pvid;
|
||||
}
|
||||
@@ -5348,8 +5348,8 @@ int i40e_ndo_set_vf_bw(struct net_device *netdev, int vf_id, int max_tx_rate)
|
||||
@@ -5856,8 +5856,8 @@ int i40e_ndo_set_vf_bw(struct net_device *netdev, int vf_id, int max_tx_rate)
|
||||
vf = &pf->vf[vf_id];
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
|
||||
@ -45,7 +47,7 @@ index b07c9a0..50b1dbd 100644
|
||||
ret = -EAGAIN;
|
||||
goto error;
|
||||
}
|
||||
@@ -5547,8 +5547,8 @@ int i40e_ndo_set_vf_spoofchk(struct net_device *netdev, int vf_id, bool enable)
|
||||
@@ -6062,8 +6062,8 @@ int i40e_ndo_set_vf_spoofchk(struct net_device *netdev, int vf_id, bool enable)
|
||||
|
||||
vf = &(pf->vf[vf_id]);
|
||||
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
|
||||
|
@ -1,7 +1,6 @@
|
||||
COPY_LIST=" \
|
||||
$PKG_BASE/files/* \
|
||||
$DISTRO/patches/* \
|
||||
$STX_BASE/downloads/iavf-4.0.1.tar.gz"
|
||||
$STX_BASE/downloads/iavf-4.2.7.tar.gz"
|
||||
OPT_DEP_LIST_FOR_BUILD_TYPE[std]=$GIT_BASE/kernel-std
|
||||
OPT_DEP_LIST_FOR_BUILD_TYPE[rt]=$GIT_BASE/kernel-rt
|
||||
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-std]=58597630f681940c2a20cca75dc96c06ae9be15b
|
||||
|
@ -8,7 +8,7 @@
|
||||
%define kmod_name iavf
|
||||
|
||||
Name: %{kmod_name}-kmod%{?bt_ext}
|
||||
Version: 4.0.1
|
||||
Version: 4.2.7
|
||||
Release: 0%{?_tis_dist}.%{tis_patch_ver}
|
||||
Group: System Environment/Kernel
|
||||
License: GPLv2
|
||||
@ -30,8 +30,6 @@ Source0: %{kmod_name}-%{version}.tar.gz
|
||||
Source5: GPL-v2.0.txt
|
||||
Source11: modules-load.conf
|
||||
|
||||
Patch01: 0001-Fix-build-issues.patch
|
||||
|
||||
%define kversion %(rpm -q kernel%{?bt_ext}-devel | sort --version-sort | tail -1 | sed 's/kernel%{?bt_ext}-devel-//')
|
||||
|
||||
%package -n kmod-iavf%{?bt_ext}
|
||||
|
@ -1,50 +0,0 @@
|
||||
From 5784019caaa7d4d33798be2e70ea5b63d9c5252a Mon Sep 17 00:00:00 2001
|
||||
From: Jiping Ma <jiping.ma2@windriver.com>
|
||||
Date: Tue, 29 Jun 2021 19:09:25 -0700
|
||||
Subject: [PATCH] Fix build issues
|
||||
|
||||
1. Deleted dma_zalloc_coherent() because it had been removed.
|
||||
dma_zalloc_coherent() is no longer needed as it has no users because
|
||||
dma_alloc_coherent() already zeroes out memory for us.
|
||||
2. Use smp_rmb() directly in 5.10 version.
|
||||
|
||||
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
|
||||
---
|
||||
src/iavf_helper.h | 5 -----
|
||||
src/iavf_txrx.c | 2 +-
|
||||
2 files changed, 1 insertion(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/iavf_helper.h b/src/iavf_helper.h
|
||||
index edfa216..de79f96 100644
|
||||
--- a/src/iavf_helper.h
|
||||
+++ b/src/iavf_helper.h
|
||||
@@ -21,13 +21,8 @@ inline int iavf_allocate_dma_mem_d(struct iavf_hw *hw,
|
||||
struct iavf_adapter *nf = (struct iavf_adapter *)hw->back;
|
||||
|
||||
mem->size = ALIGN(size, alignment);
|
||||
-#ifdef HAVE_DMA_ALLOC_COHERENT_ZEROES_MEM
|
||||
mem->va = dma_alloc_coherent(&nf->pdev->dev, mem->size,
|
||||
&mem->pa, GFP_KERNEL);
|
||||
-#else /* HAVE_DMA_ALLOC_COHERENT_ZEROES_MEM */
|
||||
- mem->va = dma_zalloc_coherent(&nf->pdev->dev, mem->size,
|
||||
- &mem->pa, GFP_KERNEL);
|
||||
-#endif /* HAVE_DMA_ALLOC_COHERENT_ZEROES_MEM */
|
||||
if (!mem->va)
|
||||
return -ENOMEM;
|
||||
|
||||
diff --git a/src/iavf_txrx.c b/src/iavf_txrx.c
|
||||
index 03c685c..da3cfed 100644
|
||||
--- a/src/iavf_txrx.c
|
||||
+++ b/src/iavf_txrx.c
|
||||
@@ -289,7 +289,7 @@ static bool iavf_clean_tx_irq(struct iavf_vsi *vsi,
|
||||
break;
|
||||
|
||||
/* prevent any other reads prior to eop_desc */
|
||||
- read_barrier_depends();
|
||||
+ smp_rmb();
|
||||
|
||||
iavf_trace(clean_tx_irq, tx_ring, tx_desc, tx_buf);
|
||||
/* if the descriptor isn't done, no work yet to do */
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,6 +1,6 @@
|
||||
COPY_LIST=" \
|
||||
$PKG_BASE/files/* \
|
||||
$STX_BASE/downloads/ice-1.2.1.tar.gz"
|
||||
$STX_BASE/downloads/ice-1.6.7.tar.gz"
|
||||
OPT_DEP_LIST_FOR_BUILD_TYPE[std]=$GIT_BASE/kernel-std
|
||||
OPT_DEP_LIST_FOR_BUILD_TYPE[rt]=$GIT_BASE/kernel-rt
|
||||
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-std]=b34c955b48fb99542644e4fe8ae4d49cb2f8bb28
|
||||
|
@ -7,7 +7,7 @@
|
||||
%define kmod_name ice
|
||||
|
||||
Name: %{kmod_name}-kmod%{?bt_ext}
|
||||
Version: 1.2.1
|
||||
Version: 1.6.7
|
||||
Release: 0%{?_tis_dist}.%{tis_patch_ver}
|
||||
Group: System Environment/Kernel
|
||||
License: GPL-2.0
|
||||
@ -30,6 +30,7 @@ Source0: %{kmod_name}-%{version}.tar.gz
|
||||
Source11: modules-load.conf
|
||||
|
||||
|
||||
Patch1: 0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch
|
||||
|
||||
%define kversion %(rpm -q kernel%{?bt_ext}-devel | sort --version-sort | tail -1 | sed 's/kernel%{?bt_ext}-devel-//')
|
||||
%define find() %(for f in %*; do if [ -e $f ]; then echo $f; break; fi; done)
|
||||
|
@ -0,0 +1,47 @@
|
||||
From a25ae52b1381527b89a61e0ed0c34d5fac6ffca4 Mon Sep 17 00:00:00 2001
|
||||
From: Jiping Ma <jiping.ma2@windriver.com>
|
||||
Date: Tue, 24 Aug 2021 00:30:02 -0700
|
||||
Subject: [PATCH] ice_xsk: Avoid dependency on napi_busy_loop with PREEMPT_RT
|
||||
|
||||
This commit fixes the following error encountered when compiling the ice
|
||||
device driver against PREEMPT_RT-enabled kernels:
|
||||
|
||||
error: implicit declaration of function 'napi_busy_loop'
|
||||
|
||||
This error is encountered, because, with recent kernels, defining
|
||||
CONFIG_PREEMPT_RT unsets the CONFIG_NET_RX_BUSY_POLL kernel
|
||||
configuration option, which in turn causes the napi_busy_loop function
|
||||
to not be defined.
|
||||
|
||||
The fix implemented in this patch was confirmed to be correct by
|
||||
consulting colleagues at Intel.
|
||||
|
||||
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
|
||||
[mvb: Update commit message.]
|
||||
Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com>
|
||||
---
|
||||
src/ice_xsk.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/ice_xsk.c b/src/ice_xsk.c
|
||||
index 43012bb9b115..795cdba3d5c1 100644
|
||||
--- a/src/ice_xsk.c
|
||||
+++ b/src/ice_xsk.c
|
||||
@@ -1302,12 +1302,14 @@ int ice_xsk_async_xmit(struct net_device *netdev, u32 queue_id)
|
||||
*/
|
||||
q_vector = ring->q_vector;
|
||||
if (!napi_if_scheduled_mark_missed(&q_vector->napi)) {
|
||||
+#ifdef CONFIG_NET_RX_BUSY_POLL
|
||||
if (ice_ring_ch_enabled(vsi->rx_rings[queue_id]) &&
|
||||
!ice_vsi_pkt_inspect_opt_ena(vsi))
|
||||
#define ICE_BUSY_POLL_BUDGET 8
|
||||
napi_busy_loop(q_vector->napi.napi_id, NULL, NULL,
|
||||
false, ICE_BUSY_POLL_BUDGET);
|
||||
else
|
||||
+#endif
|
||||
ice_trigger_sw_intr(&vsi->back->hw, q_vector);
|
||||
}
|
||||
|
||||
--
|
||||
2.29.2
|
||||
|
Loading…
x
Reference in New Issue
Block a user