提交 3f47b117 编写于 作者: H Huazhong Tan 提交者: Xie XiuQi

net: hns3: dump some debug information when reset fail

driver inclusion
category: bugfix
bugzilla: NA
CVE: NA

When reset fails, there is some information that will help for
finding out why does reset fail.

Feature or Bugfix:Bugfix
Signed-off-by: NHuazhong Tan <tanhuazhong@huawei.com>
Reviewed-by: Nshenjian <shenjian15@huawei.com>
Reviewed-by: Nlinyunsheng <linyunsheng@huawei.com>
Reviewed-by: NYang Yingliang <yangyingliang@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 936e58af
...@@ -1022,7 +1022,7 @@ static void hclge_dbg_fd_tcam(struct hclge_dev *hdev) ...@@ -1022,7 +1022,7 @@ static void hclge_dbg_fd_tcam(struct hclge_dev *hdev)
kfree(rule_locs); kfree(rule_locs);
} }
static void hclge_dbg_dump_rst_info(struct hclge_dev *hdev) void hclge_dbg_dump_rst_info(struct hclge_dev *hdev)
{ {
dev_info(&hdev->pdev->dev, "PF reset count: %u\n", dev_info(&hdev->pdev->dev, "PF reset count: %u\n",
hdev->rst_stats.pf_rst_cnt); hdev->rst_stats.pf_rst_cnt);
......
...@@ -3550,6 +3550,8 @@ static bool hclge_reset_err_handle(struct hclge_dev *hdev) ...@@ -3550,6 +3550,8 @@ static bool hclge_reset_err_handle(struct hclge_dev *hdev)
if (handle && handle->ae_algo->ops->reset_done) if (handle && handle->ae_algo->ops->reset_done)
handle->ae_algo->ops->reset_done(handle, false); handle->ae_algo->ops->reset_done(handle, false);
hclge_dbg_dump_rst_info(hdev);
return false; return false;
} }
......
...@@ -1053,4 +1053,5 @@ void hclge_task_schedule(struct hclge_dev *hdev, unsigned long delay_time); ...@@ -1053,4 +1053,5 @@ void hclge_task_schedule(struct hclge_dev *hdev, unsigned long delay_time);
int hclge_query_bd_num_cmd_send(struct hclge_dev *hdev, int hclge_query_bd_num_cmd_send(struct hclge_dev *hdev,
struct hclge_desc *desc); struct hclge_desc *desc);
void hclge_inform_vf_promisc_info(struct hclge_vport *vport); void hclge_inform_vf_promisc_info(struct hclge_vport *vport);
void hclge_dbg_dump_rst_info(struct hclge_dev *hdev);
#endif #endif
...@@ -1569,6 +1569,31 @@ static int hclgevf_reset_prepare_wait(struct hclgevf_dev *hdev) ...@@ -1569,6 +1569,31 @@ static int hclgevf_reset_prepare_wait(struct hclgevf_dev *hdev)
return ret; return ret;
} }
static void hclgevf_dump_rst_info(struct hclgevf_dev *hdev)
{
dev_info(&hdev->pdev->dev, "VF function reset count: %u\n",
hdev->rst_stats.vf_func_rst_cnt);
dev_info(&hdev->pdev->dev, "FLR reset count: %u\n",
hdev->rst_stats.flr_rst_cnt);
dev_info(&hdev->pdev->dev, "VF reset count: %u\n",
hdev->rst_stats.vf_rst_cnt);
dev_info(&hdev->pdev->dev, "reset done count: %u\n",
hdev->rst_stats.rst_done_cnt);
dev_info(&hdev->pdev->dev, "reset count: %u\n",
hdev->rst_stats.rst_cnt);
dev_info(&hdev->pdev->dev, "reset fail count: %u\n",
hdev->rst_stats.rst_fail_cnt);
dev_info(&hdev->pdev->dev, "vector0 interrupt enable status: 0x%x\n",
hclgevf_read_dev(&hdev->hw, HCLGEVF_MISC_VECTOR_REG_BASE));
dev_info(&hdev->pdev->dev, "vector0 interrupt status: 0x%x\n",
hclgevf_read_dev(&hdev->hw, HCLGEVF_VECTOR0_CMDQ_STAT_REG));
dev_info(&hdev->pdev->dev, "handshake status: 0x%x\n",
hclgevf_read_dev(&hdev->hw, HCLGEVF_CMDQ_TX_DEPTH_REG));
dev_info(&hdev->pdev->dev, "function reset status: 0x%x\n",
hclgevf_read_dev(&hdev->hw, HCLGEVF_RST_ING));
dev_info(&hdev->pdev->dev, "hdev state: 0x%lx\n", hdev->state);
}
static void hclgevf_reset_err_handle(struct hclgevf_dev *hdev) static void hclgevf_reset_err_handle(struct hclgevf_dev *hdev)
{ {
/* recover handshake status with IMP when reset fail */ /* recover handshake status with IMP when reset fail */
...@@ -1583,6 +1608,8 @@ static void hclgevf_reset_err_handle(struct hclgevf_dev *hdev) ...@@ -1583,6 +1608,8 @@ static void hclgevf_reset_err_handle(struct hclgevf_dev *hdev)
if (hclgevf_is_reset_pending(hdev)) { if (hclgevf_is_reset_pending(hdev)) {
set_bit(HCLGEVF_RESET_PENDING, &hdev->reset_state); set_bit(HCLGEVF_RESET_PENDING, &hdev->reset_state);
hclgevf_reset_task_schedule(hdev); hclgevf_reset_task_schedule(hdev);
} else {
hclgevf_dump_rst_info(hdev);
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册