CentOS: Upgrade ice, i40e, iavf drivers to bundle 27.1

This upgrades the intel driver versions to the ones listed
in Intel driver bundle 27.1. The list can be found here:
https://downloadmirror.intel.com/727294/Release_Notes_27.1.pdf
Also upgrades the ddp firmware to ice_comms-1.3.35.0 from
ice_comm-1.3.31.0.

0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch
has been dropped because the fix had been integrated to the
driver ice-1.8.3.

The new versions are:
ice-1.8.3
i40e-2.18.9
iavf-4.2.2

Reason:
Update ICE driver to support the Intel Logan Beach NIC (E810-CQDA2T),
and that dictates the upgrade of the iavf driver which in turn
dictates the upgrade of the i40e driver. We select the versions
listed in official Intel driver bundle 27.1 to keep the driver
versions compatible with each other. The ice_comm ddp firmware
upgrade to version 1.3.35.0 is also dictated by the bundle.

Verification:
- installs from iso succeed on servers with ice(Intel Ethernet
  Controller E810) and i40e hw(Intel Ethernet Controller X710)
- interfaces are up and pass packets
- create vfs, ensure that they are picked up by the new iavf
  driver and that the interface can come up and pass packets
- Check dmesg to see DDP package is loaded successfully and
  the version is 1.3.35.0.

Note that we do not test it on Intel Logan Beach NIC, because
the network adapter is not available in our lab yet. We will test it
once Intel Logan Beach NIC is ready.

Story: 2009952
Task: 44895
Depends-On: https://review.opendev.org/c/starlingx/tools/+/836728

Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
Change-Id: I93dcf00fe443c4f86db2f8a65e159f9da05acc29
This commit is contained in:
Jiping Ma 2022-03-14 07:52:06 +00:00 committed by Jiping Ma
parent 6fe8d60832
commit fcec7cba9b
10 changed files with 36 additions and 82 deletions

View File

@ -3,6 +3,6 @@ mlnx-tools-5.2.0-0.55103.src.rpm
mstflint-4.16.0-1.55103.src.rpm
rdma-core-55mlnx37-1.55103.src.rpm
opae-intel-fpga-driver-2.0.1-10.src.rpm
ice_comms-1.3.31.0.zip
ice_comms-1.3.35.0.zip
netxtreme-bnxt_en-1.10.2-220.0.13.0.tar.gz
libbnxt_re-220.0.5.0-rhel7u9.src.rpm

View File

@ -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.17.4.tar.gz#i40e-2.17.4#https://sourceforge.net/projects/e1000/files/i40e%20stable/2.17.4/i40e-2.17.4.tar.gz/download#https##
iavf-4.3.19.tar.gz#iavf-4.3.19#https://sourceforge.net/projects/e1000/files/iavf%20stable/4.3.19/iavf-4.3.19.tar.gz/download#https##
ice-1.7.16.tar.gz#ice-1.7.16#https://sourceforge.net/projects/e1000/files/ice%20stable/1.7.16/ice-1.7.16.tar.gz/download#https##
i40e-2.18.9.tar.gz#i40e-2.18.9#https://sourceforge.net/projects/e1000/files/i40e%20stable/2.18.9/i40e-2.18.9.tar.gz/download#https##
iavf-4.4.2.tar.gz#iavf-4.4.2#https://sourceforge.net/projects/e1000/files/iavf%20stable/4.4.2/iavf-4.4.2.tar.gz/download#https##
ice-1.8.3.tar.gz#ice-1.8.3#https://sourceforge.net/projects/e1000/files/ice%20stable/1.8.3/ice-1.8.3.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
@ -13,5 +13,5 @@ opae-intel-fpga-driver-2.0.1-8.tar.gz#opae-intel-fpga-driver-2.0.1-8#https://git
!QAT1.7.L.4.14.0-00031.tar.gz#quickassist#https://downloadmirror.intel.com/30178/eng/QAT1.7.L.4.14.0-00031.tar.gz#http_script##unused
!dpdk-kmods-2a9f0f72a2d926382634cf8f1de10e1acf57542b.tar.gz#dpdk-kmods#git://dpdk.org/dpdk-kmods/#git#2a9f0f72a2d926382634cf8f1de10e1acf57542b##
!OPAE_1.3.7-5_el7.zip#OPAE#https://github.com/OPAE/opae-sdk/releases/download/1.3.7-5/OPAE_1.3.7-5_el7.zip#http_script##unused
!800-Series-DDP-Comms-Package-1.3.31.0.zip#unused-field#https://downloadmirror.intel.com/713853/800%20Series%20DDP%20Comms%20Package%201.3.31.0.zip#http_script##unused
!ice_comms-1.3.35.0.zip#unused-field#https://downloadmirror.intel.com/727568/ice_comms-1.3.35.0.zip#http_script##unused
!bcm_220.0.83.0.tar.gz#bcm_220.0.83.0#https://docs.broadcom.com/docs-and-downloads/ethernet-network-adapters/NXE/BRCM_220.0.83.0/bcm_220.0.83.0.tar.gz#http_script#85bdfc30b4bd3e184e3b57a48055c11085e3b97593f7b4a8347fa50a9d571336#unused

View File

@ -1,9 +1,9 @@
COPY_LIST=" \
$PKG_BASE/files/* \
$STX_BASE/downloads/i40e-2.17.4.tar.gz"
$STX_BASE/downloads/i40e-2.18.9.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]=a10b746f324ca5d8997de1ee6743855af74eb1ad
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-rt]=77f9537738661107c1bcd30743119cd913bdadb4
PKG_BASE_SRCREV=e7d9eb420228a86dcecd578de13d5a7c4e236b79
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-std]=1378583af6e040bc974f67850cd44e0c62d42f81
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-rt]=1378583af6e040bc974f67850cd44e0c62d42f81
PKG_BASE_SRCREV=1927a6d6250856164295aa1aca2ba0e40fa95c18
TIS_PATCH_VER=PKG_GITREVCOUNT+OTHER_GITREVCOUNT

View File

@ -8,8 +8,8 @@
%define kmod_name i40e
Name: %{kmod_name}-kmod%{?bt_ext}
Version: 2.17.4
Release: 0%{?_tis_dist}.%{tis_patch_ver}
Version: 2.18.9
Release: 1%{?_tis_dist}.%{tis_patch_ver}
Group: System Environment/Kernel
License: GPLv2
Summary: %{kmod_name}%{?bt_ext} kernel module(s)

View File

@ -1,9 +1,9 @@
COPY_LIST=" \
$PKG_BASE/files/* \
$STX_BASE/downloads/iavf-4.3.19.tar.gz"
$STX_BASE/downloads/iavf-4.4.2.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]=a10b746f324ca5d8997de1ee6743855af74eb1ad
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-rt]=77f9537738661107c1bcd30743119cd913bdadb4
PKG_BASE_SRCREV=87d7b62eb2e95f28935588946b07a459ad393570
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-std]=1378583af6e040bc974f67850cd44e0c62d42f81
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-rt]=1378583af6e040bc974f67850cd44e0c62d42f81
PKG_BASE_SRCREV=1927a6d6250856164295aa1aca2ba0e40fa95c18
TIS_PATCH_VER=PKG_GITREVCOUNT+OTHER_GITREVCOUNT

View File

@ -8,8 +8,8 @@
%define kmod_name iavf
Name: %{kmod_name}-kmod%{?bt_ext}
Version: 4.3.19
Release: 0%{?_tis_dist}.%{tis_patch_ver}
Version: 4.4.2
Release: 1%{?_tis_dist}.%{tis_patch_ver}
Group: System Environment/Kernel
License: GPLv2
Summary: %{kmod_name} kernel module(s)

View File

@ -1,10 +1,10 @@
COPY_LIST=" \
$PKG_BASE/files/* \
$STX_BASE/downloads/ice-1.7.16.tar.gz \
$STX_BASE/downloads/ice_comms-1.3.31.0.zip"
$STX_BASE/downloads/ice-1.8.3.tar.gz \
$STX_BASE/downloads/ice_comms-1.3.35.0.zip"
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]=a10b746f324ca5d8997de1ee6743855af74eb1ad
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-rt]=77f9537738661107c1bcd30743119cd913bdadb4
PKG_BASE_SRCREV=d219f2aec116bef15ff00df9df1bee82a5db3a93
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-std]=1378583af6e040bc974f67850cd44e0c62d42f81
BASE_SRCREV_FOR_PATH[$GIT_BASE/kernel-rt]=1378583af6e040bc974f67850cd44e0c62d42f81
PKG_BASE_SRCREV=1927a6d6250856164295aa1aca2ba0e40fa95c18
TIS_PATCH_VER=PKG_GITREVCOUNT+OTHER_GITREVCOUNT

View File

@ -7,8 +7,8 @@
%define kmod_name ice
Name: %{kmod_name}-kmod%{?bt_ext}
Version: 1.7.16
Release: 0%{?_tis_dist}.%{tis_patch_ver}
Version: 1.8.3
Release: 1%{?_tis_dist}.%{tis_patch_ver}
Group: System Environment/Kernel
License: GPL-2.0
Summary: Intel(R) Ethernet Connection E800 Series Linux Driver
@ -27,12 +27,11 @@ BuildRequires: devtoolset-8-make
%define kernel_module_package_buildreqs kernel%{?bt_ext}-devel
Source0: %{kmod_name}-%{version}.tar.gz
Source1: ice_comms-1.3.31.0.zip
Source1: ice_comms-1.3.35.0.zip
Source11: modules-load.conf
Patch1: 0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch
Patch2: 0002-ice_main-ice_lib-Use-irq_update_affinity_hint.patch
Patch1: 0001-ice_main-ice_lib-Use-irq_update_affinity_hint.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)

View File

@ -1,4 +1,4 @@
From 2c0df5cef9bfdeb934102d18df38e4024381298f Mon Sep 17 00:00:00 2001
From 722c51d207ea30388dfc63cec635e1d3e7d9d681 Mon Sep 17 00:00:00 2001
From: "M. Vefa Bicakci" <vefa.bicakci@windriver.com>
Date: Fri, 14 Jan 2022 17:50:39 -0500
Subject: [PATCH] ice_main, ice_lib: Use irq_update_affinity_hint
@ -23,16 +23,18 @@ And the i40e and iavf patches are accessible at:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0f9744f4ed539f2e847d7ed41993b243e3ba5cff
Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com>
[jm: Adapted the patch for context changes.]
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
src/ice_lib.c | 2 +-
src/ice_main.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/ice_lib.c b/src/ice_lib.c
index 889972052be7..6e50a9dc9ef4 100644
index 034a064..313273f 100644
--- a/src/ice_lib.c
+++ b/src/ice_lib.c
@@ -2883,7 +2883,7 @@ void ice_vsi_free_irq(struct ice_vsi *vsi)
@@ -2900,7 +2900,7 @@ void ice_vsi_free_irq(struct ice_vsi *vsi)
irq_set_affinity_notifier(irq_num, NULL);
/* clear the affinity_mask in the IRQ descriptor */
@ -42,10 +44,10 @@ index 889972052be7..6e50a9dc9ef4 100644
devm_free_irq(ice_pf_to_dev(pf), irq_num, vsi->q_vectors[i]);
}
diff --git a/src/ice_main.c b/src/ice_main.c
index 97e754bc5e11..802d4912a574 100644
index e00d7f8..ca761bd 100644
--- a/src/ice_main.c
+++ b/src/ice_main.c
@@ -3384,8 +3384,8 @@ static int ice_vsi_req_irq_msix(struct ice_vsi *vsi, char *basename)
@@ -3417,8 +3417,8 @@ static int ice_vsi_req_irq_msix(struct ice_vsi *vsi, char *basename)
irq_set_affinity_notifier(irq_num, affinity_notify);
}
@ -56,8 +58,8 @@ index 97e754bc5e11..802d4912a574 100644
}
vsi->irqs_ready = true;
@@ -3397,7 +3397,7 @@ free_q_irqs:
irq_num = pf->msix_entries[base + vector].vector;
@@ -3430,7 +3430,7 @@ free_q_irqs:
irq_num = ice_get_irq_num(pf, base + vector);
if (!IS_ENABLED(CONFIG_RFS_ACCEL))
irq_set_affinity_notifier(irq_num, NULL);
- irq_set_affinity_hint(irq_num, NULL);
@ -66,5 +68,5 @@ index 97e754bc5e11..802d4912a574 100644
}
return err;
--
2.29.2
2.31.1

View File

@ -1,47 +0,0 @@
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