net: hns3: add queue's statistics update to service task
This patch updates VF's TQP statistic info in the service task, and adds a limitation to prevent update too frequently. Signed-off-by: liuzhongzhu <liuzhongzhu@huawei.com> Signed-off-by: Peng Li <lipeng321@huawei.com> Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a63457878b
commit
db01afeb66
@ -1649,6 +1649,7 @@ static void hclgevf_service_timer(struct timer_list *t)
|
||||
|
||||
mod_timer(&hdev->service_timer, jiffies + 5 * HZ);
|
||||
|
||||
hdev->stats_timer++;
|
||||
hclgevf_task_schedule(hdev);
|
||||
}
|
||||
|
||||
@ -1769,9 +1770,16 @@ static void hclgevf_keep_alive_task(struct work_struct *work)
|
||||
|
||||
static void hclgevf_service_task(struct work_struct *work)
|
||||
{
|
||||
struct hnae3_handle *handle;
|
||||
struct hclgevf_dev *hdev;
|
||||
|
||||
hdev = container_of(work, struct hclgevf_dev, service_task);
|
||||
handle = &hdev->nic;
|
||||
|
||||
if (hdev->stats_timer >= HCLGEVF_STATS_TIMER_INTERVAL) {
|
||||
hclgevf_tqps_update_stats(handle);
|
||||
hdev->stats_timer = 0;
|
||||
}
|
||||
|
||||
/* request the link status from the PF. PF would be able to tell VF
|
||||
* about such updates in future so we might remove this later
|
||||
|
@ -116,6 +116,8 @@
|
||||
#define HCLGEVF_S_IP_BIT BIT(3)
|
||||
#define HCLGEVF_V_TAG_BIT BIT(4)
|
||||
|
||||
#define HCLGEVF_STATS_TIMER_INTERVAL (36)
|
||||
|
||||
enum hclgevf_evt_cause {
|
||||
HCLGEVF_VECTOR0_EVENT_RST,
|
||||
HCLGEVF_VECTOR0_EVENT_MBX,
|
||||
@ -281,6 +283,7 @@ struct hclgevf_dev {
|
||||
struct hnae3_client *nic_client;
|
||||
struct hnae3_client *roce_client;
|
||||
u32 flag;
|
||||
u32 stats_timer;
|
||||
};
|
||||
|
||||
static inline bool hclgevf_is_reset_pending(struct hclgevf_dev *hdev)
|
||||
|
Loading…
Reference in New Issue
Block a user