i40e VF stuck in reset show more info

When this occurs, print out which driver routine it is in,
for better understanding of the event sequence leading up
to it.

Change-Id: I675a4bdfb795b42b715020b3f29aca2c23b15156
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
This commit is contained in:
Jim Somerville 2018-03-26 11:41:55 -04:00 committed by Scott Little
parent 803ab15ea6
commit e3a113abf5
3 changed files with 82 additions and 5 deletions

View File

@ -23,7 +23,8 @@ Source0: %{kmod_name}-%{version}.tar.gz
Source5: GPL-v2.0.txt
Source11: modules-load.conf
Patch01: 0001-i40e-Enable-getting-link-status-from-VF.patch
Patch01: i40e-Enable-getting-link-status-from-VF.patch
Patch02: i40e-add-more-debug-info-for-VFs-still-in-reset.patch
%define kversion %(rpm -q kernel%{?bt_ext}-devel | sort --version-sort | tail -1 | sed 's/kernel%{?bt_ext}-devel-//')

View File

@ -8,16 +8,17 @@ virtual channel interface.
Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
Signed-off-by: eric zhang <eric.zhang@windriver.com>
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
---
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 8270b67..0eeaaca 100644
index aba23f2..7081123 100644
--- a/src/i40e_virtchnl_pf.c
+++ b/src/i40e_virtchnl_pf.c
@@ -1859,6 +1859,81 @@ error_param:
@@ -1857,6 +1857,81 @@ error_param:
aq_ret);
}
@ -99,7 +100,7 @@ index 8270b67..0eeaaca 100644
/**
* i40e_vc_config_queues_msg
* @vf: pointer to the VF info
@@ -2835,6 +2910,9 @@ int i40e_vc_process_vf_msg(struct i40e_pf *pf, s16 vf_id, u32 v_opcode,
@@ -2839,6 +2914,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, msglen);
break;
@ -110,7 +111,7 @@ index 8270b67..0eeaaca 100644
case VIRTCHNL_OP_UNKNOWN:
default:
diff --git a/src/virtchnl.h b/src/virtchnl.h
index 8cf91d4..ba64641 100644
index c550261..950d24e 100644
--- a/src/virtchnl.h
+++ b/src/virtchnl.h
@@ -133,6 +133,7 @@ enum virtchnl_ops {

View File

@ -0,0 +1,75 @@
From bbe1571bb970759e8e2049512a52461da4c095b2 Mon Sep 17 00:00:00 2001
Message-Id: <bbe1571bb970759e8e2049512a52461da4c095b2.1522076866.git.Jim.Somerville@windriver.com>
In-Reply-To: <bc463ee30c5bc2ccc2d9541b20279e933d5fc462.1522076866.git.Jim.Somerville@windriver.com>
References: <bc463ee30c5bc2ccc2d9541b20279e933d5fc462.1522076866.git.Jim.Somerville@windriver.com>
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Mon, 26 Mar 2018 11:03:47 -0400
Subject: [PATCH 2/2] i40e add more debug info for VFs still in reset
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
---
src/i40e_virtchnl_pf.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/i40e_virtchnl_pf.c b/src/i40e_virtchnl_pf.c
index 7081123..83f6f88 100644
--- a/src/i40e_virtchnl_pf.c
+++ b/src/i40e_virtchnl_pf.c
@@ -3004,8 +3004,8 @@ int i40e_ndo_set_vf_mac(struct net_device *netdev, int vf_id, u8 *mac)
vf = &(pf->vf[vf_id]);
vsi = pf->vsi[vf->lan_vsi_idx];
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
- dev_err(&pf->pdev->dev, "VF %d still in reset. Try again.\n",
- vf_id);
+ dev_err(&pf->pdev->dev, "%s: VF %d still in reset. Try again.\n",
+ __func__, vf_id);
ret = -EAGAIN;
goto error_param;
}
@@ -3145,8 +3145,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)) {
- dev_err(&pf->pdev->dev, "VF %d still in reset. Try again.\n",
- vf_id);
+ dev_err(&pf->pdev->dev, "%s: VF %d still in reset. Try again.\n",
+ __func__, vf_id);
ret = -EAGAIN;
goto error_pvid;
}
@@ -3277,8 +3277,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)) {
- dev_err(&pf->pdev->dev, "VF %d still in reset. Try again.\n",
- vf_id);
+ dev_err(&pf->pdev->dev, "%s: VF %d still in reset. Try again.\n",
+ __func__, vf_id);
ret = -EAGAIN;
goto error;
}
@@ -3370,8 +3370,8 @@ int i40e_ndo_get_vf_config(struct net_device *netdev,
/* first vsi is always the LAN vsi */
vsi = pf->vsi[vf->lan_vsi_idx];
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
- dev_err(&pf->pdev->dev, "VF %d still in reset. Try again.\n",
- vf_id);
+ dev_err(&pf->pdev->dev, "%s: VF %d still in reset. Try again.\n",
+ __func__, vf_id);
ret = -EAGAIN;
goto error_param;
}
@@ -3503,8 +3503,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)) {
- dev_err(&pf->pdev->dev, "VF %d still in reset. Try again.\n",
- vf_id);
+ dev_err(&pf->pdev->dev, "%s: VF %d still in reset. Try again.\n",
+ __func__, vf_id);
ret = -EAGAIN;
goto out;
}
--
1.8.3.1