]> git.droids-corp.org - dpdk.git/commitdiff
net/hns3: cancel heartbeat alarm when VF reset
authorHuisong Li <lihuisong@huawei.com>
Fri, 24 Jun 2022 08:59:46 +0000 (16:59 +0800)
committerAndrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Fri, 24 Jun 2022 12:27:23 +0000 (14:27 +0200)
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

index 3abd4aafcb0650e50694b09229c02ec3235f2833..18504e69260ee5cbb76489f0182bea710d738e0e 100644 (file)
@@ -1976,6 +1976,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
@@ -1997,6 +1999,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);