Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1038999/?format=api
{ "id": 1038999, "url": "http://patchwork.ozlabs.org/api/patches/1038999/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20190208205112.12180-14-anirudh.venkataramanan@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": "<20190208205112.12180-14-anirudh.venkataramanan@intel.com>", "list_archive_url": null, "date": "2019-02-08T20:51:09", "name": "[S13,13/16] ice: update VSI config dynamically", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "85dc8ca0ab8c477f09f40c01397385d24d111e09", "submitter": { "id": 73601, "url": "http://patchwork.ozlabs.org/api/people/73601/?format=api", "name": "Anirudh Venkataramanan", "email": "anirudh.venkataramanan@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/20190208205112.12180-14-anirudh.venkataramanan@intel.com/mbox/", "series": [ { "id": 90916, "url": "http://patchwork.ozlabs.org/api/series/90916/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=90916", "date": "2019-02-08T20:50:57", "name": "Bug fixes and minor feature updates for ice", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/90916/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1038999/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1038999/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;\n\tspf=pass (mailfrom) smtp.mailfrom=osuosl.org\n\t(client-ip=140.211.166.138; helo=whitealder.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 whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\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 43x6rS38dyz9sN1\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 9 Feb 2019 07:55:04 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 9060D87B3D;\n\tFri, 8 Feb 2019 20:55:02 +0000 (UTC)", "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 8ednxnPWgxkR; Fri, 8 Feb 2019 20:55:00 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id A785586F8A;\n\tFri, 8 Feb 2019 20:55:00 +0000 (UTC)", "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id 2685A1BF865\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 8 Feb 2019 20:53:15 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 053A981FA1\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 8 Feb 2019 20:53:15 +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 5MUYFXFpyerK for <intel-wired-lan@lists.osuosl.org>;\n\tFri, 8 Feb 2019 20:52:38 +0000 (UTC)", "from mga18.intel.com (mga18.intel.com [134.134.136.126])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id 0C72787E97\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 8 Feb 2019 20:52:36 +0000 (UTC)", "from fmsmga008.fm.intel.com ([10.253.24.58])\n\tby orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t08 Feb 2019 12:51:15 -0800", "from shasta.jf.intel.com ([10.166.241.11])\n\tby fmsmga008.fm.intel.com with ESMTP; 08 Feb 2019 12:51:14 -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.58,348,1544515200\"; d=\"scan'208\";a=\"123065509\"", "From": "Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Fri, 8 Feb 2019 12:51:09 -0800", "Message-Id": "<20190208205112.12180-14-anirudh.venkataramanan@intel.com>", "X-Mailer": "git-send-email 2.14.5", "In-Reply-To": "<20190208205112.12180-1-anirudh.venkataramanan@intel.com>", "References": "<20190208205112.12180-1-anirudh.venkataramanan@intel.com>", "Subject": "[Intel-wired-lan] [PATCH S13 13/16] ice: update VSI config\n\tdynamically", "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>", "MIME-Version": "1.0", "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: Victor Raj <victor.raj@intel.com>\n\nWhen VSI increases the number of queues dynamically, the scheduler\njust needs to add the new required nodes rather than re-adjusting with\npreviously allocated number of nodes. Readjusting didn't provide enough\nparents to add the upper layer nodes also can't place lan and rdma\nsubtrees separately.\n\nIn decrese case, keep the VSI configuration with max number of queues\nalways. This will leave some extra nodes in the tree but no harm done.\n\nSigned-off-by: Victor Raj <victor.raj@intel.com>\nReviewed-by: Bruce Allan <bruce.w.allan@intel.com>\nSigned-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>\n---\n drivers/net/ethernet/intel/ice/ice_sched.c | 75 ++++++------------------------\n 1 file changed, 13 insertions(+), 62 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ice/ice_sched.c b/drivers/net/ethernet/intel/ice/ice_sched.c\nindex cf1142ec16ee..efbebf7a050f 100644\n--- a/drivers/net/ethernet/intel/ice/ice_sched.c\n+++ b/drivers/net/ethernet/intel/ice/ice_sched.c\n@@ -1268,42 +1268,6 @@ ice_sched_add_vsi_child_nodes(struct ice_port_info *pi, u16 vsi_handle,\n \treturn 0;\n }\n \n-/**\n- * ice_sched_rm_vsi_child_nodes - remove VSI child nodes from the tree\n- * @pi: port information structure\n- * @vsi_node: pointer to the VSI node\n- * @num_nodes: pointer to the num nodes that needs to be removed per layer\n- * @owner: node owner (lan or rdma)\n- *\n- * This function removes the VSI child nodes from the tree. It gets called for\n- * lan and rdma separately.\n- */\n-static void\n-ice_sched_rm_vsi_child_nodes(struct ice_port_info *pi,\n-\t\t\t struct ice_sched_node *vsi_node, u16 *num_nodes,\n-\t\t\t u8 owner)\n-{\n-\tstruct ice_sched_node *node, *next;\n-\tu8 i, qgl, vsil;\n-\tu16 num;\n-\n-\tqgl = ice_sched_get_qgrp_layer(pi->hw);\n-\tvsil = ice_sched_get_vsi_layer(pi->hw);\n-\n-\tfor (i = qgl; i > vsil; i--) {\n-\t\tnum = num_nodes[i];\n-\t\tnode = ice_sched_get_first_node(pi->hw, vsi_node, i);\n-\t\twhile (node && num) {\n-\t\t\tnext = node->sibling;\n-\t\t\tif (node->owner == owner && !node->num_children) {\n-\t\t\t\tice_free_sched_node(pi, node);\n-\t\t\t\tnum--;\n-\t\t\t}\n-\t\t\tnode = next;\n-\t\t}\n-\t}\n-}\n-\n /**\n * ice_sched_calc_vsi_support_nodes - calculate number of VSI support nodes\n * @hw: pointer to the hw struct\n@@ -1444,7 +1408,6 @@ static enum ice_status\n ice_sched_update_vsi_child_nodes(struct ice_port_info *pi, u16 vsi_handle,\n \t\t\t\t u8 tc, u16 new_numqs, u8 owner)\n {\n-\tu16 prev_num_nodes[ICE_AQC_TOPO_MAX_LEVEL_NUM] = { 0 };\n \tu16 new_num_nodes[ICE_AQC_TOPO_MAX_LEVEL_NUM] = { 0 };\n \tstruct ice_sched_node *vsi_node;\n \tstruct ice_sched_node *tc_node;\n@@ -1452,7 +1415,6 @@ ice_sched_update_vsi_child_nodes(struct ice_port_info *pi, u16 vsi_handle,\n \tenum ice_status status = 0;\n \tstruct ice_hw *hw = pi->hw;\n \tu16 prev_numqs;\n-\tu8 i;\n \n \ttc_node = ice_sched_get_tc_node(pi, tc);\n \tif (!tc_node)\n@@ -1471,33 +1433,22 @@ ice_sched_update_vsi_child_nodes(struct ice_port_info *pi, u16 vsi_handle,\n \telse\n \t\treturn ICE_ERR_PARAM;\n \n-\t/* num queues are not changed */\n-\tif (prev_numqs == new_numqs)\n+\t/* num queues are not changed or less than the previous number */\n+\tif (new_numqs <= prev_numqs)\n \t\treturn status;\n-\n-\t/* calculate number of nodes based on prev/new number of qs */\n-\tif (prev_numqs)\n-\t\tice_sched_calc_vsi_child_nodes(hw, prev_numqs, prev_num_nodes);\n-\n \tif (new_numqs)\n \t\tice_sched_calc_vsi_child_nodes(hw, new_numqs, new_num_nodes);\n-\n-\tif (prev_numqs > new_numqs) {\n-\t\tfor (i = 0; i < ICE_AQC_TOPO_MAX_LEVEL_NUM; i++)\n-\t\t\tnew_num_nodes[i] = prev_num_nodes[i] - new_num_nodes[i];\n-\n-\t\tice_sched_rm_vsi_child_nodes(pi, vsi_node, new_num_nodes,\n-\t\t\t\t\t owner);\n-\t} else {\n-\t\tfor (i = 0; i < ICE_AQC_TOPO_MAX_LEVEL_NUM; i++)\n-\t\t\tnew_num_nodes[i] -= prev_num_nodes[i];\n-\n-\t\tstatus = ice_sched_add_vsi_child_nodes(pi, vsi_handle, tc_node,\n-\t\t\t\t\t\t new_num_nodes, owner);\n-\t\tif (status)\n-\t\t\treturn status;\n-\t}\n-\n+\t/* Keep the max number of queue configuration all the time. Update the\n+\t * tree only if number of queues > previous number of queues. This may\n+\t * leave some extra nodes in the tree if number of queues < previous\n+\t * number but that wouldn't harm anything. Removing those extra nodes\n+\t * may complicate the code if those nodes are part of SRL or\n+\t * individually rate limited.\n+\t */\n+\tstatus = ice_sched_add_vsi_child_nodes(pi, vsi_handle, tc_node,\n+\t\t\t\t\t new_num_nodes, owner);\n+\tif (status)\n+\t\treturn status;\n \tvsi_ctx->sched.max_lanq[tc] = new_numqs;\n \n \treturn 0;\n", "prefixes": [ "S13", "13/16" ] }