From fcec7cba9b6c7fc2160da1eee56145abb80d4f51 Mon Sep 17 00:00:00 2001 From: Jiping Ma Date: Mon, 14 Mar 2022 07:52:06 +0000 Subject: [PATCH] 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 Change-Id: I93dcf00fe443c4f86db2f8a65e159f9da05acc29 --- centos_extra_downloads.lst | 2 +- centos_tarball-dl.lst | 8 ++-- .../intel-i40e/centos/build_srpm.data | 8 ++-- .../intel-i40e/centos/i40e-kmod.spec | 4 +- .../intel-iavf/centos/build_srpm.data | 8 ++-- .../intel-iavf/centos/iavf-kmod.spec | 4 +- .../intel-ice/centos/build_srpm.data | 10 ++-- kernel-modules/intel-ice/centos/ice-kmod.spec | 9 ++-- ...ce_lib-Use-irq_update_affinity_hint.patch} | 18 +++---- ...pendency-on-napi_busy_loop-with-PREE.patch | 47 ------------------- 10 files changed, 36 insertions(+), 82 deletions(-) rename kernel-modules/intel-ice/files/{0002-ice_main-ice_lib-Use-irq_update_affinity_hint.patch => 0001-ice_main-ice_lib-Use-irq_update_affinity_hint.patch} (85%) delete mode 100644 kernel-modules/intel-ice/files/0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch diff --git a/centos_extra_downloads.lst b/centos_extra_downloads.lst index 51b17f59..293e061b 100644 --- a/centos_extra_downloads.lst +++ b/centos_extra_downloads.lst @@ -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 diff --git a/centos_tarball-dl.lst b/centos_tarball-dl.lst index 4b4760ab..3a692acc 100644 --- a/centos_tarball-dl.lst +++ b/centos_tarball-dl.lst @@ -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 diff --git a/kernel-modules/intel-i40e/centos/build_srpm.data b/kernel-modules/intel-i40e/centos/build_srpm.data index 8c89be0c..43f7d750 100644 --- a/kernel-modules/intel-i40e/centos/build_srpm.data +++ b/kernel-modules/intel-i40e/centos/build_srpm.data @@ -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 diff --git a/kernel-modules/intel-i40e/centos/i40e-kmod.spec b/kernel-modules/intel-i40e/centos/i40e-kmod.spec index ee9c44ac..7590135f 100644 --- a/kernel-modules/intel-i40e/centos/i40e-kmod.spec +++ b/kernel-modules/intel-i40e/centos/i40e-kmod.spec @@ -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) diff --git a/kernel-modules/intel-iavf/centos/build_srpm.data b/kernel-modules/intel-iavf/centos/build_srpm.data index c68a52cf..0592aac0 100644 --- a/kernel-modules/intel-iavf/centos/build_srpm.data +++ b/kernel-modules/intel-iavf/centos/build_srpm.data @@ -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 diff --git a/kernel-modules/intel-iavf/centos/iavf-kmod.spec b/kernel-modules/intel-iavf/centos/iavf-kmod.spec index 93fbc42c..48e55ca0 100644 --- a/kernel-modules/intel-iavf/centos/iavf-kmod.spec +++ b/kernel-modules/intel-iavf/centos/iavf-kmod.spec @@ -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) diff --git a/kernel-modules/intel-ice/centos/build_srpm.data b/kernel-modules/intel-ice/centos/build_srpm.data index 89bf606e..4537519b 100644 --- a/kernel-modules/intel-ice/centos/build_srpm.data +++ b/kernel-modules/intel-ice/centos/build_srpm.data @@ -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 diff --git a/kernel-modules/intel-ice/centos/ice-kmod.spec b/kernel-modules/intel-ice/centos/ice-kmod.spec index 98df313d..dc37170d 100644 --- a/kernel-modules/intel-ice/centos/ice-kmod.spec +++ b/kernel-modules/intel-ice/centos/ice-kmod.spec @@ -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) diff --git a/kernel-modules/intel-ice/files/0002-ice_main-ice_lib-Use-irq_update_affinity_hint.patch b/kernel-modules/intel-ice/files/0001-ice_main-ice_lib-Use-irq_update_affinity_hint.patch similarity index 85% rename from kernel-modules/intel-ice/files/0002-ice_main-ice_lib-Use-irq_update_affinity_hint.patch rename to kernel-modules/intel-ice/files/0001-ice_main-ice_lib-Use-irq_update_affinity_hint.patch index 14053415..8c559ee2 100644 --- a/kernel-modules/intel-ice/files/0002-ice_main-ice_lib-Use-irq_update_affinity_hint.patch +++ b/kernel-modules/intel-ice/files/0001-ice_main-ice_lib-Use-irq_update_affinity_hint.patch @@ -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" 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 +[jm: Adapted the patch for context changes.] +Signed-off-by: Jiping Ma --- 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 diff --git a/kernel-modules/intel-ice/files/0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch b/kernel-modules/intel-ice/files/0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch deleted file mode 100644 index 8ff34eca..00000000 --- a/kernel-modules/intel-ice/files/0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch +++ /dev/null @@ -1,47 +0,0 @@ -From a25ae52b1381527b89a61e0ed0c34d5fac6ffca4 Mon Sep 17 00:00:00 2001 -From: Jiping Ma -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 -[mvb: Update commit message.] -Signed-off-by: M. Vefa Bicakci ---- - 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 -