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 0BEC646A98; Mon, 30 Jun 2025 13:17:11 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F066440264; Mon, 30 Jun 2025 13:17:10 +0200 (CEST) Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) by mails.dpdk.org (Postfix) with ESMTP id 19B8440264 for ; Mon, 30 Jun 2025 13:17:09 +0200 (CEST) Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id 8E2BE1A1DA for ; Mon, 30 Jun 2025 13:17:08 +0200 (CEST) Received: by mail.lysator.liu.se (Postfix, from userid 1004) id 7FB031A290; Mon, 30 Jun 2025 13:17:08 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on hermod.lysator.liu.se X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=disabled version=4.0.1 X-Spam-Score: -1.0 Received: from [192.168.1.85] (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 ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id F18781A17A; Mon, 30 Jun 2025 13:17:04 +0200 (CEST) Message-ID: Date: Mon, 30 Jun 2025 13:17:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1] event/dlb2: add dequeue interrupt mode support To: Jerin Jacob , Pravin Pathak Cc: dev@dpdk.org, jerinj@marvell.com, mike.ximing.chen@intel.com, bruce.richardson@intel.com, thomas@monjalon.net, david.marchand@redhat.com, nipun.gupta@amd.com, chenbox@nvidia.com, tirthendu.sarkar@intel.com, Pavan Nikhilesh , Shijith Thotton , Hemant Agrawal , Sachin Saxena , harry.chang@intel.com, =?UTF-8?Q?Mattias_R=C3=B6nnblom?= References: <20250628045112.655999-1-pravin.pathak@intel.com> Content-Language: en-US From: =?UTF-8?Q?Mattias_R=C3=B6nnblom?= In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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 2025-06-30 11:19, Jerin Jacob wrote: > On Sat, Jun 28, 2025 at 11:17 AM Pravin Pathak wrote: >> >> DLB2 port interrupt is implemented using DPDK interrupt >> framework. This allows eventdev dequeue API to sleep when >> the port queue is empty and gets wakeup when event arrives >> at the port. Port dequeue mode is configured using devargs >> argument port_dequeue_wait. Supported modes are polling and >> interrupt. Default mode is polling. >> This commit also adds code to handle device error interrupts >> and print alarm details. >> >> Signed-off-by: Pravin Pathak >> Signed-off-by: Tirthendu Sarkar >> --- >> doc/guides/eventdevs/dlb2.rst | 20 + >> drivers/event/dlb2/dlb2.c | 236 +++++- >> drivers/event/dlb2/dlb2_iface.c | 7 + >> drivers/event/dlb2/dlb2_iface.h | 8 + >> drivers/event/dlb2/dlb2_priv.h | 18 + >> drivers/event/dlb2/dlb2_user.h | 112 +++ >> drivers/event/dlb2/pf/base/dlb2_hw_types.h | 70 ++ >> drivers/event/dlb2/pf/base/dlb2_osdep.h | 46 ++ >> drivers/event/dlb2/pf/base/dlb2_regs.h | 149 +++- >> drivers/event/dlb2/pf/base/dlb2_resource.c | 825 +++++++++++++++++++++ >> drivers/event/dlb2/pf/base/dlb2_resource.h | 6 + >> drivers/event/dlb2/pf/dlb2_pf.c | 223 ++++++ >> 12 files changed, 1711 insertions(+), 9 deletions(-) >> >> diff --git a/doc/guides/eventdevs/dlb2.rst b/doc/guides/eventdevs/dlb2.rst >> index 8ec7168f20..a4ba857351 100644 >> --- a/doc/guides/eventdevs/dlb2.rst >> +++ b/doc/guides/eventdevs/dlb2.rst >> @@ -477,6 +477,26 @@ Example command to use as meson option for credit handling: >> >> meson configure -Dc_args='-DDLB_SW_CREDITS_CHECKS=0 -DDLB_HW_CREDITS_CHECKS=1' >> >> +Interrupt Mode Support >> +~~~~~~~~~~~~~~~~~~~~~~ >> +DLB dequeue supports interrupt mode for the API rte_event_dequeue_burst(). >> +The default port dequeue mode is polling. Dequeue wait mode can be configured >> +on per eventdev port basis using devargs argument 'port_dequeue_wait'. In >> +interrupt mode, if the port queue is empty, the application thread will block >> +on the interrupt until a new event arrives. It enters blocking mode only after >> +any specified timeout. During the timeout, it will poll the port queue for >> +events as usual. Interrupt mode uses the DPDK interrupt support framework. >> + >> + .. code-block:: console >> + >> + --allow ea:00.0,port_dequeue_wait=all:interrupt > > Adding other eventdev PMD mainatainers. > > Looks like it can be a generic feature. i.e set this option is dev_configure() > If there is no objection, Please send a new patch around that. I've considered implementing this in DSW, although in a different manner (with eventfds and poll()). The dequeue timeout will still be honored in "interrupt mode", correct? It wasn't obvious from the description. What's being configured should just be a threshold time at which the event device would go from busy-polling to blocking the thread. Maybe it should be called something with "blocking" or "sleeping", instead of "interrupt", since interrupts are never directly involved. Anyway, seems like a good candidate for a generic feature to me.