From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
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 <dev@dpdk.org>; Sat,  5 Oct 2024 08:52:07 +0200 (CEST)
Received: by mail-qt1-f172.google.com with SMTP id
 d75a77b69052e-458311b338eso22192791cf.2
 for <dev@dpdk.org>; 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 <jerinjacobk@gmail.com>
Date: Sat, 5 Oct 2024 12:21:40 +0530
Message-ID: <CALBAE1NDwxxAtbtB_w_=qDz7zhnssO6XgLZV0nWBS_PjYUsKQA@mail.gmail.com>
Subject: Re: [PATCH v14 1/3] eventdev: add support for independent enqueue
To: Abdullah Sevincer <abdullah.sevincer@intel.com>
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 <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

On Fri, Oct 4, 2024 at 2:20=E2=80=AFAM Abdullah Sevincer
<abdullah.sevincer@intel.com> 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 <abdullah.sevincer@intel.com>
> Acked-by: Mattias R=C3=B6nnblom <mattias.ronnblom@ericsson.com>
> ---
>  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
>