Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1141307/?format=api
{ "id": 1141307, "url": "http://patchwork.ozlabs.org/api/patches/1141307/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20190802082533.23083-9-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": "<20190802082533.23083-9-anthony.l.nguyen@intel.com>", "list_archive_url": null, "date": "2019-08-02T08:25:27", "name": "[S26,09/15] ice: Report what the user set for coalesce [tx|rx]-usecs", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "ae59e43b538fa16339dcb91d508f17ac91b63e02", "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/20190802082533.23083-9-anthony.l.nguyen@intel.com/mbox/", "series": [ { "id": 123025, "url": "http://patchwork.ozlabs.org/api/series/123025/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=123025", "date": "2019-08-02T08:25:29", "name": "[S26,01/15] ice: add support for enabling/disabling single queues", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/123025/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1141307/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1141307/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.137; helo=fraxinus.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 fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\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 460YCj5pqQz9sND\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 3 Aug 2019 02:54:09 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 55CCF86B68;\n\tFri, 2 Aug 2019 16:54:06 +0000 (UTC)", "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id vK1Nt7z7ru8M; Fri, 2 Aug 2019 16:54:04 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 6013286B5E;\n\tFri, 2 Aug 2019 16:54:04 +0000 (UTC)", "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id 283681BF296\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 2 Aug 2019 16:54:01 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 225C786B8C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 2 Aug 2019 16:54:01 +0000 (UTC)", "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id n5c9Dm-fhEFu for <intel-wired-lan@lists.osuosl.org>;\n\tFri, 2 Aug 2019 16:54:00 +0000 (UTC)", "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 55A5F86B3A\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 2 Aug 2019 16:54:00 +0000 (UTC)", "from orsmga003.jf.intel.com ([10.7.209.27])\n\tby orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t02 Aug 2019 09:53:58 -0700", "from unknown (HELO localhost.jf.intel.com) ([10.166.244.174])\n\tby orsmga003.jf.intel.com with ESMTP; 02 Aug 2019 09:53:58 -0700" ], "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.64,338,1559545200\"; d=\"scan'208\";a=\"175640946\"", "From": "Tony Nguyen <anthony.l.nguyen@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Fri, 2 Aug 2019 01:25:27 -0700", "Message-Id": "<20190802082533.23083-9-anthony.l.nguyen@intel.com>", "X-Mailer": "git-send-email 2.20.1", "In-Reply-To": "<20190802082533.23083-1-anthony.l.nguyen@intel.com>", "References": "<20190802082533.23083-1-anthony.l.nguyen@intel.com>", "MIME-Version": "1.0", "Subject": "[Intel-wired-lan] [PATCH S26 09/15] ice: Report what the user set\n\tfor coalesce [tx|rx]-usecs", "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: Brett Creeley <brett.creeley@intel.com>\n\nCurrently if the user sets an odd value for [tx|rx]-usecs we align the\nvalue because the hardware only understands ITR values in multiples of\n2. This seems misleading because we are essentially telling the user\nthat the ITR value is odd, when in fact we have changed it internally.\nFix this by reporting that setting odd ITR values is not allowed.\n\nAlso, while making changes to ice_set_rc_coalesce() I noticed a bit of\ncode/error duplication. Make the necessary changes to remove the\nduplication.\n\nSigned-off-by: Brett Creeley <brett.creeley@intel.com>\n---\n drivers/net/ethernet/intel/ice/ice_ethtool.c | 88 ++++++++++----------\n 1 file changed, 44 insertions(+), 44 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c\nindex 48d4ceac288a..dadcf4324f56 100644\n--- a/drivers/net/ethernet/intel/ice/ice_ethtool.c\n+++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c\n@@ -3400,25 +3400,25 @@ static int\n ice_set_rc_coalesce(enum ice_container_type c_type, struct ethtool_coalesce *ec,\n \t\t struct ice_ring_container *rc, struct ice_vsi *vsi)\n {\n+\tconst char *c_type_str = (c_type == ICE_RX_CONTAINER) ? \"rx\" : \"tx\";\n+\tu32 use_adaptive_coalesce, coalesce_usecs;\n \tstruct ice_pf *pf = vsi->back;\n \tu16 itr_setting;\n \n \tif (!rc->ring)\n \t\treturn -EINVAL;\n \n-\titr_setting = rc->itr_setting & ~ICE_ITR_DYNAMIC;\n-\n \tswitch (c_type) {\n \tcase ICE_RX_CONTAINER:\n \t\tif (ec->rx_coalesce_usecs_high > ICE_MAX_INTRL ||\n \t\t (ec->rx_coalesce_usecs_high &&\n \t\t ec->rx_coalesce_usecs_high < pf->hw.intrl_gran)) {\n \t\t\tnetdev_info(vsi->netdev,\n-\t\t\t\t \"Invalid value, rx-usecs-high valid values are 0 (disabled), %d-%d\\n\",\n-\t\t\t\t pf->hw.intrl_gran, ICE_MAX_INTRL);\n+\t\t\t\t \"Invalid value, %s-usecs-high valid values are 0 (disabled), %d-%d\\n\",\n+\t\t\t\t c_type_str, pf->hw.intrl_gran,\n+\t\t\t\t ICE_MAX_INTRL);\n \t\t\treturn -EINVAL;\n \t\t}\n-\n \t\tif (ec->rx_coalesce_usecs_high != rc->ring->q_vector->intrl) {\n \t\t\trc->ring->q_vector->intrl = ec->rx_coalesce_usecs_high;\n \t\t\twr32(&pf->hw, GLINT_RATE(rc->ring->q_vector->reg_idx),\n@@ -3426,60 +3426,60 @@ ice_set_rc_coalesce(enum ice_container_type c_type, struct ethtool_coalesce *ec,\n \t\t\t\t\t\t pf->hw.intrl_gran));\n \t\t}\n \n-\t\tif (ec->rx_coalesce_usecs != itr_setting &&\n-\t\t ec->use_adaptive_rx_coalesce) {\n-\t\t\tnetdev_info(vsi->netdev,\n-\t\t\t\t \"Rx interrupt throttling cannot be changed if adaptive-rx is enabled\\n\");\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\n-\t\tif (ec->rx_coalesce_usecs > ICE_ITR_MAX) {\n-\t\t\tnetdev_info(vsi->netdev,\n-\t\t\t\t \"Invalid value, rx-usecs range is 0-%d\\n\",\n-\t\t\t\t ICE_ITR_MAX);\n-\t\t\treturn -EINVAL;\n-\t\t}\n+\t\tuse_adaptive_coalesce = ec->use_adaptive_rx_coalesce;\n+\t\tcoalesce_usecs = ec->rx_coalesce_usecs;\n \n-\t\tif (ec->use_adaptive_rx_coalesce) {\n-\t\t\trc->itr_setting |= ICE_ITR_DYNAMIC;\n-\t\t} else {\n-\t\t\trc->itr_setting = ITR_REG_ALIGN(ec->rx_coalesce_usecs);\n-\t\t\trc->target_itr = ITR_TO_REG(rc->itr_setting);\n-\t\t}\n \t\tbreak;\n \tcase ICE_TX_CONTAINER:\n \t\tif (ec->tx_coalesce_usecs_high) {\n \t\t\tnetdev_info(vsi->netdev,\n-\t\t\t\t \"setting tx-usecs-high is not supported\\n\");\n+\t\t\t\t \"setting %s-usecs-high is not supported\\n\",\n+\t\t\t\t c_type_str);\n \t\t\treturn -EINVAL;\n \t\t}\n \n-\t\tif (ec->tx_coalesce_usecs != itr_setting &&\n-\t\t ec->use_adaptive_tx_coalesce) {\n-\t\t\tnetdev_info(vsi->netdev,\n-\t\t\t\t \"Tx interrupt throttling cannot be changed if adaptive-tx is enabled\\n\");\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\n-\t\tif (ec->tx_coalesce_usecs > ICE_ITR_MAX) {\n-\t\t\tnetdev_info(vsi->netdev,\n-\t\t\t\t \"Invalid value, tx-usecs range is 0-%d\\n\",\n-\t\t\t\t ICE_ITR_MAX);\n-\t\t\treturn -EINVAL;\n-\t\t}\n+\t\tuse_adaptive_coalesce = ec->use_adaptive_tx_coalesce;\n+\t\tcoalesce_usecs = ec->tx_coalesce_usecs;\n \n-\t\tif (ec->use_adaptive_tx_coalesce) {\n-\t\t\trc->itr_setting |= ICE_ITR_DYNAMIC;\n-\t\t} else {\n-\t\t\trc->itr_setting = ITR_REG_ALIGN(ec->tx_coalesce_usecs);\n-\t\t\trc->target_itr = ITR_TO_REG(rc->itr_setting);\n-\t\t}\n \t\tbreak;\n \tdefault:\n \t\tdev_dbg(&pf->pdev->dev, \"Invalid container type %d\\n\", c_type);\n \t\treturn -EINVAL;\n \t}\n \n+\titr_setting = rc->itr_setting & ~ICE_ITR_DYNAMIC;\n+\tif (coalesce_usecs != itr_setting && use_adaptive_coalesce) {\n+\t\tnetdev_info(vsi->netdev,\n+\t\t\t \"%s interrupt throttling cannot be changed if adaptive-%s is enabled\\n\",\n+\t\t\t c_type_str, c_type_str);\n+\t\treturn -EINVAL;\n+\t}\n+\n+\tif (coalesce_usecs > ICE_ITR_MAX) {\n+\t\tnetdev_info(vsi->netdev,\n+\t\t\t \"Invalid value, %s-usecs range is 0-%d\\n\",\n+\t\t\t c_type_str, ICE_ITR_MAX);\n+\t\treturn -EINVAL;\n+\t}\n+\n+\t/* hardware only supports an ITR granularity of 2us */\n+\tif (coalesce_usecs % 2 != 0) {\n+\t\tnetdev_info(vsi->netdev,\n+\t\t\t \"Invalid value, %s-usecs must be even\\n\",\n+\t\t\t c_type_str);\n+\t\treturn -EINVAL;\n+\t}\n+\n+\tif (use_adaptive_coalesce) {\n+\t\trc->itr_setting |= ICE_ITR_DYNAMIC;\n+\t} else {\n+\t\t/* store user facing value how it was set */\n+\t\trc->itr_setting = coalesce_usecs;\n+\t\t/* set to static and convert to value HW understands */\n+\t\trc->target_itr =\n+\t\t\tITR_TO_REG(ITR_REG_ALIGN(rc->itr_setting));\n+\t}\n+\n \treturn 0;\n }\n \n", "prefixes": [ "S26", "09/15" ] }