From patchwork Fri Apr 21 12:22:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 23806 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id E3C0537A6; Fri, 21 Apr 2017 14:23:04 +0200 (CEST) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0069.outbound.protection.outlook.com [104.47.32.69]) by dpdk.org (Postfix) with ESMTP id F30D42BAE for ; Fri, 21 Apr 2017 14:23:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=xhPPAt6XRl08f4WLIYESeO0M5r47uW4gSJ1HDc3LMY0=; b=CwSboyVF3RdAjWO4CS3kndlgOBOwQM+Tt7U7VjqKXymMjn5hm2WIkhAwrkwtM4mdOsujnPpDIj83D9EKsl/V5z7vlqfWkJmelvMJrC6UoCjfFEJWiJDrCwuNGBNrEaXLtjzx3jwhSBh4GQCguk+ao1O+ID5q9qTJdp4Jr0dxtFs= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost.localdomain (106.208.149.214) by BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.10; Fri, 21 Apr 2017 12:22:57 +0000 From: Jerin Jacob To: dev@dpdk.org Cc: thomas@monjalon.net, bruce.richardson@intel.com, harry.van.haaren@intel.com, hemant.agrawal@nxp.com, gage.eads@intel.com, nipun.gupta@nxp.com, santosh.shukla@caviumnetworks.com, Jerin Jacob Date: Fri, 21 Apr 2017 17:52:23 +0530 Message-Id: <20170421122223.24194-1-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.12.2 MIME-Version: 1.0 X-Originating-IP: [106.208.149.214] X-ClientProxiedBy: MAXPR01CA0060.INDPRD01.PROD.OUTLOOK.COM (10.164.146.160) To BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0937c09e-dbf3-4a38-b27b-08d488b126d7 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 3:TYdfaLNtn81w/Y8FKpBaDtiuQY+7IwxK8rnTwaj3UMJlmBB5KYI/afdVw9hP4q7TUUAYZGCnDL1bscWeKVYIecwjW5q34Y5SlbOnx/53XZFGXIcEOFwdUVFgzvLDpFS7K2gCrYiTHfveUyL8thewngtyc0BGbgGBzruQoVxQUoZ/jem1+F/DN6PrvgNzEp1p52n02Ldk8fi9mlJ51Gb1epY50PKVhyaAwcF7CG8pTo87pqrZwQW/q/D0iBt6TY5ebigMEWBhmltEKi7X6TOFOHa7kLrQBaPA38ZeZwN9/W9bQv+NN3ogvpsPhzuo5Uh4FLr4sLi0EYvtJ8nHI5eCWg==; 25:YOSe1SOINLY+uMXIYQTcUGPcEaYQyNI20ajKAzHQ41imJKym8cKK4awKV0JtKXi1XvQTL3T2RHZrkN9UL7a910EvKbSTpDYQDGrNAryXatkrJ/Lkzfxeh75D3gaxseLeRLwuoHmMuavQqHTF6GYCHAhj8T75LB9yc/RwsmFad3ZFEa9b0Ofr0A3ot1awDxXWmMmghJv2AJT1ihkr3aVO2HKHGmxT7V5nEhiEmbS3ENSqmFKsPQRQnNHDYqGrTkDc+tVtjNEA08qBUUqabDZ6ZVxrp/XdIDIL1eXUbUO9F7zaucyrTlfkAqKzEMDoG8xs+gANPkYnotaHmx/Dz4U+fCvPLEmCKyHy2IIAbafx1e7da+9e6ATarjR8JUysVtJOVavuaLIHM6MBdfW8nPzZC7IMxW3uBb71UZ9uxjZ3+6wdUEbGibwMrCNSOJqiUk6VhcePDvkpLZ0v5P3W4onGmA== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:i6Yltm7RvYmUDA1o/66RDvnXJEv+LLzCz9WpG17PbUthzn2htlG3XIFnue9DnplDwYXGkgoJqM5ZQ+KhptjyzRc51iit23Mrqzn1TK7ssav6BajbCd/5zhJwdFkRVH7C+0lFpNopLh5zLcA0XdVRnePbrZsdviQ+yjzmfb2MXQ1/EiL/JMgzpLRuOND+vOSsoUr5L0vMJjb06MrrsC15xt3+nH1zaKj/WnC9P5elxoDfRzpbto7h/aDN3K3yMn8A; 20:IxKzsYfJ3bsnZZ8Es/iGRe/00FzCQM68NOPRQkUNluemhR0g/qiPt6OAtMH4SGdrPDO1LLY5PSveDTtb+J71MB9HQxKN9HzJpIiCYBMfY6B2E8Gr5adFMJwZYLozd6ruogFqQM3U3TMSUMPPWHCGbSAX0vQ2IRd/6/gvbHVqUAYzGebQYvuTVXbC/7+bLAGGPfpDVw7FHYud9V/o+JL0ppIFkczx0pL55V0Lb1hpaBt7D3I3Qtl9JouFpTlNNyaDzeA8jj0QuwLhpDXx+UZLnpdSgJ+35g/Itre9PiSYeeq3KewpsGFuXQKvVVSFpBa6dc5qYzhqAotzC0QnnB6PlNK1XEQt1K//qSEYhK9Es7Nb0qIUv87uOuZb4e3elRE7UniMThZvt5om1ZcltRZCK5XuJuNppZlYNz/KTI/2QDyxCIV3xbml+qX6nzGI9+/sGNImvkh3qlkEFocHFwFy19iq3deTEPAM6mYT+Xa1aOwIV9akcu9sU9fnH075xgPXxt14p9Qb1GJ4dUAJIXvVVP5GoUAaTn+PpSMTY+hFG+ZcXEVoxLpAln/5WvtZFhz0ofEpiSiD2sqdYYSVaZJx7CvD/dnVqnr9LJFlgugtKh4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(166708455590820); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(3002001)(10201501046)(6041248)(20161123560025)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(20161123555025)(6072148); SRVR:BLUPR0701MB1714; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 4:KylgONb8VBThH9AeD+moy7+SW150rJjCvlUVg3VzwEehOgRYywzTqdrsr+Yl1W0kA5meO+ZI0AiwhfGqImwLK1PeuvRzlEBJoVNuYkAfIDdXUlrEXUh2hsPQcFKrflb7WYKHe1eoL1UQ1YzA7q9rBXBiCos1fha2sNVroPJKpeq7zLBc55xyuY1U7Z3xha4RRvDBVYg45OsZGYkIGr3RGkSC50RN9vpQfnFbPbMHXYPzcDXHY0NYfDciGfsfkbkH9sx5DrD9yVR+SkJB/gUpJgbTQvE+xsgPyj33QVK97JHhCGJ42mkpr0UyDaPwSC+AdZW5v2Ze2Ao98/iQz8YOGEDiRxuk2TByEZovzegHiahM41XMjFos45/hpwPpMFWEj+nxajdKduur8kIOyS4c8M0sTYC2729RwFqB6Z1dWxS0LRVzvP1hBXfXC4UewW/b7CiL8i+OJmyXpsKdhZKVot0xMx3i2KPl8RtFYQKgt+JRFsEDlYmiy11cvqgijQixAys4/uMmGyXSTMEy8Q2UmXZQwE6oklkr3NaqADwWOJmt64BETj7Rx5C/kLHwrbxrNS1JkOA2WOlRL+x8hkyKUv8mQ7dLYqg342+G23c3FFg3+8baarSmzmZyXqqfP2+TYQywzoxioNwUt9YSH0/oO35Us2J96qUsXfDakDXG+5m974+szSA7CxkWjj5pCfxDYzmCPR/XjCysN0yqCig8IiGnMlsQQKlmDhNdZQ8dJMBKkmVeTsGjZKFH0PvIfa1R X-Forefront-PRVS: 02843AA9E0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39450400003)(39830400002)(39410400002)(39400400002)(81166006)(25786009)(107886003)(110136004)(47776003)(8676002)(36756003)(189998001)(50986999)(38730400002)(5009440100003)(4326008)(50466002)(5003940100001)(66066001)(48376002)(6512007)(6306002)(6666003)(1076002)(42186005)(42882006)(50226002)(8656002)(6916009)(6506006)(6116002)(53936002)(33646002)(2351001)(7736002)(5660300001)(3846002)(6486002)(2361001)(305945005)(2906002); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1714; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 23:sbX9MXcLT5sxtZOdJsd/90KHl+Xq4TlFrnCY3bN?= NqzoY1YYkUAqBvuHkBO+Uo4FjAHKV3+1Z8zCuHRCrsmHFHy+l3mldvJ4ziGP4TClC6Qvha67TDeHwc/Rsks/aofO9X+UGoMlb6rptKsMCEYit6QMCb8mURe0a1LL4rrnAumrOUaQFaqBHr2xGW6teLjiiJXlLkoQmZxohdCnhSx/al/wJwdsyR6YQe533UjL+nypRC89az2Bwrm3irHnzp3wi+60uiS0DYWWFRAy0WKTKWLj4PVfcebmspzKmWNWx0IBsy0A6qQvllevYyDqDkZA0o4Fs2TVRrKixZaNvNvqU2uoaxtkVn0pEFCLPiVJma9ifAh+N0oEUagRfB7jMlwOdIUsFhBdc1NlJjB8qNSUNBmdYxlL1RA5D97d/bqVkFQ2HxMKuP9ZFtIzIm4KLuG04Dua20rp3JGveKXHhhFHbIv5rVmw6nsXdNPzI7Xj3rjOBP2aCyFeyfugqOrOsxBMGreTjQ9ziLCZ4afk7DEQy8TPqFLti51///zCX+M3tv5qyIpbg8Qwkzcj5BDVUBRQNrakXsmt4L3BWp67gEGKLFvoGs836Yt4zEgLoLL9Kknl6EDHdYixZp3He2WIT3oof5ymn9voBuZy3GwuWEl709FXShtiiGzWB9ZZ140cD8apbML6FmFEPvTxrjqJ24dOZ4R0IaJ1+ZvD5lQtPqsCNwVr7/Tbawkk2Lh3RV7aN16GZlTgUx2xrmZk3iwB6on0/UONlnaonSTjSt3L2k/4KgI1qRqYeI5cJExy4KqfJqpZw0oI+RXmGOYL4PYPcnoiM9j8xEOr15AbD+Di4WMtsBiqc9aqyVYPZDUUeWqXp4tqv0799iCEGRUpk2WtjE6ojlN73R7SJFAmpnfF2NwYa5F75SKsDRFov3qOW78FZ166lbdgl7JP1At8TrCOQERuaIbWSN8nuLOYSFYWXwuh/b8Fc9gMQi1JK4+xJhvFhzryZMaYNmxyxinSPTIJOGExzmVgJSQOmrVm0e0KOad7Z7eL5Vi37CJe0rQfCQ+9TwOIel4v0A8XAILlH4oZts2RC4cknMDqRH/DF0vTRJ//SKA== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 6:T0MoHOhktsIww5R+11yc5wzCOeRXaHqL3E6GDZ9xrcSsZ4KNInnT4nATH+tbGRVlJC9qtv4UPNEEpD6vwlj/6WEErQsHmRrxbkDfVRq1EdZqimFHEfLJQwFon4Fk5eEtoYcdcFbmsThxFoX/9pKigtUy5/TCBT3RHIn2S6VvxZLD7apa8T8pYE3ZX61G547YHJ1VlHW6hkSJprs7Tyk67o9V+nvUyiIIAGwXq321R3oQifieb3QiBL3ciQeWl5dP8dZwh/sjIYpprNYyhABLx512pOmAACw5R08XFa8Ag8trbzf274snMv6otVTu2oyDFbJeN+QwifoHEmug9do4RJoO7DJ5tzpebF4llGRYDizZFD1RBNgigvaGtiHxkcv0AoW+AAPiLqE30SfzP9zmdCx50zEiXOTsScZEJxr39xAlsKZex70pFYkRnw2AVxbneLqptz0hvmPlQakwMq4c75m8/bqZWE3p3vvywe5ojpxE5VKGSTXhZeKxqUhQmFWmcpT3hPjho8B3PNyjBFZfBQ==; 5:wLZuWKrlpX9UDE+G0H1mgq8EHh6Z8tcligzGhXuni49ZXjbDlz0eoIXpGo0XMS1r4HBmjMpaAMliJEWbwT9jIqcN46BdSYJS7hE0tInue99ngse+a0+okA5rWpeMR5yULiroYon4yMHV/SIAwf+8fQ==; 24:tIH00X9/QitkUDcz0N2YLa9rO2znTrj4gpMjZNqO73Rag4KiEgt21wmFkgCc70E0MuhORVa89ifZHLItrT/nkMuliMpipCm+005Jw0IB1ck= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:dDd6qP3dN7NyCuMC01V3/H49MJuYeHe3VfXcHxEuo2oqBOEOFX8KzCCrv/TtUB4ycghHMj9MIDNL4yzuYxrWtgy9X4nETvUON9N630iJPCDq2Hrg1ndBFpHQdNv116hgeWYM7sr9uOziKmr8mRdV9bb4yWRZBU+zYbC29iJhv2EVteUkWXdqjChWLMXtYLYNcCvPgAt1ddAkZIUU8kjYNTMdQKry4C2V8n7WJXwo5tP98/AlJiRsmLI4duFrQtXP5SqzhFxubiVc+kQ1k2XL0QivZBkQaJIAjo+Icv5fGc8Ivl9Vep5SoSiJDyR7oP/ZIIq19TVShy+CipFzxsbdVw== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 12:22:57.4070 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: [dpdk-dev] [PATCH] ethdev: add lock-less txq capability flag 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" if this flag is advertised by a PMD, Multiple threads can invoke rte_eth_tx_burst() concurrently on the same tx queue without SW lock. This is an HW feature found in some NICs and useful in the following use cases if HW supports it. 1) Remove explicit spinlock in some application where cores to tx queues are not mapped 1:1. example: OVS has such instance https://github.com/openvswitch/ovs/blob/master/lib/netdev-dpdk.c#L292 https://github.com/openvswitch/ovs/blob/master/lib/netdev-dpdk.c#L1821 2) In eventdev use case, Avoid dedicating a separate tx core for transmit and thus enables more scaling as all workers can transmit the packets. Signed-off-by: Jerin Jacob --- lib/librte_ether/rte_ethdev.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index f9de9a2b6..696bc9d44 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -899,6 +899,10 @@ struct rte_eth_conf { #define DEV_TX_OFFLOAD_IPIP_TNL_TSO 0x00000800 /**< Used for tunneling packet. */ #define DEV_TX_OFFLOAD_GENEVE_TNL_TSO 0x00001000 /**< Used for tunneling packet. */ #define DEV_TX_OFFLOAD_MACSEC_INSERT 0x00002000 +#define DEV_TX_OFFLOAD_TXQ_MT_LOCKFREE 0x00004000 +/**< Multiple threads can invoke rte_eth_tx_burst() concurrently on the same + * tx queue without SW lock. + */ struct rte_pci_device;