Files
kernel/kernel-modules/intel-ice/files/0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch
Jiping Ma 242e5e9b74 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
2021-10-18 10:10:02 -04:00

48 lines
1.5 KiB
Diff

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