The purpose of the heartbeat alarm is to keep alive for VF. The mailbox channel is disabled when VF is reset, and the heartbeat mailbox message will fail to send. If the reset is not complete, the error information about the heartbeat sending failure will be printed continuously. In fact, VF does set alive when VF restore its configuration. So the heartbeat alarm can be canceled to prepare to start reset and start the alarm when start service.
Signed-off-by: Huisong Li lihuisong@huawei.com Signed-off-by: Dongdong Liu liudongdong3@huawei.com --- drivers/net/hns3/hns3_ethdev_vf.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c index b85f68cb1d..0dea63e8be 100644 --- a/drivers/net/hns3/hns3_ethdev_vf.c +++ b/drivers/net/hns3/hns3_ethdev_vf.c @@ -1977,6 +1977,8 @@ hns3vf_stop_service(struct hns3_adapter *hns) } else hw->reset.mbuf_deferred_free = false;
+ rte_eal_alarm_cancel(hns3vf_keep_alive_handler, eth_dev); + /* * It is cumbersome for hardware to pick-and-choose entries for deletion * from table space. Hence, for function reset software intervention is @@ -1998,6 +2000,10 @@ hns3vf_start_service(struct hns3_adapter *hns) eth_dev = &rte_eth_devices[hw->data->port_id]; hns3_set_rxtx_function(eth_dev); hns3_mp_req_start_rxtx(eth_dev); + + rte_eal_alarm_set(HNS3VF_KEEP_ALIVE_INTERVAL, hns3vf_keep_alive_handler, + eth_dev); + if (hw->adapter_state == HNS3_NIC_STARTED) { hns3vf_start_poll_job(eth_dev);