Commit db01afeb authored by liuzhongzhu's avatar liuzhongzhu Committed by David S. Miller
Browse files

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: default avatarliuzhongzhu <liuzhongzhu@huawei.com>
Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a6345787
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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)