From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0076.outbound.protection.outlook.com [104.47.38.76]) by dpdk.org (Postfix) with ESMTP id 42A962BB1 for ; Wed, 1 Mar 2017 11:57:28 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=harmonicinc.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=wRGe8taOayu6oLUGDDo7qLOyi/kZKenOvvCgnmPCIzo=; b=gByTdox1v+UubMUvfwiWf2vAxVDe2nT1f7QWi4niF3OSA2Pz/Sw9yhbf1qzE0Vswfp9zmsbHQdpPIXuiyxNkQT6+5tkVjvE4JVJ/X05vh4d+GkCG7J6I5iMqICSQnmjjOQHmBs2ox8eIjpEjG6HBReIsm7rYnTYXzzzc6mVsrds= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=harmonicinc.com; Received: from kms.harmonicinc.com (95.67.66.62) by BN6PR11MB1345.namprd11.prod.outlook.com (10.173.32.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.933.12; Wed, 1 Mar 2017 10:57:25 +0000 From: Vladyslav Buslov To: , , CC: Date: Wed, 1 Mar 2017 12:56:53 +0200 Message-ID: <1488365813-12442-1-git-send-email-vladyslav.buslov@harmonicinc.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [95.67.66.62] X-ClientProxiedBy: VI1PR0501CA0005.eurprd05.prod.outlook.com (10.172.9.143) To BN6PR11MB1345.namprd11.prod.outlook.com (10.173.32.145) X-MS-Office365-Filtering-Correlation-Id: af7a6b6e-402b-44da-0a72-08d46091bf63 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:BN6PR11MB1345; X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1345; 3:pzGrMIHWSGgnWsbacwUcNZ6kmg/ogtWrkHMwR8ZqkzZ1jC8fjvo9V97yTmDG5ULU6Fa+QrfbErVbgfAMpoJhlJmGl/XnOHdoObhP+GPRifdb5KQs+52NhfYNBXLIX+HUKGjSCgGfLmG4hSFa185EZy3qMVRrbMUi/2q3Owg9NTZ+G4eSIaT4BYgSd8Yq3ucVqsyw/+q0AnHhTfH5j2zHTj8t472ljV88gNxE8IrFW2lpBnWpCGrf75HIx0pzyGukEITIs8OGJYwyxxkSbOxYyBf4bpFywAb/MdA3qandGsM=; 25:QfJRgHp1UM0a9EINAP8EzQQ2dKnFJy/fbWn2s+rm4d+OH5gzH0TgRlyl0yswtti+Ja49wTwZ7D3ms3eV0b+oXVjhNZBX26IKRupGrPG5uYXpXBSamQEuWtzthmu0h5SJvnS3qxW1Ro8sM/Cr0h0bj+wBPlQoghJP1ZKVqLCAdG+JnNKraKMFKbEEyYfV9xkJ865xiIAaiLoz1xyRRj1pA6il1VA8XOY7JINuM0R9VU3TbSy+QuSCEVJJWp6wtZ1M2dWK8K3YF5SwRwq+CntLo2qdrkeb1No/4YximIQjd4YiQkMmIkKiOGNLy071snW+VYs2AQ6IFW6oMFm1XoaHLYuyj2lM1ulAo6q4ZTnNb3ltasxwlohxwmb1xx9mLdwygRILWWYRhwCAgDkrS6Hv30+H/5vXO59VMd3YWtJVdgPZLXRgE6nkCE68h/FStIElPp1P1mwxyUvRkbtpljfKhA== X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1345; 31:05DEadOiZctXqatNYoXF6wbm30fodor8rFMPCkVIKSteXGz1WmKYG9jfRqDLrwN5rQZ6xb45eDf4E5xCwPqnaCLQwOOfaYiD4D6l2PE4eUjLsE0KOx3jSND0jrZ2qOjafGgqR4h+BtKjA17XWwAbAHsF+yS8crGxt/0NvHiOixPfyPN2kOGJvl1BWhtU77bt1MtdV7E8jkqQ1yZ3vasvUrxhN+jklWVO/MAQMsDmZxFSEH3AEKGSCTPkz8mt4OzVr+fQtXxbMnGItJDkV319P/WpWGv8WMYxfL8mWXcf034=; 20:kK+ecbmAErvpsRjAWHchs6XPOYXrgkjAe1X5HLXPby19uTpajWsmjy4y5SrXAbSyrS0WTORmH1h1gy5AxSRrEKMN7/dwil5VsTaOEGgywzqn2J3Xo1XojnpfQqJHMwcmGIWGzCwZfabJ2F2ijGTWhsoum0ljftQBtoFMjQ0Ryo70Hty8ZwUpRA7HSFvtY3mYkANu96YuGChfluH9/ya+qBr4zj/8HNwc8UtaAlRZB4Gbgz0WAvSX5RIwxgrruTMqLRQbTuGEULppS1OPVRCDDk+Pp0NKy3Q1EptP7DXzuPEK2MiHyYkLTt3MZvR9IniLkSL/2W0qFwAWzO/G/TZyhQhovNQ/WdsdyiNN9gQQra5tnUeHTTzgEv8UVM0Op1Kz1GwPZznCOo1jcdqJ88jwG6KYDfyzzk8LWf0iBLBRPPcQe6mUD7/0pjyUlmIf/xgC9TOnQnjDX5z8CeUEY7GbYPNkvn5IQxp482tz2lAcweiVsH15YsDmxlWmO99s9ayc X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026)(6041248)(20161123562025)(20161123564025)(20161123555025)(20161123558025)(20161123560025)(6072148); SRVR:BN6PR11MB1345; BCL:0; PCL:0; RULEID:; SRVR:BN6PR11MB1345; X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1345; 4:pAwczlTreCEKfgxCedOVnG3uWKRJLIfKC/mTMpbkFJgYydQaOvISyqhjPAB9C8FA23u/+9tJZqn/Myv5IePY5pPL+PGzqUqWVhRdxwmF4iDQ3TKj/odLCbiHNV72EOS4jOuJvgiIbRHeUSOJGfgo+AgmwtvhOznKzkAJXq6L3tMbWnmWra4wqSdqV/ZTaoFv3y4o1C0VH0auKFWGEtPkY0dwLl2GZjNftgA1XkzyCpiKCAtiHokApjsQToUj0e+yeW9cZuSYn8lZv8D3D+zAGlG3vd43XKKBDKGFVrMkaWcFRJA6QPXmFmLBnGtxe2z4vaTLkA+MM6xlq2vZ5QNA91cBiLqOIPdWcrdiDoWlRsqrNNRZGeQJVUA1anz68BGe0GCjZPdc1q/VDmoxN9ZPkOm5ApE1aBYuQMPk4zukDAFXQ+I2uVaJZsZSLVMSl7vnVtjsNSsOdm2kce/tWNgXbl9qLDZ6ne1z4FzkbSeKE8kIo+L+Tk766Ue6w7eRJB5PjgjUSxRkGloPeVgZTTJrS7/xI06nU0F96k165JMWvongD7VuHRQyoH6UM4e0fmB0IhFxEgkXyv9gUX+ojfqdignk86lNUfcGZIJjYoPbMkXXNUzFRxmoIkl3epVe8z+D X-Forefront-PRVS: 0233768B38 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39860400002)(39450400003)(39410400002)(39850400002)(39840400002)(36756003)(5003940100001)(33646002)(2906002)(2201001)(86362001)(6116002)(3846002)(50986999)(66066001)(6666003)(5660300001)(4326008)(92566002)(47776003)(50466002)(42186005)(53416004)(38730400002)(53936002)(189998001)(8676002)(6486002)(81166006)(305945005)(50226002)(25786008)(7736002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR11MB1345; H:kms.harmonicinc.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1345; 23:/s0itSyrzdJiKc+DMUu1i7Kl0umlMNtYKjJ7RGf/VS044NBlQUMKGNpJ1se+1cw0q/Y/sNKx5jpG+GUXA3yrcVKSWx02YBz9Y0mnm27Eiwy/Mzg+LEGBAY14BbitI3elH2SgPTKFTrplFhTK5BIFmWCrYhBfCkYLocVn62VkzuwU2OlU/02qjQmPoox96AFxA04wHbErdREjqPp3XhlqIRqURM7g3tyYgNp0O/DbTXL3QSXiPlt6MsggLDk7TOVVmFNxQQdKcLTrtCIDSDwuP6pQJfkCofCvXtsroRaflXNm2QvQjbldriVZ+IQFjbnoVRBM70Rq6eAcyby/navD6FFArlslbHaHxN2u/R6ghL7qeF62t4lBV+jhKAuhqZvialdrrKctk2B4vlhXi0hMlDtMmdF17xjaNCLG+mfboZb8K4+MpW320u8Yesb6v4n42h5Zj/Vb7XdHm0QJoadFVVLD6huWCqOceCWF012MMcVXzGYUpZ21mbt5dNtCMItrSP18py+RVobrV+Yx0XycHMutjnxkLxfwEQnvZykpLXlwR+Zg5+mIJmQQ9QGcihnz6GF9a7NWI18lS+Xek8xloOzn+zOZpVOc6TVPMnF/GQ7s6tJA4pt0qyN027uiFzmx1NsBIb6cpSGCrFiejB6R/b9OTEcXcQ6XlrERtyYuvm3pqC7tClnCFl0CNl/eS9O2fTUH7hL74cJrNYVj/1AH+xsl3iSFpiJ7D7ScQUDG4JHo4eCEJQJNLlAskp7GvL6ulV1+SaPdoB6jzYUdI+UAkfOh0TaT3TDLji5DiXUenq/dTHXeXE5pcYFn7fSQJtXtDNpZZcmXHECMQisfvRfS2+NFzRldwzfdV/XIuzbUmM7/HZSk3y5ril2vidRbIxc/7B8l3cT/k2kudPFclYCnnjXuqHXD/u5SI83lUN2GLiHIaGOCAAZjLOz+djVxE1I5 X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1345; 6:szclBDUBTvdpT4/rwED10p/+04LJUF4jfr8ahoP2V0ZIfEaYKeCk6pnNvMYsg20yk80ztRhIw07I5G/Aj2BKiUUjMAQ2sDRK7bsZSztjHHxW5mq+sj6Muqbti7ry/5/YeVguKKi3bdLuSmjHbbE1Ad/IhB7vvyxs04OXeb4TN5ms8eAIaSOPfGURmmcSAh3Dr6RfwssXlpDhOCGec/Pr7ZNY2MijBqGTk7ZL6ihoF/WveRTgaNgxkbS0z3y9eSv5uy2hT02soEv5GwNEjXMNsCejfbZp7p/GrQarcxuHR6MtdwpniN1s4j1Ko2lyK37UTNYaz7To0tQb6c4gLi5Yenny+hwnv21WyDoV0RTavOvWSpYkg4w/GDcbs6c/h9Li/uadRV1W8a0f6A17xSkkfkBxN6My2qwlOGJtEJdjTnY=; 5:2DY+r5SWueY+ulLP/AR5TUv6jvAQ2mRc0Yf3bWxK2HrPg3GVuI1B0lRR0IhH/6pcmSQThg2lrCNgmRxmjsr3DyTBGO6nmyMaZBrgGTMFUplWa0OqO6mneZNODXrTqtYtK3xulo5aXsY5Opli58WH+w==; 24:CSMnBSvsTmksVP87d6SGWF2RdwYWGcFbGOFmWO4KNNBVoZwOUdLdAgF+CqwxpZCUMmbTMMjYl0T5IwoLiaREe3hWCAkHpEaAbPqP9l9EGkQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1345; 7:AtPL/W5xH7nAhgAA+I3ApFSD0oWR7d19LmxNz810CmtAA4NzC2imXNcatrsIYjx4FH00BfzbqqhbGabCX7KN58XILo999cjxSvnSaBMne7bgBrQKga0wPvFLsA1vjVTqmKkSpjCmOF4PZURVGk3vr7FtZdSpOvi1vpC46j7zykeqg/edfexrt/cubCEiBGiooyp9084tRxWHs6aPFszmRnPReUv73doecTxEtiZh2zZ6dQUWTwQKjkOQSCBr875i/mMRZXymmUGfKQPQsIDBVD2im1wsuDsT4pOdS/jpVWdodJfXXWo/VDYR/GYjH9UBhmvai9jmuF2PvJLKNW2NdA==; 20:qV0r3oxcdqlNe1gOCzL3ZE/8V3E4qJn+5sHMEofOiFbS9fLhdKHwnrxruo+Rp/kby2zVn7R/VXPnndZAFz9saQALBTWJTOI0iU5Ic0Urxo9Wb//WHV3IKFxYrnGX+yjyw4MBzOXGfQ86zuBelTXIyW8B0Fl1Jr8Rg/G7aE0ntqA= X-OriginatorOrg: harmonicinc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2017 10:57:25.4158 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1345 Subject: [dpdk-dev] [PATCH] net/i40e: add packet prefetch X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Mar 2017 10:57:28 -0000 Prefetch both cache lines of mbuf and first cache line of payload if CONFIG_RTE_PMD_PACKET_PREFETCH is set. Signed-off-by: Vladyslav Buslov --- drivers/net/i40e/i40e_rxtx.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index 48429cc..2b4e5c9 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -100,6 +100,12 @@ #define I40E_TX_OFFLOAD_NOTSUP_MASK \ (PKT_TX_OFFLOAD_MASK ^ I40E_TX_OFFLOAD_MASK) +#ifdef RTE_PMD_PACKET_PREFETCH +#define rte_packet_prefetch(p) rte_prefetch0(p) +#else +#define rte_packet_prefetch(p) do {} while (0) +#endif + static uint16_t i40e_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts); @@ -495,6 +501,9 @@ i40e_rx_scan_hw_ring(struct i40e_rx_queue *rxq) /* Translate descriptor info to mbuf parameters */ for (j = 0; j < nb_dd; j++) { mb = rxep[j].mbuf; + rte_packet_prefetch( + RTE_PTR_ADD(mb->buf_addr, + RTE_PKTMBUF_HEADROOM)); qword1 = rte_le_to_cpu_64(\ rxdp[j].wb.qword1.status_error_len); pkt_len = ((qword1 & I40E_RXD_QW1_LENGTH_PBUF_MASK) >> @@ -578,9 +587,11 @@ i40e_rx_alloc_bufs(struct i40e_rx_queue *rxq) rxdp = &rxq->rx_ring[alloc_idx]; for (i = 0; i < rxq->rx_free_thresh; i++) { - if (likely(i < (rxq->rx_free_thresh - 1))) + if (likely(i < (rxq->rx_free_thresh - 1))) { /* Prefetch next mbuf */ - rte_prefetch0(rxep[i + 1].mbuf); + rte_packet_prefetch(rxep[i + 1].mbuf->cacheline0); + rte_packet_prefetch(rxep[i + 1].mbuf->cacheline1); + } mb = rxep[i].mbuf; rte_mbuf_refcnt_set(mb, 1); @@ -752,7 +763,8 @@ i40e_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) I40E_RXD_QW1_LENGTH_PBUF_SHIFT) - rxq->crc_len; rxm->data_off = RTE_PKTMBUF_HEADROOM; - rte_prefetch0(RTE_PTR_ADD(rxm->buf_addr, RTE_PKTMBUF_HEADROOM)); + rte_packet_prefetch(RTE_PTR_ADD(rxm->buf_addr, + RTE_PKTMBUF_HEADROOM)); rxm->nb_segs = 1; rxm->next = NULL; rxm->pkt_len = rx_packet_len; @@ -939,7 +951,7 @@ i40e_recv_scattered_pkts(void *rx_queue, first_seg->ol_flags |= pkt_flags; /* Prefetch data of first segment, if configured to do so. */ - rte_prefetch0(RTE_PTR_ADD(first_seg->buf_addr, + rte_packet_prefetch(RTE_PTR_ADD(first_seg->buf_addr, first_seg->data_off)); rx_pkts[nb_rx++] = first_seg; first_seg = NULL; -- 2.1.4