Skip to content

Commit

Permalink
net: hns3: add queue's statistics update to service task
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
liuzhongzhu authored and David S. Miller committed Apr 20, 2019
1 parent a634578 commit db01afe
Showing 2 changed files with 11 additions and 0 deletions.
8 changes: 8 additions & 0 deletions drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
Original file line number Diff line number Diff line change
@@ -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 changes: 3 additions & 0 deletions drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
Original file line number Diff line number Diff line change
@@ -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)

0 comments on commit db01afe

Please sign in to comment.