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 717A3A034F; Mon, 22 Feb 2021 16:28:25 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2291240FDF; Mon, 22 Feb 2021 16:28:24 +0100 (CET) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by mails.dpdk.org (Postfix) with ESMTP id B4A4E4003C for ; Mon, 22 Feb 2021 16:28:23 +0100 (CET) Received: by mail-wm1-f42.google.com with SMTP id l13so5202443wmg.5 for ; Mon, 22 Feb 2021 07:28:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-transfer-encoding:user-agent:mime-version; bh=DDrjCb0zwe0Sa7slpy/qQxUKbTMQgFigzUiqpsFxbaA=; b=VVkVOBeuPkWxEej88+DKmk6hipk+8u5QF8CaOZ+ZvPqdN8O/KcmTVdLQcNKmw5qz11 q1pEV+7JIzGEePr1LRx7RGImJ6GvcBuZkDllGJyDDZcqWWMZEsBIFWQRMh9oAdWZn0KC BSwlFux/BndhTA+8yaOh/37LrwYs1YzxFp6Vf6xeSZ92wApXGhdqrl+DI0PzTpi6aYXk y4PzE4YB5u9I0ie1mULIrEwwkDpDMrGuWYVFp+xTuR60/4uFWnXtEgJCtBvKkfWNUSiN 2gfF2bXEmESFFKINRtS2wjKaYHsqmXWAp+5tuhZd8XHJE0VPEFWi1rgIfs78OuHDjcCQ JYpQ== X-Gm-Message-State: AOAM5306XKMOqiNhRx31PBdG6vv68kwXi2qr2AVV8yAzRK2g8DFnwe9W TF4LBvUMYSRDB9w0FYME5IA= X-Google-Smtp-Source: ABdhPJzqGXmuaBlQ8CxfEfVv5BHxvo73j8DbIsEYPzqvy1F6qGEPgeN7suHxCVl7Mb+HpmW1+rm36Q== X-Received: by 2002:a05:600c:1149:: with SMTP id z9mr2518511wmz.28.1614007703542; Mon, 22 Feb 2021 07:28:23 -0800 (PST) Received: from localhost ([2a01:4b00:f419:6f00:7a8e:ed70:5c52:ea3]) by smtp.gmail.com with ESMTPSA id w13sm27857208wrt.49.2021.02.22.07.28.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Feb 2021 07:28:23 -0800 (PST) Message-ID: <095a611c0e90ec7b5f36847a7bd2366a28e155c0.camel@debian.org> From: Luca Boccassi To: Mattias =?ISO-8859-1?Q?R=F6nnblom?= , jerinj@marvell.com Cc: dev@dpdk.org, bruce.richardson@intel.com Date: Mon, 22 Feb 2021 15:28:22 +0000 In-Reply-To: <20210218183011.254447-1-mattias.ronnblom@ericsson.com> References: <20210218183011.254447-1-mattias.ronnblom@ericsson.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.30.5-1.2 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC] eventdev: introduce event dispatcher 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 Sender: "dev" On Thu, 2021-02-18 at 19:30 +0100, Mattias R=C3=B6nnblom wrote: > The purpose of the event dispatcher is primarily to decouple different > parts of an application (e.g., processing pipeline stages), which > share the same underlying event device. >=20 > The event dispatcher replaces the conditional logic (often, a switch > statement) that typically follows an event device dequeue operation, > where events are dispatched to different parts of the application > based on the destination queue id. >=20 > The concept is similar to a UNIX file descriptor event loop library. > Instead of tying callback functions to fds as for example libevent > does, the event dispatcher binds callbacks to queue ids. >=20 > An event dispatcher is configured to dequeue events from a specific > event device, and ties into the service core framework, to do its (and > the application's) work. >=20 > The event dispatcher provides a convenient way for an eventdev-based > application to use service cores for application-level processing, and > thus for sharing those cores with other DPDK services. >=20 > Signed-off-by: Mattias R=C3=B6nnblom > --- > lib/librte_eventdev/Makefile | 2 + > lib/librte_eventdev/meson.build | 6 +- > lib/librte_eventdev/rte_event_dispatcher.c | 420 +++++++++++++++++++ > lib/librte_eventdev/rte_event_dispatcher.h | 251 +++++++++++ > lib/librte_eventdev/rte_eventdev_version.map | 10 + > 5 files changed, 687 insertions(+), 2 deletions(-) > create mode 100644 lib/librte_eventdev/rte_event_dispatcher.c > create mode 100644 lib/librte_eventdev/rte_event_dispatcher.h Hi, Is this intended to be used by applications or by PMDs? If the former, then IMHO the interface should really be based around (or allow using) FDs, so that it can be polled. Applications normally have more event sources that just DPDK. --=20 Kind regards, Luca Boccassi