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 8882D45AB8; Sat, 5 Oct 2024 08:52:09 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1F9D3402E6; Sat, 5 Oct 2024 08:52:09 +0200 (CEST) Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by mails.dpdk.org (Postfix) with ESMTP id 62C154028C for ; Sat, 5 Oct 2024 08:52:07 +0200 (CEST) Received: by mail-qt1-f172.google.com with SMTP id d75a77b69052e-458311b338eso22192791cf.2 for ; Fri, 04 Oct 2024 23:52:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1728111126; x=1728715926; darn=dpdk.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=BJIapvo/fpJTWNuycD2v3QUoiFsdS8RN8IUdsN/sIr0=; b=EWHSQaLKMuS30yN6O67VicjNHohpYi+zzLfOUPtsTj15Ivq0n5y1SVbq++ltFQIpGC FdjofhAKoVKKGHuS857evJZbSInjbcZJN3BxBOLs8vp1pX4CTgy6nRkhIzR424204K60 Z3Jklcswfw7ojWjehgsE9zzLg5unDpurAuilNXfWOoKcqC0SSZfglCrRx73mQJdf0DbZ OlL+0y98AdgP6haeni9XWFvEuH/q39KGIGJyE/Ajl5Nn6xN+bRPUJwbRbxoq6Nq26Aku fsp05oyOnmjbkL1lqqB/D2mCqW+TiCTmMze7bAugcX7d3ILBnoG9qI/Bm8AwPzo4IVtq KJ6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728111126; x=1728715926; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BJIapvo/fpJTWNuycD2v3QUoiFsdS8RN8IUdsN/sIr0=; b=eNoiIXIMIDtycBwpq3apbISKiacC62FKDSXCVsQ8nYcPBjRg4bAWUuBBoOPyy1dbF9 JdU1fKp3H3e0tKaUD6+UN3/PgIc8GQVPKJiWm8OmB3PQsWg9QrdRyYCPwHoRyrbNRVnU h5QMSyBG+jfbYt128MMPqHDXDtPdOI7ASXJZvnhBzTPxq64pcP3g+ePjKLVN0gSE7Rlu XULWVTfbvQHCcFxE+gunR+yIJ/KARBLTKlGRurSNtTGUDQNvYYH/f/uYXLioju+lEQTK Q0t505bIon011jyQ6mXefi7c3r2qoAmHEBfFEYRYeqqVvb7LeEv9yJbCOoVylwi5FOlR r4GA== X-Gm-Message-State: AOJu0YycKocF4SSCn+TEiG1imc8uQot1ld01NSODSKsdOEt/y1DdVdMC 81eMrPHOeio9ZfHyHqIpcrZ2wA1UkzJzOHmMv6Yldv8hxuJiZt1BfzTBaXLePyk/29/nfeDzuMF XA42lmIc1M3P01qT+nKcJsOOUKOM= X-Google-Smtp-Source: AGHT+IFt4+sSmECrECuLUpgVLlxP3+9UGo8yBGfUYiK8nBLQNJUYjOXA6mUfVUyrZWGUk0kvtmVvG/vUvM4U8kNHlto= X-Received: by 2002:a05:622a:1313:b0:458:3fec:e743 with SMTP id d75a77b69052e-45d9babe0b4mr70586461cf.47.1728111126580; Fri, 04 Oct 2024 23:52:06 -0700 (PDT) MIME-Version: 1.0 References: <20240909160506.2655354-3-abdullah.sevincer@intel.com> <20241003205002.4090954-1-abdullah.sevincer@intel.com> <20241003205002.4090954-2-abdullah.sevincer@intel.com> In-Reply-To: <20241003205002.4090954-2-abdullah.sevincer@intel.com> From: Jerin Jacob Date: Sat, 5 Oct 2024 12:21:40 +0530 Message-ID: Subject: Re: [PATCH v14 1/3] eventdev: add support for independent enqueue To: Abdullah Sevincer Cc: dev@dpdk.org, jerinj@marvell.com, bruce.richardson@intel.com, pravin.pathak@intel.com, mattias.ronnblom@ericsson.com, manish.aggarwal@intel.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 Fri, Oct 4, 2024 at 2:20=E2=80=AFAM Abdullah Sevincer wrote: > > This commit adds support for independent enqueue feature Remove "This commit adds" > and updates Event Device and PMD feature list. > > A new capability RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ is introduced. It > allows out-of-order enqueuing of RTE_EVENT_OP_FORWARD or RELEASE type > events on an event port where this capability is enabled. > > To use this capability applications need to set flag > RTE_EVENT_PORT_CFG_INDEPENDENT_ENQ during port setup only if the > capability RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ exists. > > Signed-off-by: Abdullah Sevincer > Acked-by: Mattias R=C3=B6nnblom > --- > doc/guides/eventdevs/features/default.ini | 1 + > doc/guides/eventdevs/features/dlb2.ini | 1 + > doc/guides/rel_notes/release_24_11.rst | 5 +++ > lib/eventdev/rte_eventdev.h | 37 +++++++++++++++++++++++ > 4 files changed, 44 insertions(+) > > diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/event= devs/features/default.ini > index 1cc4303fe5..7c4ee99238 100644 > --- a/doc/guides/eventdevs/features/default.ini > +++ b/doc/guides/eventdevs/features/default.ini > @@ -22,6 +22,7 @@ carry_flow_id =3D > maintenance_free =3D > runtime_queue_attr =3D > profile_links =3D > +independent_enq =3D > > ; > ; Features of a default Ethernet Rx adapter. > diff --git a/doc/guides/eventdevs/features/dlb2.ini b/doc/guides/eventdev= s/features/dlb2.ini > index 7b80286927..c7193b47c1 100644 > --- a/doc/guides/eventdevs/features/dlb2.ini > +++ b/doc/guides/eventdevs/features/dlb2.ini > @@ -15,6 +15,7 @@ implicit_release_disable =3D Y > runtime_port_link =3D Y > multiple_queue_port =3D Y > maintenance_free =3D Y > +independent_enq =3D Y > > [Eth Rx adapter Features] > > diff --git a/doc/guides/rel_notes/release_24_11.rst b/doc/guides/rel_note= s/release_24_11.rst > index e0a9aa55a1..dee6723b70 100644 > --- a/doc/guides/rel_notes/release_24_11.rst > +++ b/doc/guides/rel_notes/release_24_11.rst > @@ -67,6 +67,11 @@ New Features > > The new statistics are useful for debugging and profiling. > > +* **Updated Event Device Library for independent enqueue feature** > + > + * Added support for independent enqueue feature. Updated Event Device = and > + PMD feature list. No need to add "Updated Event Device and PMD feature list." Instead, very short summary of features can be added here. > + > > Removed Items > ------------- > diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h > index 08e5f9320b..3e3142d4a6 100644 > --- a/lib/eventdev/rte_eventdev.h > +++ b/lib/eventdev/rte_eventdev.h > @@ -446,6 +446,31 @@ struct rte_event; > * @see RTE_SCHED_TYPE_PARALLEL > */ > > +#define RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ (1ULL << 16) > +/**< Event device is capable of independent enqueue. > + * A new capability, RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ, will indicate th= at Eventdev > + * supports the enqueue in any order or specifically in a different orde= r than the > + * dequeue. Eventdev PMD can either transmit events in the changed order= in which > + * they are enqueued or restore the original order before sending them t= o the > + * underlying hardware device. A flag is provided during the port config= uration to > + * inform Eventdev PMD that the application intends to use an independen= t enqueue > + * order on a particular port. Note that this capability only matters fo= r Eventdevs > + * supporting burst mode. > + * ----------- see below--- > + * To Inform PMD that the application plans to use independent enqueue o= rder on a port > + * this code example can be used: > + * > + * if (capability & RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ) > + * port_config =3D port_config | RTE_EVENT_PORT_CFG_INDEPENDENT_ENQ; -------------------------- Above section, please move to programming guide, no need to add code in Doxygen comments. > + * > + * When an implicit release is enabled on a port, Eventdev PMD will also= handle > + * the insertion of RELEASE events in place of dropped events. The indep= endent enqueue > + * feature only applies to FORWARD and RELEASE events. New events (op=3D= RTE_EVENT_OP_NEW) > + * will be transmitted in the order the application enqueues them and do= not maintain transmitted -> dequeded? > + * any order relative to FORWARD/RELEASE events. FORWARD vs NEW relaxed = ordering > + * only applies to ports that have enabled independent enqueue feature. > + */ > + > /* Event device priority levels */ > #define RTE_EVENT_DEV_PRIORITY_HIGHEST 0 > /**< Highest priority level for events and queues. > @@ -1072,6 +1097,18 @@ rte_event_queue_attr_set(uint8_t dev_id, uint8_t q= ueue_id, uint32_t attr_id, > * > * @see rte_event_port_setup() > */ > +#define RTE_EVENT_PORT_CFG_INDEPENDENT_ENQ (1ULL << 5) > +/**< Flag to enable independent enqueue. Must not be set if the device > + * is not RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ capable. This feature > + * allows an application to enqueue RTE_EVENT_OP_FORWARD or > + * RTE_EVENT_OP_RELEASE in an order different than the order the > + * events were dequeued from the event device, while maintaining > + * RTE_SCHED_TYPE_ATOMIC or RTE_SCHED_TYPE_ORDERED semantics. > + * > + * Note that this flag only matters for Eventdevs supporting burst mode. > + * > + * @see rte_event_port_setup() > + */ > > /** Event port configuration structure */ > struct rte_event_port_conf { > -- > 2.25.1 >