From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5D1E743B33; Wed, 14 Feb 2024 15:42:29 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 24C5D4026A; Wed, 14 Feb 2024 15:42:29 +0100 (CET) Received: from wfout8-smtp.messagingengine.com (wfout8-smtp.messagingengine.com [64.147.123.151]) by mails.dpdk.org (Postfix) with ESMTP id 28F9D40263 for ; Wed, 14 Feb 2024 15:42:27 +0100 (CET) Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfout.west.internal (Postfix) with ESMTP id 5A8161C00086; Wed, 14 Feb 2024 09:42:25 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Wed, 14 Feb 2024 09:42:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1707921744; x=1708008144; bh=abbxVxBq0iBpLxLr4V3grNukTKBPx7hn6LBOlEZhmwU=; b= rMcavlKLVUIN+2MOMqYdD3p957MAJM9xt2bSFaXjsNVPcNR3K0V7DxOML2EAPLDw m7gP8ga0A1dcn3HHTML1x6H62Yp2V4/PVfcxofzpYTejLc6zG7rQf4ecNilQRqfK KWoLZrejHJdx15bUPTms2CMTRjNn41jL7l9eQiMkt5NNv3J58+OBKBRYwGvOwoq5 ZmVZ33FQAo8CdAqlUvxOT7+sJq+K0D7QEAySB1pGpocDkCQVMXjXKpofRtFKhohK j30WT1AEQkRvuZV8oghXeidBb7AuVqJz1U9M/ohxGFzp6EGxCPjkmdIIc6ol5ivu lGlTrRe8sdZE3P0Hay9ZlQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1707921744; x= 1708008144; bh=abbxVxBq0iBpLxLr4V3grNukTKBPx7hn6LBOlEZhmwU=; b=R LlfFtSy6FXqWTHSkd25fl55Xg8k/8NJzDAMvhus6BeYBrY6Mtl6qZRI4IHNM6fb+ Ur8OMiYUh7e6lfugVN2jf+BWclFOe0FEuusOlLgE9GMCJiiTjk3ThLmnUtuj7B4d GtsfBUSXxb40HbVC6XtTBP279Wh+tr+xe7pljRqmk0bkWXSGLUIp+8TebQoo0XsB /b4A9ueFW71D7/NjBcAqNa1NZd7qjC/N64zEfTrqIuW9Q1HkDErGMfqluEJM4tlU QaWKaphAcBdywZ1v9rt9f1QZG8yqxpMflUn4SNxqDX3w8vkBNMPMXKzrnHFLVZuz qW+iPKZrcNHBeeDXVhpDw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudejgdeikecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvfevufffkfgjfhgggfgtsehtufertddttddvnecuhfhrohhmpefvhhhomhgr shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecugg ftrfgrthhtvghrnheptdejieeifeehtdffgfdvleetueeffeehueejgfeuteeftddtieek gfekudehtdfgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvth X-ME-Proxy: Feedback-ID: i47234305:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 14 Feb 2024 09:42:23 -0500 (EST) From: Thomas Monjalon To: Gregory Etelson Cc: dev@dpdk.org, mkashani@nvidia.com, Ori Kam , Ferruh Yigit , Aman Singh , Yuying Zhang , Andrew Rybchenko Subject: Re: [PATCH v7] ethdev: add template table resize API Date: Wed, 14 Feb 2024 15:42:21 +0100 Message-ID: <3943481.NG923GbCHz@thomas> In-Reply-To: <20240214143218.62630-1-getelson@nvidia.com> References: <20231217093205.321082-1-getelson@nvidia.com> <20240214143218.62630-1-getelson@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 14/02/2024 15:32, Gregory Etelson: > +The resizable template table API enables applications to dynamically adjust > +capacity of template tables without disrupting the existing flow rules > +operation. The resizable template table API allows applications to optimize the > +memory usage and performance of template tables according to the traffic > +conditions and requirements. > + > +A typical use case for the resizable template table API: > + > + #. Create a resizable table with the initial capacity. > + #. Change the table flow rules capacity. > + #. Update table flow objects. > + #. Complete the table resize. > + > +A resizable table can be either in normal or resizable state. > +When application begins to resize the table, its state is changed to resizable. > +The table stays in resizable state until the application finishes resize > +procedure. > +The application can resize a table in the normal state only. > + > +The application needs to set the ``RTE_FLOW_TABLE_SPECIALIZE_RESIZABLE`` bit in > +the table attributes when creating a template table that can be resized, > +and the bit cannot be set or cleared later. > + > +The application triggers the table resize by calling > +the ``rte_flow_template_table_resize()`` function. The resize process updates > +the table configuration to fit the new flow rules capacity. > +Table resize does not change existing flow objects configuration. > +The application can create new flow rules and modify or delete existing flow > +rules while the table is resizing, but the table performance might be > +slower than usual. > + > +Flow rules that existed before table resize are fully functional after > +table resize. However, the application must update flow objects to match > +the new table configuration. > +The application calls ``rte_flow_async_update_resized()`` to update flow object > +for the new table configuration. > +All table flow rules must be updated. > + > +The application calls ``rte_flow_template_table_resize_complete()`` to return a > +table to normal state after it completed flow objects update. [...] > + * Update flow for the new template table configuration after table resize. > + * Must be called for each *rule* created before and after *table* resize. > + * Must be called before rte_flow_template_table_resize_complete(). That's a clear explanation. Acked-by: Thomas Monjalon