From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0051.outbound.protection.outlook.com [104.47.2.51]) by dpdk.org (Postfix) with ESMTP id AEF3E1B608 for ; Wed, 4 Oct 2017 10:18:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=N3a1ipAyKkLWZM+KYaGvObJWPUnA1jHyNjeHQt2d9bU=; b=HhwfMY0WbK+oeKE2+5izT/rQLXplaLCYhh7skXrgqnw9kLkHPogXCQh6WAkQjnNkM09i50hOoL64vHs8kH6Zvc/7K9+wyOu88Q+0Bi8ZomEUZ5Fh/ha1ltV8EDBcn4kyNlQBi/554AMGclCo8AtjxR11Snf+79U8exnwYeeoLJI= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; Received: from mellanox.com (82.166.227.17) by VI1PR05MB3149.eurprd05.prod.outlook.com (2603:10a6:802:1b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Wed, 4 Oct 2017 08:18:15 +0000 From: Shahaf Shuler To: konstantin.ananyev@intel.com, thomas@monjalon.net, arybchenko@solarflare.com, jerin.jacob@caviumnetworks.com, ferruh.yigit@intel.com Cc: dev@dpdk.org Date: Wed, 4 Oct 2017 11:18:00 +0300 Message-Id: <0de5695efb315b3192382f843c3fc5cebed8c635.1507104596.git.shahafs@mellanox.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [82.166.227.17] X-ClientProxiedBy: VI1PR08CA0212.eurprd08.prod.outlook.com (2603:10a6:802:15::21) To VI1PR05MB3149.eurprd05.prod.outlook.com (2603:10a6:802:1b::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5836a97b-3a09-40cd-c62c-08d50b0076ae X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:VI1PR05MB3149; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB3149; 3:nI2sOYnneiPaeFl48muV50fF+MOy1HHkWQxP9dvQ2/oWW+5Oj5LoWL2CjB6Y+9ihY4WO049R+YNqOhYWPJYy3LE/fHpNJc/qw95LGp04okV+mB7TTEvy+diEYb/y4k9lnYXIs7O3+0PUyegPCFU7Mxfn92+LGjEJlJGKfu+ax7QxEWU+bx/oL9fv+uXiRAq+sN1XdMbBrS857jD5ysPRQamHF/+qPG7JICOSVGGxgABOtGWbHx0WVzPtxzvnnepC; 25:A9mKm/86U20q5xzJk2nCosZ0pzmmF5WrYhdHp7kiy+RRO7WTTjbBVuMAA/23Hs0Hx6Matsm/f9llkeYS6/oLWtJqd8677hpjhWNlLmUWZY2bTCtuA3MN0dxEBhGsmtDwujCGuBXuwql5woD4cF0fme25v5AesHORYzz2sPGPWwswbvjnY3Z4vfOcPZug5fXwCp2ppHO/vYljrs200aYWVtMqIajPoE1OqvpP6oZG9b+mUa0xDeZf/4mOVDqiCNQsUiaOD60RT9VxGqZG1m9UNu482j7l5MW86XGr1XKXOnjruKEgRAU7BTA29DaJT7Dp1tgMqttiTn4pj8VVvmvYOg==; 31:KMNT6BKpqYY/j6Fnt9+IC1xTOSa291HD22de4b73enj2NJgk/666voV9KcJ0sObyTHAIRjQ2OxJEqAqaCRGO3rqd2aTpMoONktbBcLXKEzfuFM2OFsNZtLawVr0Fj/OXJ0N2ghPzewxoRrmZl8jGWQWGDWCIp3n7RwLQNr2vMbdkt25PdIrmvvl83Fo3Iz4JIatf4e2J3XR+uCAVAIcW1V2uXNK/SY7sBUjACK57+20= X-MS-TrafficTypeDiagnostic: VI1PR05MB3149: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB3149; 20:syOSBkRG2kR7BIajRSyw08+zLLNkqnIZ59jCm2uCwJty/Q5KVWZ316NxxbSkb18cdtasSXxsJAX9ouHPaiRcx+0HbC/S4KnvjUL5hXKcCZQV/e46Tbp92QIVqKE/AhFz22hTHT56C+skxq0SWmfYpbimeuWN/kVrG/3bnny92CIp+QO0ZvtkcEuOunkbe9gsrodDeNEvXVewn+1kSkhY8cB/1x9VR0F4xhOcGxJsemDw0e1+fqjUzyjmn1hq3Jgli9VVrZtvqd9jlS/7jzRm4PoQ4gBvCkS84lIqgE9ow9upsmvT7OFX9Xnnx6XWLOy3Dv4f+w27/4tV3h+Jg9cbgTB6khT51x2wCYRQS+ttG9vbpP3ZKxwfRFAbxkf31r6svyYyqW44Ma8X6EParhQ2GRlBZWhrmL/lAFHMSMIYg2cFiyOJETHZFRMJ3WfjmXisQ4pbdbc6Jjx027fL5VMF863GWFg2Zs0Tp8/POTN7Gezd4oVEeElMPifXQVa8R9LP; 4:xVcQZLKzAiqvKDAgn2YGBuNEJ3YYuyqyFXAQrPOGfXF8wENIl4d23cfSz1d/fAZmIlwnkBvaFDQXKp2j4Pdoq1WPsB1q4QBbg/XvcJym0wCv3DjWoADeXnxGls5jbS8Wm+2ZjB/ULQCZi509TSoz640dyKvpn3gS4y0VfAMioYsrodtzAPhlaW7AcFB6LriOm0m5XcuMeuUgn0fk8S1qrRFbA1H3Eoq3wRjtpqAxvNl5ViZf3oCZ2Qr5zpdiSW9C X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123555025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:VI1PR05MB3149; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:VI1PR05MB3149; X-Forefront-PRVS: 0450A714CB X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(189002)(199003)(55016002)(105586002)(189998001)(21086003)(305945005)(8676002)(16586007)(106356001)(66066001)(25786009)(47776003)(33646002)(81166006)(8936002)(81156014)(16526018)(316002)(7736002)(86362001)(4326008)(53936002)(3846002)(50226002)(2950100002)(50466002)(97736004)(33026002)(6116002)(68736007)(48376002)(69596002)(5003940100001)(118296001)(5660300001)(36756003)(478600001)(6666003)(76176999)(50986999)(101416001)(2906002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB3149; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR05MB3149; 23:8oaLbgI+k2QQe3i8jWM03XRYi4DAgLJHvq1gtRjvO?= =?us-ascii?Q?16y1ZGM1q+5V3RZvOhvwP9UHhtOukqw7Jpp88Zv4uUkliaC3KPX7xLTD3qrT?= =?us-ascii?Q?i1vTgtcmGHxKJSshqXRZeOgBVv+6m55MP65vjHkTbQJDN2VDUjhr/4wsqjzr?= =?us-ascii?Q?oGjFD1M8GpjT7s1ft9L+4FYsK+xySB9XSuYf0L2kTuT2IVB5E0Bfpe14iWlX?= =?us-ascii?Q?pChc5w+PDVnDBnJtsQmuttMedUtMmgNaKax2CciNap3q0Li6qScKyk617hr4?= =?us-ascii?Q?9dRhDMYDODRbhBd31Pxh8tDqHjD15qh8P3gzNWS6H90XVsl89YyXEBgyhgZQ?= =?us-ascii?Q?bNOKuK26+qdkugUz3/OqoObRw+t+VYDZhDlj6WZfTqLwVLOSuPNdwUnilGOQ?= =?us-ascii?Q?aGna9eifdsgqCIPzXli4yJfULFIPjVOGzGy3Tz8wPLT1ODif5WL/8+Ct56j1?= =?us-ascii?Q?oVPzoSs9xYpYHhZ5ZPcSoA51itqpsYpQBpCWzEuHjFy7VMfDBa8YyxOuH4KU?= =?us-ascii?Q?KAweWHDvziPXVfD7Z8VDrJ20YQrbIPZ+1sGTGg68IecExqM9vmQrwir14QQk?= =?us-ascii?Q?a3Vi9q0znyfurh7m6sCC4WJL8H/euN/I7RpqpKzt+ajb+OQ8Pk4n3Rb8KirE?= =?us-ascii?Q?Ip76SrqP2LRUhCI7/SezkBbkm/LbXv4DSYYVKG/7YhLyGfazVxCYRupp43oc?= =?us-ascii?Q?kV4PyMiKiwzJn/qgkc6Gqh/9qSL4AHt8eF3xLbDNokxJfRyMiipvpBl+0I0+?= =?us-ascii?Q?DJkXGpBLKgyK5DqMzAWR0ImhMt0FRp/AslAe6SjRt3GY8XyjNnpWbw0tcdHc?= =?us-ascii?Q?LTG3dIbqIigwEd1Ur34dDCgpgfx8C5P/OpLMVzyV7NYSL7v6Y8q1NSiMFpF8?= =?us-ascii?Q?LHxNXJv3LgXzflMGS13Fu2w0KOx1PfaT9h4xNmK2rOGnoly56J5Jb9kf/Drj?= =?us-ascii?Q?uAuw9ZWU0PkXKUGDlzaL8DQfvOJ8/nVl1Hb4SFnu32LIm2UTX/ItsGj4URCj?= =?us-ascii?Q?9XjsM8AlKOXAfIUyC2Sdc3jUpZ9K888kfdrdBjwSN9InYfKWRG1X8yzNr50o?= =?us-ascii?Q?E6Sp4Yb2+sSYi4KG6io4l5n86MP+PiWzeNTd8Ecewq5ATptx2qLYx8HcLEcR?= =?us-ascii?Q?xtIvrZanDM=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB3149; 6:1TQFVq1YJkOTGda1wAkkPHABI/mBZgnE/y0NJtvt9F+sMMNsS7kQ5mx/51ENMe7Vs96/jWczQCsUTehxO9craEJcmPtORA93Osa6FyIh5lE2yb6hDp3x4JX/7itudXKXo0Mv2O1jQZ6yZIiL7v1wORU6NtoXaitbjHQ1JfmD9hoL/aRhbpOq84hJVNHl9+mtLqVHzFxJM2Fof5QelWO91s9Z9l8xkb1LP9YWkwzZJUaHIPPrl/SB4aMWQka5jH7Qx2/Kyv7ktDB22JPaSYs9Vw20NBS94M3ZZTdtDfS58T4lqKAY46rVAY1CXB9AmX3HIGMbdTFJ3kwPUvJMIo5I0Q==; 5:3SoHyGG0aslhVNLv06HvImVkJ0ZBHNGPUKQ/mI+ry/lGQQiUZTJ6Z2rO+8HrqbuKD/6ia83GRXsOnB+Ko/VlT2OEAnueu1NxDRy7xWsXGSyjo+azPdO1Kp8kS1EuNApbG5siJgvM45PtdtP7Foo+7w==; 24:L8QCbK7LYRX6ck1wEvjjH1eVE2AcdTN+IHo/B4iq14cj1Kw5K0XB/y1cfSiwsjjKexLsRkNOo1c5sMhTBkje5QP2vLPjhzaAjjB9Zikb+K8=; 7:DEsSVlqnqHPnmwOMsXSOS1ymFVdrrM4DKOEe7TBXy9/zrJaeeC3PI/XUmOXHW9Ee4ZC2kVx2+gwaLmxy86MZMi8+61SIVIPb+giRTWoM76b3+JMGz0uIIFPppTTvaIxYRWeJ8C/qP6E5zVFvkeZaTuhwciVTVx0gRdb8vG4YgGIhqOPK9A6cds2P3sGv4t3htpmlrZAsU1T7k37Kb5DbJdF9C2ZBuXZ5A09+YUTX0I0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2017 08:18:15.4363 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB3149 Subject: [dpdk-dev] [PATCH v6 3/4] ethdev: add mbuf fast free Tx offload 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, 04 Oct 2017 08:18:18 -0000 PMDs which expose this offload cap supports optimization for fast release of mbufs following successful Tx. Such optimization requires that per queue, all mbufs come from the same mempool and has refcnt = 1. Signed-off-by: Shahaf Shuler --- doc/guides/nics/features.rst | 9 +++++++++ doc/guides/nics/features/default.ini | 1 + lib/librte_ether/rte_ethdev.c | 5 +++++ lib/librte_ether/rte_ethdev.h | 5 +++++ 4 files changed, 20 insertions(+) diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index 17745dace..6538470ac 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -628,6 +628,15 @@ Supports packet type parsing and returns a list of supported types. .. _nic_features_timesync: +Mbuf fast free +-------------- + +Supports optimization for fast release of mbufs following successful Tx. +Requires that per queue, all mbufs come from the same mempool and has refcnt = 1. + +* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_MBUF_FAST_FREE``. +* **[provides] rte_eth_dev_info**: ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_MBUF_FAST_FREE``. + Timesync -------- diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini index 542430696..9a5990195 100644 --- a/doc/guides/nics/features/default.ini +++ b/doc/guides/nics/features/default.ini @@ -75,3 +75,4 @@ x86-64 = Usage doc = Design doc = Perf doc = +Mbuf fast free = diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 856a54a8e..59756dd82 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -1232,6 +1232,9 @@ rte_eth_convert_txq_flags(const uint32_t txq_flags, uint64_t *tx_offloads) offloads |= DEV_TX_OFFLOAD_UDP_CKSUM; if (!(txq_flags & ETH_TXQ_FLAGS_NOXSUMTCP)) offloads |= DEV_TX_OFFLOAD_TCP_CKSUM; + if ((txq_flags & ETH_TXQ_FLAGS_NOREFCOUNT) && + (txq_flags & ETH_TXQ_FLAGS_NOMULTMEMP)) + offloads |= DEV_TX_OFFLOAD_MBUF_FAST_FREE; *tx_offloads = offloads; } @@ -1254,6 +1257,8 @@ rte_eth_convert_txq_offloads(const uint64_t tx_offloads, uint32_t *txq_flags) flags |= ETH_TXQ_FLAGS_NOXSUMUDP; if (!(tx_offloads & DEV_TX_OFFLOAD_TCP_CKSUM)) flags |= ETH_TXQ_FLAGS_NOXSUMTCP; + if (tx_offloads & DEV_TX_OFFLOAD_MBUF_FAST_FREE) + flags |= (ETH_TXQ_FLAGS_NOREFCOUNT | ETH_TXQ_FLAGS_NOMULTMEMP); *txq_flags = flags; } diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index da91f8740..78de045ed 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -991,6 +991,11 @@ struct rte_eth_conf { */ #define DEV_TX_OFFLOAD_MULTI_SEGS 0x00008000 /**< Device supports multi segment send. */ +#define DEV_TX_OFFLOAD_MBUF_FAST_FREE 0x00010000 +/**< Device supports optimization for fast release of mbufs. + * When set application must guarantee that per-queue all mbufs comes from + * the same mempool and has refcnt = 1. + */ struct rte_pci_device; -- 2.12.0