Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/847162/?format=api
{ "id": 847162, "url": "http://patchwork.ozlabs.org/api/patches/847162/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20171211183720.21524.93082.stgit@localhost6.localdomain6/", "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": "<20171211183720.21524.93082.stgit@localhost6.localdomain6>", "list_archive_url": null, "date": "2017-12-11T18:37:20", "name": "[7/9] ixgbevf: clear rx_buffer_info in configure instead of clean", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "e79de0d32632027fb6544f9dec9cefa7f0828189", "submitter": { "id": 1670, "url": "http://patchwork.ozlabs.org/api/people/1670/?format=api", "name": "Tantilov, Emil S", "email": "emil.s.tantilov@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/20171211183720.21524.93082.stgit@localhost6.localdomain6/mbox/", "series": [ { "id": 17925, "url": "http://patchwork.ozlabs.org/api/series/17925/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=17925", "date": "2017-12-11T18:36:44", "name": "ixgbevf: update Rx/Tx code path for build_skb", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/17925/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/847162/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/847162/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>)", "Received": [ "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ywWmX02vkz9s03\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 12 Dec 2017 05:33:15 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 7B25C87277;\n\tMon, 11 Dec 2017 18:33:14 +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 uChB24oK-ZEZ; Mon, 11 Dec 2017 18:33:14 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 042D187268;\n\tMon, 11 Dec 2017 18:33:14 +0000 (UTC)", "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ash.osuosl.org (Postfix) with ESMTP id EC5571BFA4B\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 11 Dec 2017 18:33:11 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id E627E26072\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 11 Dec 2017 18:33:11 +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 UhE9imcDf0jF for <intel-wired-lan@lists.osuosl.org>;\n\tMon, 11 Dec 2017 18:33:11 +0000 (UTC)", "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n\tby silver.osuosl.org (Postfix) with ESMTPS id 9A60D25D72\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 11 Dec 2017 18:33:10 +0000 (UTC)", "from orsmga008.jf.intel.com ([10.7.209.65])\n\tby fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t11 Dec 2017 10:33:10 -0800", "from estantil-desk3.jf.intel.com (HELO localhost6.localdomain6)\n\t([134.134.177.96])\n\tby orsmga008.jf.intel.com with ESMTP; 11 Dec 2017 10:33:09 -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.45,392,1508828400\"; d=\"scan'208\";a=\"1937343\"", "From": "Emil Tantilov <emil.s.tantilov@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Mon, 11 Dec 2017 10:37:20 -0800", "Message-ID": "<20171211183720.21524.93082.stgit@localhost6.localdomain6>", "In-Reply-To": "<20171211183537.21524.10133.stgit@localhost6.localdomain6>", "References": "<20171211183537.21524.10133.stgit@localhost6.localdomain6>", "User-Agent": "StGit/0.17.1-17-ge4e0", "MIME-Version": "1.0", "Subject": "[Intel-wired-lan] [PATCH 7/9] ixgbevf: clear rx_buffer_info in\n\tconfigure instead of clean", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.24", "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": "Based on commit d2bead576e67\n(\"igb: Clear Rx buffer_info in configure instead of clean\")\n\nThis change makes it so that instead of going through the entire ring on Rx\ncleanup we only go through the region that was designated to be cleaned up\nand stop when we reach the region where new allocations should start.\n\nIn addition we can avoid having to perform a memset on the Rx buffer_info\nstructures until we are about to start using the ring again.\n\nSigned-off-by: Emil Tantilov <emil.s.tantilov@intel.com>\n---\n drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 26 +++++++++++----------\n 1 file changed, 13 insertions(+), 13 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c\nindex 350afec..a793f9e 100644\n--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c\n+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c\n@@ -1773,6 +1773,10 @@ static void ixgbevf_configure_rx_ring(struct ixgbevf_adapter *adapter,\n \tIXGBE_WRITE_REG(hw, IXGBE_VFRDT(reg_idx), 0);\n \tring->tail = adapter->io_addr + IXGBE_VFRDT(reg_idx);\n \n+\t/* initialize rx_buffer_info */\n+\tmemset(ring->rx_buffer_info, 0,\n+\t sizeof(struct ixgbevf_rx_buffer) * ring->count);\n+\n \t/* initialize Rx descriptor 0 */\n \trx_desc = IXGBEVF_RX_DESC(ring, 0);\n \trx_desc->wb.upper.length = 0;\n@@ -2131,8 +2135,7 @@ void ixgbevf_up(struct ixgbevf_adapter *adapter)\n **/\n static void ixgbevf_clean_rx_ring(struct ixgbevf_ring *rx_ring)\n {\n-\tunsigned long size;\n-\tunsigned int i;\n+\tu16 i = rx_ring->next_to_clean;\n \n \t/* Free Rx ring sk_buff */\n \tif (rx_ring->skb) {\n@@ -2140,17 +2143,11 @@ static void ixgbevf_clean_rx_ring(struct ixgbevf_ring *rx_ring)\n \t\trx_ring->skb = NULL;\n \t}\n \n-\t/* ring already cleared, nothing to do */\n-\tif (!rx_ring->rx_buffer_info)\n-\t\treturn;\n-\n \t/* Free all the Rx ring pages */\n-\tfor (i = 0; i < rx_ring->count; i++) {\n+\twhile (i != rx_ring->next_to_alloc) {\n \t\tstruct ixgbevf_rx_buffer *rx_buffer;\n \n \t\trx_buffer = &rx_ring->rx_buffer_info[i];\n-\t\tif (!rx_buffer->page)\n-\t\t\tcontinue;\n \n \t\t/* Invalidate cache lines that may have been written to by\n \t\t * device so that we avoid corrupting memory.\n@@ -2171,11 +2168,14 @@ static void ixgbevf_clean_rx_ring(struct ixgbevf_ring *rx_ring)\n \t\t__page_frag_cache_drain(rx_buffer->page,\n \t\t\t\t\trx_buffer->pagecnt_bias);\n \n-\t\trx_buffer->page = NULL;\n+\t\ti++;\n+\t\tif (i == rx_ring->count)\n+\t\t\ti = 0;\n \t}\n \n-\tsize = sizeof(struct ixgbevf_rx_buffer) * rx_ring->count;\n-\tmemset(rx_ring->rx_buffer_info, 0, size);\n+\trx_ring->next_to_alloc = 0;\n+\trx_ring->next_to_clean = 0;\n+\trx_ring->next_to_use = 0;\n }\n \n /**\n@@ -3090,7 +3090,7 @@ int ixgbevf_setup_rx_resources(struct ixgbevf_ring *rx_ring)\n \tint size;\n \n \tsize = sizeof(struct ixgbevf_rx_buffer) * rx_ring->count;\n-\trx_ring->rx_buffer_info = vzalloc(size);\n+\trx_ring->rx_buffer_info = vmalloc(size);\n \tif (!rx_ring->rx_buffer_info)\n \t\tgoto err;\n \n", "prefixes": [ "7/9" ] }