Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp4486839pxu; Wed, 9 Dec 2020 19:46:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJz3J2rOnnXVUOTnBniZEffQGOwC4bqZzo5aO8gWefVCoj8te5Zll5oP4pdsvABtssUO9bm/ X-Received: by 2002:a17:906:b14e:: with SMTP id bt14mr4809228ejb.226.1607571985510; Wed, 09 Dec 2020 19:46:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607571985; cv=none; d=google.com; s=arc-20160816; b=Dq7MzsFEKRMy/cmGD9OcJkyxI81NqzQmClgAu79oHovvo+DCmRyBOSYLK7ql842bTG PyyaUqp8ZBjnH+Dm9ZWphggudjqUYXG0HEUIXRmGzjjP5JtXbQzSXU9Q3SJOkik2rsra SisLTL5y85m2H/2ZW3/Gt0QfoBcUPGfRxBfOh+cGW/bcMv5uVOG4yxXs2rKlxESe3SM/ H/5U+Lte5HSLdyT0LdXvoe5HybN+WGNFRY7sYHixGzgow6I+OmPRZz6i2iJdFA0d++j9 7UkzS8Ah1+r5w2xGVG/SvzVV4zXdQdS4Zlpa0N4QRq19utRWUG5hDjSucSd3clbQR+Qm foAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=ch0caxELiDUXvUmbKxfl9IbqP0yznR+yyu4D14vvOag=; b=karEtbThyvSIWetP45YnYZ3+2xZlW4xsL01JlSmFtnvFv9PjbuxmbidFGxGROFHa/t Hxxx5r6oI4YtwtfQXimJrUaavKUJuGLToNlzW7yYAdJCjNTXLys1Hf0Y8Id1XKFBi5Hm hgo0F8PxA54isXkait9/pMl2ErYpzU3rH6jIRJ7zOfpGlm9Cpl69p1QxsBCJo4v5u6lk 5JSoVaH5GOgF5rzoh9m1hMvor1FTo0QPZXnG0Inmcy4Bso4PqCqaLAte2NDQADlnYl5L m53Ztl1LqyDgzFDi5fdLTrEeL7G1P2Q0AJIE9NMBTy8gYZiZgyXcBpmm+q4uSOXyok8o 5ycA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z26si1842412eja.593.2020.12.09.19.46.03; Wed, 09 Dec 2020 19:46:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731168AbgLJDol (ORCPT + 99 others); Wed, 9 Dec 2020 22:44:41 -0500 Received: from szxga07-in.huawei.com ([45.249.212.35]:9425 "EHLO szxga07-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731020AbgLJDoM (ORCPT ); Wed, 9 Dec 2020 22:44:12 -0500 Received: from DGGEMS414-HUB.china.huawei.com (unknown [172.30.72.58]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4Cs08x65wXz7CBC; Thu, 10 Dec 2020 11:42:09 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by DGGEMS414-HUB.china.huawei.com (10.3.19.214) with Microsoft SMTP Server id 14.3.487.0; Thu, 10 Dec 2020 11:42:35 +0800 From: Huazhong Tan To: CC: , , , , Guojia Liao , Huazhong Tan Subject: [PATCH net-next 6/7] net: hns3: adjust rss indirection table configure command Date: Thu, 10 Dec 2020 11:42:11 +0800 Message-ID: <1607571732-24219-7-git-send-email-tanhuazhong@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1607571732-24219-1-git-send-email-tanhuazhong@huawei.com> References: <1607571732-24219-1-git-send-email-tanhuazhong@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.69.192.56] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Guojia Liao For the max rss size of PF may be up to 512, so adjust the command of configuring rss indirection table to support queue id larger than 255. The width of queue id is extended from 8 bits to 10 bits. The high 2 bits are stored in filed rss_qid_h when the queue id is larger than 255. Signed-off-by: Guojia Liao Signed-off-by: Huazhong Tan --- .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h | 7 +++++-- .../net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 20 ++++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h index f5a620c..a6c306b 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h @@ -560,12 +560,15 @@ struct hclge_rss_input_tuple_cmd { }; #define HCLGE_RSS_CFG_TBL_SIZE 16 +#define HCLGE_RSS_CFG_TBL_SIZE_H 4 +#define HCLGE_RSS_CFG_TBL_BW_H 2U +#define HCLGE_RSS_CFG_TBL_BW_L 8U struct hclge_rss_indirection_table_cmd { __le16 start_table_index; __le16 rss_set_bitmap; - u8 rsv[4]; - u8 rss_result[HCLGE_RSS_CFG_TBL_SIZE]; + u8 rss_qid_h[HCLGE_RSS_CFG_TBL_SIZE_H]; + u8 rss_qid_l[HCLGE_RSS_CFG_TBL_SIZE]; }; #define HCLGE_RSS_TC_OFFSET_S 0 diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c index f361226..5de45a9 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -4282,8 +4282,12 @@ static int hclge_set_rss_indir_table(struct hclge_dev *hdev, const u16 *indir) { struct hclge_rss_indirection_table_cmd *req; struct hclge_desc desc; - int i, j; + u8 rss_msb_oft; + u8 rss_msb_val; int ret; + u16 qid; + int i; + u32 j; req = (struct hclge_rss_indirection_table_cmd *)desc.data; @@ -4294,11 +4298,15 @@ static int hclge_set_rss_indir_table(struct hclge_dev *hdev, const u16 *indir) req->start_table_index = cpu_to_le16(i * HCLGE_RSS_CFG_TBL_SIZE); req->rss_set_bitmap = cpu_to_le16(HCLGE_RSS_SET_BITMAP_MSK); - - for (j = 0; j < HCLGE_RSS_CFG_TBL_SIZE; j++) - req->rss_result[j] = - indir[i * HCLGE_RSS_CFG_TBL_SIZE + j]; - + for (j = 0; j < HCLGE_RSS_CFG_TBL_SIZE; j++) { + qid = indir[i * HCLGE_RSS_CFG_TBL_SIZE + j]; + req->rss_qid_l[j] = qid & 0xff; + rss_msb_oft = + j * HCLGE_RSS_CFG_TBL_BW_H / BITS_PER_BYTE; + rss_msb_val = (qid >> HCLGE_RSS_CFG_TBL_BW_L & 0x1) << + (j * HCLGE_RSS_CFG_TBL_BW_H % BITS_PER_BYTE); + req->rss_qid_h[rss_msb_oft] |= rss_msb_val; + } ret = hclge_cmd_send(&hdev->hw, &desc, 1); if (ret) { dev_err(&hdev->pdev->dev, -- 2.7.4