Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/45090/?format=api
https://patches.dpdk.org/api/patches/45090/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/1537527962-25757-11-git-send-email-hemant.agrawal@nxp.com/", "project": { "id": 1, "url": "https://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": "<1537527962-25757-11-git-send-email-hemant.agrawal@nxp.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1537527962-25757-11-git-send-email-hemant.agrawal@nxp.com", "date": "2018-09-21T11:05:59", "name": "[v3,10/13] net/dpaa: separate Rx function for LS1046", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "001fd28a104173a42ca60855c90c09d8835e0be0", "submitter": { "id": 477, "url": "https://patches.dpdk.org/api/people/477/?format=api", "name": "Hemant Agrawal", "email": "hemant.agrawal@nxp.com" }, "delegate": { "id": 319, "url": "https://patches.dpdk.org/api/users/319/?format=api", "username": "fyigit", "first_name": "Ferruh", "last_name": "Yigit", "email": "ferruh.yigit@amd.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/1537527962-25757-11-git-send-email-hemant.agrawal@nxp.com/mbox/", "series": [ { "id": 1437, "url": "https://patches.dpdk.org/api/series/1437/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1437", "date": "2018-09-21T11:05:49", "name": "NXP DPAA driver enhancements", "version": 3, "mbox": "https://patches.dpdk.org/series/1437/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/45090/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/45090/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id E05135B2E;\n\tFri, 21 Sep 2018 13:08:32 +0200 (CEST)", "from inva020.nxp.com (inva020.nxp.com [92.121.34.13])\n\tby dpdk.org (Postfix) with ESMTP id B60BF4CC3\n\tfor <dev@dpdk.org>; Fri, 21 Sep 2018 13:08:13 +0200 (CEST)", "from inva020.nxp.com (localhost [127.0.0.1])\n\tby inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 991EE1A02BD;\n\tFri, 21 Sep 2018 13:08:13 +0200 (CEST)", "from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com\n\t[165.114.16.14])\n\tby inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 87C4F1A0039;\n\tFri, 21 Sep 2018 13:08:11 +0200 (CEST)", "from bf-netperf1.ap.freescale.net (bf-netperf1.ap.freescale.net\n\t[10.232.134.28])\n\tby invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id 19CC9402E5;\n\tFri, 21 Sep 2018 19:08:08 +0800 (SGT)" ], "From": "Hemant Agrawal <hemant.agrawal@nxp.com>", "To": "dev@dpdk.org,\n\tthomas@monjalon.net,\n\tferruh.yigit@intel.com", "Date": "Fri, 21 Sep 2018 16:35:59 +0530", "Message-Id": "<1537527962-25757-11-git-send-email-hemant.agrawal@nxp.com>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1537527962-25757-1-git-send-email-hemant.agrawal@nxp.com>", "References": "<1537277516-8876-2-git-send-email-hemant.agrawal@nxp.com>\n\t<1537527962-25757-1-git-send-email-hemant.agrawal@nxp.com>", "X-Virus-Scanned": "ClamAV using ClamSMTP", "Subject": "[dpdk-dev] [PATCH v3 10/13] net/dpaa: separate Rx function for\n\tLS1046", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "This is to avoid the checks in datapath and help in performance.\nLS1046 has different data stash settings.\n\nSigned-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>\n---\n drivers/net/dpaa/dpaa_ethdev.c | 9 +++++--\n drivers/net/dpaa/dpaa_rxtx.c | 60 +++++++++++++++++++++++++++++++++---------\n drivers/net/dpaa/dpaa_rxtx.h | 3 +++\n 3 files changed, 58 insertions(+), 14 deletions(-)", "diff": "diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c\nindex fc536a6..1f2cc57 100644\n--- a/drivers/net/dpaa/dpaa_ethdev.c\n+++ b/drivers/net/dpaa/dpaa_ethdev.c\n@@ -661,8 +661,13 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,\n \t\t\t\t\"ret:%d(%s)\", rxq->fqid, ret, strerror(ret));\n \t\t\treturn ret;\n \t\t}\n-\t\trxq->cb.dqrr_dpdk_pull_cb = dpaa_rx_cb;\n-\t\trxq->cb.dqrr_prepare = dpaa_rx_cb_prepare;\n+\t\tif (dpaa_svr_family == SVR_LS1043A_FAMILY) {\n+\t\t\trxq->cb.dqrr_dpdk_pull_cb = dpaa_rx_cb_no_prefetch;\n+\t\t} else {\n+\t\t\trxq->cb.dqrr_dpdk_pull_cb = dpaa_rx_cb;\n+\t\t\trxq->cb.dqrr_prepare = dpaa_rx_cb_prepare;\n+\t\t}\n+\n \t\trxq->is_static = true;\n \t}\n \tdev->data->rx_queues[queue_idx] = rxq;\ndiff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c\nindex 6698c97..2c57741 100644\n--- a/drivers/net/dpaa/dpaa_rxtx.c\n+++ b/drivers/net/dpaa/dpaa_rxtx.c\n@@ -398,8 +398,9 @@ dpaa_eth_fd_to_mbuf(const struct qm_fd *fd, uint32_t ifid)\n \treturn mbuf;\n }\n \n+/* Specific for LS1043 */\n void\n-dpaa_rx_cb(struct qman_fq **fq, struct qm_dqrr_entry **dqrr,\n+dpaa_rx_cb_no_prefetch(struct qman_fq **fq, struct qm_dqrr_entry **dqrr,\n \t void **bufs, int num_bufs)\n {\n \tstruct rte_mbuf *mbuf;\n@@ -411,17 +412,13 @@ dpaa_rx_cb(struct qman_fq **fq, struct qm_dqrr_entry **dqrr,\n \tuint32_t length;\n \tuint8_t format;\n \n-\tif (dpaa_svr_family != SVR_LS1046A_FAMILY) {\n-\t\tbp_info = DPAA_BPID_TO_POOL_INFO(dqrr[0]->fd.bpid);\n-\t\tptr = rte_dpaa_mem_ptov(qm_fd_addr(&dqrr[0]->fd));\n-\t\trte_prefetch0((void *)((uint8_t *)ptr + DEFAULT_RX_ICEOF));\n-\t\tbufs[0] = (struct rte_mbuf *)((char *)ptr -\n-\t\t\t\tbp_info->meta_data_size);\n-\t}\n+\tbp_info = DPAA_BPID_TO_POOL_INFO(dqrr[0]->fd.bpid);\n+\tptr = rte_dpaa_mem_ptov(qm_fd_addr(&dqrr[0]->fd));\n+\trte_prefetch0((void *)((uint8_t *)ptr + DEFAULT_RX_ICEOF));\n+\tbufs[0] = (struct rte_mbuf *)((char *)ptr - bp_info->meta_data_size);\n \n \tfor (i = 0; i < num_bufs; i++) {\n-\t\tif (dpaa_svr_family != SVR_LS1046A_FAMILY &&\n-\t\t i < num_bufs - 1) {\n+\t\tif (i < num_bufs - 1) {\n \t\t\tbp_info = DPAA_BPID_TO_POOL_INFO(dqrr[i + 1]->fd.bpid);\n \t\t\tptr = rte_dpaa_mem_ptov(qm_fd_addr(&dqrr[i + 1]->fd));\n \t\t\trte_prefetch0((void *)((uint8_t *)ptr +\n@@ -458,6 +455,46 @@ dpaa_rx_cb(struct qman_fq **fq, struct qm_dqrr_entry **dqrr,\n \t}\n }\n \n+void\n+dpaa_rx_cb(struct qman_fq **fq, struct qm_dqrr_entry **dqrr,\n+\t void **bufs, int num_bufs)\n+{\n+\tstruct rte_mbuf *mbuf;\n+\tconst struct qm_fd *fd;\n+\tstruct dpaa_if *dpaa_intf;\n+\tuint16_t offset, i;\n+\tuint32_t length;\n+\tuint8_t format;\n+\n+\tfor (i = 0; i < num_bufs; i++) {\n+\t\tfd = &dqrr[i]->fd;\n+\t\tdpaa_intf = fq[0]->dpaa_intf;\n+\n+\t\tformat = (fd->opaque & DPAA_FD_FORMAT_MASK) >>\n+\t\t\t\tDPAA_FD_FORMAT_SHIFT;\n+\t\tif (unlikely(format == qm_fd_sg)) {\n+\t\t\tbufs[i] = dpaa_eth_sg_to_mbuf(fd, dpaa_intf->ifid);\n+\t\t\tcontinue;\n+\t\t}\n+\n+\t\toffset = (fd->opaque & DPAA_FD_OFFSET_MASK) >>\n+\t\t\t\tDPAA_FD_OFFSET_SHIFT;\n+\t\tlength = fd->opaque & DPAA_FD_LENGTH_MASK;\n+\n+\t\tmbuf = bufs[i];\n+\t\tmbuf->data_off = offset;\n+\t\tmbuf->data_len = length;\n+\t\tmbuf->pkt_len = length;\n+\t\tmbuf->port = dpaa_intf->ifid;\n+\n+\t\tmbuf->nb_segs = 1;\n+\t\tmbuf->ol_flags = 0;\n+\t\tmbuf->next = NULL;\n+\t\trte_mbuf_refcnt_set(mbuf, 1);\n+\t\tdpaa_eth_packet_info(mbuf, mbuf->buf_addr);\n+\t}\n+}\n+\n void dpaa_rx_cb_prepare(struct qm_dqrr_entry *dq, void **bufs)\n {\n \tstruct dpaa_bp_info *bp_info = DPAA_BPID_TO_POOL_INFO(dq->fd.bpid);\n@@ -468,8 +505,7 @@ void dpaa_rx_cb_prepare(struct qm_dqrr_entry *dq, void **bufs)\n \t * So we prefetch the annoation beforehand, so that it is available\n \t * in cache when accessed.\n \t */\n-\tif (dpaa_svr_family == SVR_LS1046A_FAMILY)\n-\t\trte_prefetch0((void *)((uint8_t *)ptr + DEFAULT_RX_ICEOF));\n+\trte_prefetch0((void *)((uint8_t *)ptr + DEFAULT_RX_ICEOF));\n \n \t*bufs = (struct rte_mbuf *)((char *)ptr - bp_info->meta_data_size);\n }\ndiff --git a/drivers/net/dpaa/dpaa_rxtx.h b/drivers/net/dpaa/dpaa_rxtx.h\nindex 6de70a7..75b093c 100644\n--- a/drivers/net/dpaa/dpaa_rxtx.h\n+++ b/drivers/net/dpaa/dpaa_rxtx.h\n@@ -270,4 +270,7 @@ void dpaa_rx_cb(struct qman_fq **fq,\n \t\tstruct qm_dqrr_entry **dqrr, void **bufs, int num_bufs);\n \n void dpaa_rx_cb_prepare(struct qm_dqrr_entry *dq, void **bufs);\n+\n+void dpaa_rx_cb_no_prefetch(struct qman_fq **fq,\n+\t\t struct qm_dqrr_entry **dqrr, void **bufs, int num_bufs);\n #endif\n", "prefixes": [ "v3", "10/13" ] }{ "id": 45090, "url": "