diff options
author | Yunsheng Lin <linyunsheng@huawei.com> | 2019-12-14 10:06:39 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-12-16 16:12:25 -0800 |
commit | ff200099d271cb14e4415449559da7cc6a38f4a1 (patch) | |
tree | 6f7e7aecd91ac51422a5dd4ff8be8984a35dcb1d /drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | |
parent | net: hns3: remove mailbox and reset work in hclge_main (diff) | |
download | linux-dev-ff200099d271cb14e4415449559da7cc6a38f4a1.tar.xz linux-dev-ff200099d271cb14e4415449559da7cc6a38f4a1.zip |
net: hns3: remove unnecessary work in hclgevf_main
There are four work (mbx_service_task, service_task,
rst_service_task and keep_alive_task)in the hclgevf module,
mbx_service_task is for handling mailbox issue, service_task is
for periodic management issue and rst_service_task is for reset
related issue, keep_alive_task is used to keepalive between PF
and VF, which can be done in a single work.
This patch removes the mbx_service_task, rst_service_task and
keep_alive_task, and moves the related handling to the
service_task work in order to remove concurrency between the four
work and to improve efficiency.
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h index 991a924da5ed..450e5878293f 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h +++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h @@ -142,12 +142,12 @@ enum hclgevf_states { HCLGEVF_STATE_REMOVING, HCLGEVF_STATE_NIC_REGISTERED, /* task states */ - HCLGEVF_STATE_SERVICE_SCHED, HCLGEVF_STATE_RST_SERVICE_SCHED, HCLGEVF_STATE_RST_HANDLING, HCLGEVF_STATE_MBX_SERVICE_SCHED, HCLGEVF_STATE_MBX_HANDLING, HCLGEVF_STATE_CMD_DISABLE, + HCLGEVF_STATE_LINK_UPDATING, }; struct hclgevf_mac { @@ -283,11 +283,7 @@ struct hclgevf_dev { struct hclgevf_mbx_resp_status mbx_resp; /* mailbox response */ struct hclgevf_mbx_arq_ring arq; /* mailbox async rx queue */ - struct timer_list keep_alive_timer; struct delayed_work service_task; - struct work_struct keep_alive_task; - struct work_struct rst_service_task; - struct work_struct mbx_service_task; struct hclgevf_tqp *htqp; @@ -297,7 +293,8 @@ struct hclgevf_dev { struct hnae3_client *nic_client; struct hnae3_client *roce_client; u32 flag; - u32 stats_timer; + unsigned long serv_processed_cnt; + unsigned long last_serv_processed; }; static inline bool hclgevf_is_reset_pending(struct hclgevf_dev *hdev) |