Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1245985/?format=api
{ "id": 1245985, "url": "http://patchwork.ozlabs.org/api/patches/1245985/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20200227181505.61720-1-anthony.l.nguyen@intel.com/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api", "name": "Intel Wired Ethernet development", "link_name": "intel-wired-lan", "list_id": "intel-wired-lan.osuosl.org", "list_email": "intel-wired-lan@osuosl.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20200227181505.61720-1-anthony.l.nguyen@intel.com>", "list_archive_url": null, "date": "2020-02-27T18:14:51", "name": "[S40,01/15] iavf: Enable support for up to 16 queues", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "2c1d5438bd186710eb715fe1df72d716e7f2ad3a", "submitter": { "id": 68875, "url": "http://patchwork.ozlabs.org/api/people/68875/?format=api", "name": "Tony Nguyen", "email": "anthony.l.nguyen@intel.com" }, "delegate": { "id": 68, "url": "http://patchwork.ozlabs.org/api/users/68/?format=api", "username": "jtkirshe", "first_name": "Jeff", "last_name": "Kirsher", "email": "jeffrey.t.kirsher@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20200227181505.61720-1-anthony.l.nguyen@intel.com/mbox/", "series": [ { "id": 161280, "url": "http://patchwork.ozlabs.org/api/series/161280/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=161280", "date": "2020-02-27T18:14:51", "name": "[S40,01/15] iavf: Enable support for up to 16 queues", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/161280/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1245985/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1245985/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Authentication-Results": [ "ozlabs.org; spf=pass (sender SPF authorized)\n\tsmtp.mailfrom=osuosl.org (client-ip=140.211.166.136;\n\thelo=silver.osuosl.org;\n\tenvelope-from=intel-wired-lan-bounces@osuosl.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdmarc=fail (p=none dis=none) header.from=intel.com" ], "Received": [ "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 48T17j0Gq7z9sSM\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 28 Feb 2020 05:15:59 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 9EA622309D;\n\tThu, 27 Feb 2020 18:15:57 +0000 (UTC)", "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 42mrNUUY+9s1; Thu, 27 Feb 2020 18:15:55 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id C8672230F6;\n\tThu, 27 Feb 2020 18:15:55 +0000 (UTC)", "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id 3B8C41BF3D2\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 27 Feb 2020 18:15:54 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 1D16588020\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 27 Feb 2020 18:15:54 +0000 (UTC)", "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 4CurABKz80mq for <intel-wired-lan@lists.osuosl.org>;\n\tThu, 27 Feb 2020 18:15:52 +0000 (UTC)", "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id 87D2685AA0\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 27 Feb 2020 18:15:52 +0000 (UTC)", "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t27 Feb 2020 10:15:51 -0800", "from unknown (HELO localhost.jf.intel.com) ([10.166.244.174])\n\tby FMSMGA003.fm.intel.com with ESMTP; 27 Feb 2020 10:15:51 -0800" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.70,492,1574150400\"; d=\"scan'208\";a=\"285408837\"", "From": "Tony Nguyen <anthony.l.nguyen@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Thu, 27 Feb 2020 10:14:51 -0800", "Message-Id": "<20200227181505.61720-1-anthony.l.nguyen@intel.com>", "X-Mailer": "git-send-email 2.20.1", "MIME-Version": "1.0", "Subject": "[Intel-wired-lan] [PATCH S40 01/15] iavf: Enable support for up to\n\t16 queues", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.osuosl.org>", "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>", "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "From: Mitch Williams <mitch.a.williams@intel.com>\n\nPrevious devices could only allocate 4 MSI-X vectors per VF so there was a\nlimitation of 4 queues. 800-series hardware can allocate more than 4 MSI-X\nvectors, so expand the limitation on the number of queues that the driver\ncan support to account for these capabilities.\n\nFix eththool channel operations to accommodate this change and adjust the\nreporting of max number of queues to what is given to us by the PF. Since\nwe're not requesting queues above this value, just trigger reset to\nactivate the queues, which we already own.\n\nFinally, fix a test condition that would display an incorrect error\nmessage.\n\nSigned-off-by: Mitch Williams <mitch.a.williams@intel.com>\nSigned-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>\n---\n drivers/net/ethernet/intel/iavf/iavf.h | 2 +-\n .../net/ethernet/intel/iavf/iavf_ethtool.c | 20 +++++++-------\n drivers/net/ethernet/intel/iavf/iavf_main.c | 2 +-\n .../net/ethernet/intel/iavf/iavf_virtchnl.c | 27 -------------------\n 4 files changed, 11 insertions(+), 40 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/iavf/iavf.h b/drivers/net/ethernet/intel/iavf/iavf.h\nindex bd1b1ed323f4..bcd11b4b29df 100644\n--- a/drivers/net/ethernet/intel/iavf/iavf.h\n+++ b/drivers/net/ethernet/intel/iavf/iavf.h\n@@ -81,7 +81,7 @@ struct iavf_vsi {\n #define IAVF_TX_DESC(R, i) (&(((struct iavf_tx_desc *)((R)->desc))[i]))\n #define IAVF_TX_CTXTDESC(R, i) \\\n \t(&(((struct iavf_tx_context_desc *)((R)->desc))[i]))\n-#define IAVF_MAX_REQ_QUEUES 4\n+#define IAVF_MAX_REQ_QUEUES 16\n \n #define IAVF_HKEY_ARRAY_SIZE ((IAVF_VFQF_HKEY_MAX_INDEX + 1) * 4)\n #define IAVF_HLUT_ARRAY_SIZE ((IAVF_VFQF_HLUT_MAX_INDEX + 1) * 4)\ndiff --git a/drivers/net/ethernet/intel/iavf/iavf_ethtool.c b/drivers/net/ethernet/intel/iavf/iavf_ethtool.c\nindex 84c3d8d97ef6..f807e2c7597f 100644\n--- a/drivers/net/ethernet/intel/iavf/iavf_ethtool.c\n+++ b/drivers/net/ethernet/intel/iavf/iavf_ethtool.c\n@@ -860,7 +860,7 @@ static void iavf_get_channels(struct net_device *netdev,\n \tstruct iavf_adapter *adapter = netdev_priv(netdev);\n \n \t/* Report maximum channels */\n-\tch->max_combined = IAVF_MAX_REQ_QUEUES;\n+\tch->max_combined = adapter->vsi_res->num_queue_pairs;\n \n \tch->max_other = NONQ_VECS;\n \tch->other_count = NONQ_VECS;\n@@ -881,14 +881,7 @@ static int iavf_set_channels(struct net_device *netdev,\n \t\t\t struct ethtool_channels *ch)\n {\n \tstruct iavf_adapter *adapter = netdev_priv(netdev);\n-\tint num_req = ch->combined_count;\n-\n-\tif (num_req != adapter->num_active_queues &&\n-\t !(adapter->vf_res->vf_cap_flags &\n-\t VIRTCHNL_VF_OFFLOAD_REQ_QUEUES)) {\n-\t\tdev_info(&adapter->pdev->dev, \"PF is not capable of queue negotiation.\\n\");\n-\t\treturn -EINVAL;\n-\t}\n+\tu32 num_req = ch->combined_count;\n \n \tif ((adapter->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_ADQ) &&\n \t adapter->num_tc) {\n@@ -899,14 +892,19 @@ static int iavf_set_channels(struct net_device *netdev,\n \t/* All of these should have already been checked by ethtool before this\n \t * even gets to us, but just to be sure.\n \t */\n-\tif (num_req <= 0 || num_req > IAVF_MAX_REQ_QUEUES)\n+\tif (num_req > adapter->vsi_res->num_queue_pairs)\n \t\treturn -EINVAL;\n \n+\tif (num_req == adapter->num_active_queues)\n+\t\treturn 0;\n+\n \tif (ch->rx_count || ch->tx_count || ch->other_count != NONQ_VECS)\n \t\treturn -EINVAL;\n \n \tadapter->num_req_queues = num_req;\n-\treturn iavf_request_queues(adapter, num_req);\n+\tadapter->flags |= IAVF_FLAG_REINIT_ITR_NEEDED;\n+\tiavf_schedule_reset(adapter);\n+\treturn 0;\n }\n \n /**\ndiff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c\nindex 62fe56ddcb6e..be7b6ec9c7d5 100644\n--- a/drivers/net/ethernet/intel/iavf/iavf_main.c\n+++ b/drivers/net/ethernet/intel/iavf/iavf_main.c\n@@ -3448,7 +3448,7 @@ int iavf_process_config(struct iavf_adapter *adapter)\n \t}\n \n \tif (num_req_queues &&\n-\t num_req_queues != adapter->vsi_res->num_queue_pairs) {\n+\t num_req_queues > adapter->vsi_res->num_queue_pairs) {\n \t\t/* Problem. The PF gave us fewer queues than what we had\n \t\t * negotiated in our request. Need a reset to see if we can't\n \t\t * get back to a working state.\ndiff --git a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\nindex 1ab9cb339acb..d58374c2c33d 100644\n--- a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\n+++ b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\n@@ -396,33 +396,6 @@ void iavf_map_queues(struct iavf_adapter *adapter)\n \tkfree(vimi);\n }\n \n-/**\n- * iavf_request_queues\n- * @adapter: adapter structure\n- * @num: number of requested queues\n- *\n- * We get a default number of queues from the PF. This enables us to request a\n- * different number. Returns 0 on success, negative on failure\n- **/\n-int iavf_request_queues(struct iavf_adapter *adapter, int num)\n-{\n-\tstruct virtchnl_vf_res_request vfres;\n-\n-\tif (adapter->current_op != VIRTCHNL_OP_UNKNOWN) {\n-\t\t/* bail because we already have a command pending */\n-\t\tdev_err(&adapter->pdev->dev, \"Cannot request queues, command %d pending\\n\",\n-\t\t\tadapter->current_op);\n-\t\treturn -EBUSY;\n-\t}\n-\n-\tvfres.num_queue_pairs = min_t(int, num, num_online_cpus());\n-\n-\tadapter->current_op = VIRTCHNL_OP_REQUEST_QUEUES;\n-\tadapter->flags |= IAVF_FLAG_REINIT_ITR_NEEDED;\n-\treturn iavf_send_pf_msg(adapter, VIRTCHNL_OP_REQUEST_QUEUES,\n-\t\t\t\t(u8 *)&vfres, sizeof(vfres));\n-}\n-\n /**\n * iavf_add_ether_addrs\n * @adapter: adapter structure\n", "prefixes": [ "S40", "01/15" ] }