Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/534130/?format=api
{ "id": 534130, "url": "http://patchwork.ozlabs.org/api/patches/534130/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1445471236-35918-8-git-send-email-catherine.sullivan@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": "<1445471236-35918-8-git-send-email-catherine.sullivan@intel.com>", "list_archive_url": null, "date": "2015-10-21T23:47:08", "name": "[next,S19,07/15] i40e/i40evf: Add a stat to track how many times we have to do a force WB", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "4e4c64d1247ebd6fc2d803e5639f3f3c991e0547", "submitter": { "id": 13931, "url": "http://patchwork.ozlabs.org/api/people/13931/?format=api", "name": "Catherine Sullivan", "email": "catherine.sullivan@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/1445471236-35918-8-git-send-email-catherine.sullivan@intel.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/534130/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/534130/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@lists.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" ], "Received": [ "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ozlabs.org (Postfix) with ESMTP id 24071141310\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 22 Oct 2015 10:48:35 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 7856486DC6;\n\tWed, 21 Oct 2015 23:48:34 +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 HDc0B6+2e6JD; Wed, 21 Oct 2015 23:48:33 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id DE62887FC8;\n\tWed, 21 Oct 2015 23:48:33 +0000 (UTC)", "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id 7762C1C04C3\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 21 Oct 2015 23:48:30 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 74A0586779\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 21 Oct 2015 23:48:30 +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 ooEOJKQG8pNg for <intel-wired-lan@lists.osuosl.org>;\n\tWed, 21 Oct 2015 23:48:29 +0000 (UTC)", "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id E344F86429\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 21 Oct 2015 23:48:29 +0000 (UTC)", "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby orsmga102.jf.intel.com with ESMTP; 21 Oct 2015 16:48:29 -0700", "from catheri1-tigger.jf.intel.com ([134.134.176.92])\n\tby fmsmga001.fm.intel.com with ESMTP; 21 Oct 2015 16:48:30 -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-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.20,179,1444719600\"; d=\"scan'208\";a=\"816562518\"", "From": "Catherine Sullivan <catherine.sullivan@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Wed, 21 Oct 2015 19:47:08 -0400", "Message-Id": "<1445471236-35918-8-git-send-email-catherine.sullivan@intel.com>", "X-Mailer": "git-send-email 1.9.3", "In-Reply-To": "<1445471236-35918-1-git-send-email-catherine.sullivan@intel.com>", "References": "<1445471236-35918-1-git-send-email-catherine.sullivan@intel.com>", "Subject": "[Intel-wired-lan] [next PATCH S19 07/15] i40e/i40evf: Add a stat to\n\ttrack how many times we have to do a force WB", "X-BeenThere": "intel-wired-lan@lists.osuosl.org", "X-Mailman-Version": "2.1.18-1", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.lists.osuosl.org>", "List-Unsubscribe": "<http://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@lists.osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@lists.osuosl.org?subject=help>", "List-Subscribe": "<http://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.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@lists.osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@lists.osuosl.org>" }, "content": "From: Anjali Singhai Jain <anjali.singhai@intel.com>\n\nWhen in NAPI with interrupts disabled, the HW needs to be forced to do a\nwrite back on TX if the number of descriptors pending are less than a\ncache line.\n\nThis stat helps keep track of how many times we get into this situation.\n\nSigned-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>\nChange-ID: I76c1bcc7ebccd6bffcc5aa33bfe05f2fa1c9a984\n\n---\nTesting-hints: We are forcing WB only once a second with the changes to\nmove force WB in the timer task. You should not see this ethtool stat\n\"tx_force_wb\" go up more often than that on X[L]710. On TLVF you will\nsee this stat more ofetn since we have a different strategy for force WB\nsince the HW provides a less expensive way of doing a force WB.\n drivers/net/ethernet/intel/i40e/i40e.h | 1 +\n drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 1 +\n drivers/net/ethernet/intel/i40e/i40e_main.c | 5 ++++-\n drivers/net/ethernet/intel/i40e/i40e_txrx.c | 4 +++-\n drivers/net/ethernet/intel/i40e/i40e_txrx.h | 1 +\n drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 4 +++-\n drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 1 +\n 7 files changed, 14 insertions(+), 3 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h\nindex 4dd3e26..ca07a7b 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e.h\n@@ -487,6 +487,7 @@ struct i40e_vsi {\n \tu32 tx_restart;\n \tu32 tx_busy;\n \tu64 tx_linearize;\n+\tu64 tx_force_wb;\n \tu32 rx_buf_failed;\n \tu32 rx_page_failed;\n \ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\nindex f956cd0..1a39d4d 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n@@ -88,6 +88,7 @@ static const struct i40e_stats i40e_gstrings_misc_stats[] = {\n \tI40E_VSI_STAT(\"tx_broadcast\", eth_stats.tx_broadcast),\n \tI40E_VSI_STAT(\"rx_unknown_protocol\", eth_stats.rx_unknown_protocol),\n \tI40E_VSI_STAT(\"tx_linearize\", tx_linearize),\n+\tI40E_VSI_STAT(\"tx_force_wb\", tx_force_wb),\n };\n \n /* These PF_STATs might look like duplicates of some NETDEV_STATs,\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex c8727b8..ae63539 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -881,6 +881,7 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)\n \tu64 bytes, packets;\n \tunsigned int start;\n \tu64 tx_linearize;\n+\tu64 tx_force_wb;\n \tu64 rx_p, rx_b;\n \tu64 tx_p, tx_b;\n \tu16 q;\n@@ -899,7 +900,7 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)\n \t */\n \trx_b = rx_p = 0;\n \ttx_b = tx_p = 0;\n-\ttx_restart = tx_busy = tx_linearize = 0;\n+\ttx_restart = tx_busy = tx_linearize = tx_force_wb = 0;\n \trx_page = 0;\n \trx_buf = 0;\n \trcu_read_lock();\n@@ -917,6 +918,7 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)\n \t\ttx_restart += p->tx_stats.restart_queue;\n \t\ttx_busy += p->tx_stats.tx_busy;\n \t\ttx_linearize += p->tx_stats.tx_linearize;\n+\t\ttx_force_wb += p->tx_stats.tx_force_wb;\n \n \t\t/* Rx queue is part of the same block as Tx queue */\n \t\tp = &p[1];\n@@ -934,6 +936,7 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)\n \tvsi->tx_restart = tx_restart;\n \tvsi->tx_busy = tx_busy;\n \tvsi->tx_linearize = tx_linearize;\n+\tvsi->tx_force_wb = tx_force_wb;\n \tvsi->rx_page_failed = rx_page;\n \tvsi->rx_buf_failed = rx_buf;\n \ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\nindex 626c567..718c0f0 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n@@ -1926,8 +1926,10 @@ int i40e_napi_poll(struct napi_struct *napi, int budget)\n \t/* If work not completed, return budget and polling will return */\n \tif (!clean_complete) {\n tx_only:\n-\t\tif (arm_wb)\n+\t\tif (arm_wb) {\n+\t\t\tq_vector->tx.ring[0].tx_stats.tx_force_wb++;\n \t\t\ti40e_force_wb(vsi, q_vector);\n+\t\t}\n \t\treturn budget;\n \t}\n \ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.h b/drivers/net/ethernet/intel/i40e/i40e_txrx.h\nindex 6779fb7..dccc1eb 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.h\n@@ -202,6 +202,7 @@ struct i40e_tx_queue_stats {\n \tu64 tx_busy;\n \tu64 tx_done_old;\n \tu64 tx_linearize;\n+\tu64 tx_force_wb;\n };\n \n struct i40e_rx_queue_stats {\ndiff --git a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c\nindex 521803e..e4f97f8 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c\n+++ b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c\n@@ -1364,8 +1364,10 @@ int i40evf_napi_poll(struct napi_struct *napi, int budget)\n \t/* If work not completed, return budget and polling will return */\n \tif (!clean_complete) {\n tx_only:\n-\t\tif (arm_wb)\n+\t\tif (arm_wb) {\n+\t\t\tq_vector->tx.ring[0].tx_stats.tx_force_wb++;\n \t\t\ti40evf_force_wb(vsi, q_vector);\n+\t\t}\n \t\treturn budget;\n \t}\n \ndiff --git a/drivers/net/ethernet/intel/i40evf/i40e_txrx.h b/drivers/net/ethernet/intel/i40evf/i40e_txrx.h\nindex ebc1bf7..997b374 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40e_txrx.h\n+++ b/drivers/net/ethernet/intel/i40evf/i40e_txrx.h\n@@ -201,6 +201,7 @@ struct i40e_tx_queue_stats {\n \tu64 tx_busy;\n \tu64 tx_done_old;\n \tu64 tx_linearize;\n+\tu64 tx_force_wb;\n };\n \n struct i40e_rx_queue_stats {\n", "prefixes": [ "next", "S19", "07/15" ] }