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 C45114546F; Mon, 1 Jul 2024 10:24:12 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7586040A76; Mon, 1 Jul 2024 10:24:12 +0200 (CEST) Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) by mails.dpdk.org (Postfix) with ESMTP id A0C3D4025D for ; Mon, 1 Jul 2024 10:24:10 +0200 (CEST) Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id CCAAF197E0 for ; Mon, 1 Jul 2024 10:24:09 +0200 (CEST) Received: by mail.lysator.liu.se (Postfix, from userid 1004) id C163C197DF; Mon, 1 Jul 2024 10:24:09 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on hermod.lysator.liu.se X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=ALL_TRUSTED,AWL, T_SCC_BODY_TEXT_LINE autolearn=disabled version=4.0.0 X-Spam-Score: -1.3 Received: from [192.168.1.59] (h-62-63-215-114.A163.priv.bahnhof.se [62.63.215.114]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id 1531C19777; Mon, 1 Jul 2024 10:24:07 +0200 (CEST) Message-ID: Date: Mon, 1 Jul 2024 10:24:07 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 2/2] eventdev: add support for enqueue reorder To: Abdullah Sevincer , dev@dpdk.org Cc: jerinj@marvell.com, bruce.richardson@intel.com, pravin.pathak@intel.com, mattias.ronnblom@ericsson.com, manish.aggarwal@intel.com References: <20240621201248.504989-2-abdullah.sevincer@intel.com> <20240621222408.583464-1-abdullah.sevincer@intel.com> <20240621222408.583464-3-abdullah.sevincer@intel.com> Content-Language: en-US From: =?UTF-8?Q?Mattias_R=C3=B6nnblom?= In-Reply-To: <20240621222408.583464-3-abdullah.sevincer@intel.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP 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 On 2024-06-22 00:24, Abdullah Sevincer wrote: > This commit adds support flag to enable enqueue reorder > feature. > "Enqueue reorder" is how this feature is implemented (on DLB2), but it's not a good description of what it does (or, allows for). I've called this feature "independent enqueue" in the past. I have a vague memory of someone from Intel calling it something else ("out-of-order enqueue" maybe?), but I can't seem to be able to find that e-mail. > When this flag is enabled in the port configuration PMD > restores dequeue order on enqueue if applications happen to > change it. > If this feature is enabled, the application is free to enqueue events in any order, while still maintaining ordered/atomic semantics. That's how I would characterize it. You may also want to note that the DPDK dispatcher library depends on this flag to function properly on burst-capable event devices. This patch set should also include a patch to DSW, where it advertises this capability. Ideally, you should also include a patch to the dispatcher library, which checks for this flag on RTE_EVENT_DEV_CAP_BURST_MODE event devices. > Signed-off-by: Abdullah Sevincer > --- > lib/eventdev/rte_eventdev.h | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h > index 08e5f9320b..f4220dd5dc 100644 > --- a/lib/eventdev/rte_eventdev.h > +++ b/lib/eventdev/rte_eventdev.h > @@ -1073,6 +1073,14 @@ rte_event_queue_attr_set(uint8_t dev_id, uint8_t queue_id, uint32_t attr_id, > * @see rte_event_port_setup() > */ > > +#define RTE_EVENT_PORT_CFG_RESTORE_DEQ_ORDER (1ULL << 5) > +/**< Flag to enable feature enqueue reordering to dequeue. > + * The feature restores dequeue order on enqueue if applications > + * happen to change the order. > + * > + * @see rte_event_port_setup() > + */ > + > /** Event port configuration structure */ > struct rte_event_port_conf { > int32_t new_event_threshold;