Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/10243/?format=api
http://patches.dpdk.org/api/patches/10243/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/1454063573-1993-2-git-send-email-adrien.mazarguil@6wind.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<1454063573-1993-2-git-send-email-adrien.mazarguil@6wind.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1454063573-1993-2-git-send-email-adrien.mazarguil@6wind.com", "date": "2016-01-29T10:32:48", "name": "[dpdk-dev,1/6] mlx5: prefetch next TX mbuf header and data", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "0a7207ec815a327cd7aa15b288b5a3bd60c76523", "submitter": { "id": 165, "url": "http://patches.dpdk.org/api/people/165/?format=api", "name": "Adrien Mazarguil", "email": "adrien.mazarguil@6wind.com" }, "delegate": { "id": 10, "url": "http://patches.dpdk.org/api/users/10/?format=api", "username": "bruce", "first_name": "Bruce", "last_name": "Richardson", "email": "bruce.richardson@intel.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/1454063573-1993-2-git-send-email-adrien.mazarguil@6wind.com/mbox/", "series": [], "comments": "http://patches.dpdk.org/api/patches/10243/comments/", "check": "pending", "checks": "http://patches.dpdk.org/api/patches/10243/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id AA94BC67E;\n\tFri, 29 Jan 2016 11:33:18 +0100 (CET)", "from mail-wm0-f48.google.com (mail-wm0-f48.google.com\n\t[74.125.82.48]) by dpdk.org (Postfix) with ESMTP id 485F4C67C\n\tfor <dev@dpdk.org>; Fri, 29 Jan 2016 11:33:17 +0100 (CET)", "by mail-wm0-f48.google.com with SMTP id p63so61881370wmp.1\n\tfor <dev@dpdk.org>; Fri, 29 Jan 2016 02:33:17 -0800 (PST)", "from 6wind.com (guy78-3-82-239-227-177.fbx.proxad.net.\n\t[82.239.227.177]) by smtp.gmail.com with ESMTPSA id\n\tm143sm6806372wma.17.2016.01.29.02.33.16\n\t(version=TLSv1/SSLv3 cipher=OTHER);\n\tFri, 29 Jan 2016 02:33:16 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=6wind-com.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=W++DqTnTutv9F85eHLHzemwcMWO0+xj+TBXShaY62vY=;\n\tb=v0e3kCKOuJxePw9tJR1Hni7GkQLhe7C6BUkh1ekYy0adC8XyBfKgZx8FMh7LNPUVQP\n\t0xDdTm81FYYZyFG4oXPhB/3FuH74XlaI7QPru9OX++rXgjZT/SbXvh1zX1ZVmEo9U/p4\n\t4toF30oGwoXEG/AKrOCPBTyz7A4Z+EwdNdzLzRsEB+NjTLAE9lyDouD69DU5DyXcYEvJ\n\tzXpXt84iXAqSKRMeO3hMi33cMbwdHs6SoHbfjVC7mLUYWN5J6v1lbwCIu/QnZVwFLbeZ\n\tjVp4+ELS/MIHGilavIvsVtIp+mU9k+O9PWNTUbo1qIn8cZzgZ87xlOTTLTGp4ObKjGq2\n\tlZUg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=W++DqTnTutv9F85eHLHzemwcMWO0+xj+TBXShaY62vY=;\n\tb=J6RzSNt7RHx5vrNYsqVnfzrxTcaMzFSYvdAoXbYOJh0O3Ek45+A1FzSUpvuJKDrKHj\n\t52MwQbZ9x5U6RyJpKIqkg5DB29zYMQdpHtETRaDpzMR5/MOIlvlFxFjidkcfUK7Fd63C\n\t/ITZH9LKKV+wCpEyKn8oN+uw5ETeElXTCPq5dU8AK9NS6sof1QW2+/oFOQdQGP35TnAi\n\ts8T/RzJrRCvbH1mnAHcCBiSBWe++rVAusESFyzy7oeoz/AISq3sIJlGDcioZlhTtH8c9\n\t7mMNBw3RMpRfw+Al8BxsWdlV7mh+MfRffSmVAZ32ugX+LUgx7kGuinuqKPPXk7nmfVFY\n\t2cyg==", "X-Gm-Message-State": "AG10YOQw3P2qvzV0ZXNKiCKdRCjvfVXMXey5Q/en3REV5wMCLtFPUdx/GG8lgePsXwI3cyU9", "X-Received": "by 10.28.194.69 with SMTP id s66mr8768676wmf.93.1454063597177;\n\tFri, 29 Jan 2016 02:33:17 -0800 (PST)", "From": "Adrien Mazarguil <adrien.mazarguil@6wind.com>", "To": "dev@dpdk.org", "Date": "Fri, 29 Jan 2016 11:32:48 +0100", "Message-Id": "<1454063573-1993-2-git-send-email-adrien.mazarguil@6wind.com>", "X-Mailer": "git-send-email 2.1.4", "In-Reply-To": "<1454063573-1993-1-git-send-email-adrien.mazarguil@6wind.com>", "References": "<1454063573-1993-1-git-send-email-adrien.mazarguil@6wind.com>", "Subject": "[dpdk-dev] [PATCH 1/6] mlx5: prefetch next TX mbuf header and data", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "patches and discussions about DPDK <dev.dpdk.org>", "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "From: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>\n\nThis change improves performance noticeably.\n\nSigned-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>\n---\n drivers/net/mlx5/mlx5_rxtx.c | 16 +++++++++++++++-\n 1 file changed, 15 insertions(+), 1 deletion(-)", "diff": "diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c\nindex 7585570..bee5ce2 100644\n--- a/drivers/net/mlx5/mlx5_rxtx.c\n+++ b/drivers/net/mlx5/mlx5_rxtx.c\n@@ -443,8 +443,11 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n)\n \tunsigned int i;\n \tunsigned int max;\n \tint err;\n+\tstruct rte_mbuf *buf = pkts[0];\n \n \tassert(elts_comp_cd != 0);\n+\t/* Prefetch first packet cacheline. */\n+\trte_prefetch0(buf);\n \ttxq_complete(txq);\n \tmax = (elts_n - (elts_head - txq->elts_tail));\n \tif (max > elts_n)\n@@ -458,7 +461,7 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n)\n \tif (max > pkts_n)\n \t\tmax = pkts_n;\n \tfor (i = 0; (i != max); ++i) {\n-\t\tstruct rte_mbuf *buf = pkts[i];\n+\t\tstruct rte_mbuf *buf_next = pkts[i + 1];\n \t\tunsigned int elts_head_next =\n \t\t\t(((elts_head + 1) == elts_n) ? 0 : elts_head + 1);\n \t\tstruct txq_elt *elt_next = &(*txq->elts)[elts_head_next];\n@@ -481,6 +484,8 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n)\n \t\t\t\ttmp = next;\n \t\t\t} while (tmp != NULL);\n \t\t}\n+\t\tif (i + 1 < max)\n+\t\t\trte_prefetch0(buf_next);\n \t\t/* Request TX completion. */\n \t\tif (unlikely(--elts_comp_cd == 0)) {\n \t\t\telts_comp_cd = txq->elts_comp_cd_init;\n@@ -502,6 +507,7 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n)\n \t\t\tuintptr_t addr;\n \t\t\tuint32_t length;\n \t\t\tuint32_t lkey;\n+\t\t\tuintptr_t buf_next_addr;\n \n \t\t\t/* Retrieve buffer information. */\n \t\t\taddr = rte_pktmbuf_mtod(buf, uintptr_t);\n@@ -522,6 +528,13 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n)\n \t\t\t\trte_prefetch0((volatile void *)\n \t\t\t\t\t (uintptr_t)addr);\n \t\t\tRTE_MBUF_PREFETCH_TO_FREE(elt_next->buf);\n+\t\t\t/* Prefetch next buffer data. */\n+\t\t\tif (i + 1 < max) {\n+\t\t\t\tbuf_next_addr =\n+\t\t\t\t\trte_pktmbuf_mtod(buf_next, uintptr_t);\n+\t\t\t\trte_prefetch0((volatile void *)\n+\t\t\t\t\t (uintptr_t)buf_next_addr);\n+\t\t\t}\n \t\t\t/* Put packet into send queue. */\n #if MLX5_PMD_MAX_INLINE > 0\n \t\t\tif (length <= txq->max_inline)\n@@ -571,6 +584,7 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n)\n #endif /* MLX5_PMD_SGE_WR_N > 1 */\n \t\t}\n \t\telts_head = elts_head_next;\n+\t\tbuf = buf_next;\n #ifdef MLX5_PMD_SOFT_COUNTERS\n \t\t/* Increment sent bytes counter. */\n \t\ttxq->stats.obytes += sent_size;\n", "prefixes": [ "dpdk-dev", "1/6" ] }{ "id": 10243, "url": "