Show a cover letter.

GET /api/covers/128453/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 128453,
    "url": "http://patchwork.dpdk.org/api/covers/128453/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/20230609070826.149336-1-mattias.ronnblom@ericsson.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230609070826.149336-1-mattias.ronnblom@ericsson.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230609070826.149336-1-mattias.ronnblom@ericsson.com",
    "date": "2023-06-09T07:08:23",
    "name": "[RFC,v4,0/3] Add event dispatcher",
    "submitter": {
        "id": 1077,
        "url": "http://patchwork.dpdk.org/api/people/1077/?format=api",
        "name": "Mattias Rönnblom",
        "email": "mattias.ronnblom@ericsson.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/cover/20230609070826.149336-1-mattias.ronnblom@ericsson.com/mbox/",
    "series": [
        {
            "id": 28430,
            "url": "http://patchwork.dpdk.org/api/series/28430/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=28430",
            "date": "2023-06-09T07:08:23",
            "name": "Add event dispatcher",
            "version": 4,
            "mbox": "http://patchwork.dpdk.org/series/28430/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/128453/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id A8A2642C6A;\n\tFri,  9 Jun 2023 09:15:08 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 89D1040EDB;\n\tFri,  9 Jun 2023 09:15:08 +0200 (CEST)",
            "from EUR05-DB8-obe.outbound.protection.outlook.com\n (mail-db8eur05on2070.outbound.protection.outlook.com [40.107.20.70])\n by mails.dpdk.org (Postfix) with ESMTP id 2FC4F40A84\n for <dev@dpdk.org>; Fri,  9 Jun 2023 09:15:07 +0200 (CEST)",
            "from FR0P281CA0062.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::23)\n by DB8PR07MB6315.eurprd07.prod.outlook.com (2603:10a6:10:141::16) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.38; Fri, 9 Jun\n 2023 07:15:05 +0000",
            "from VI1EUR02FT007.eop-EUR02.prod.protection.outlook.com\n (2603:10a6:d10:49:cafe::61) by FR0P281CA0062.outlook.office365.com\n (2603:10a6:d10:49::23) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.14 via Frontend\n Transport; Fri, 9 Jun 2023 07:15:04 +0000",
            "from oa.msg.ericsson.com (192.176.1.74) by\n VI1EUR02FT007.mail.protection.outlook.com (10.13.60.159) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id\n 15.20.6477.26 via Frontend Transport; Fri, 9 Jun 2023 07:15:05 +0000",
            "from ESESBMB504.ericsson.se (153.88.183.171) by\n ESESSMB501.ericsson.se (153.88.183.162) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n 15.1.2507.23; Fri, 9 Jun 2023 09:15:04 +0200",
            "from seliicinfr00050.seli.gic.ericsson.se (153.88.183.153) by\n smtp.internal.ericsson.com (153.88.183.187) with Microsoft SMTP Server id\n 15.1.2507.23 via Frontend Transport; Fri, 9 Jun 2023 09:15:04 +0200",
            "from breslau.. (seliicwb00002.seli.gic.ericsson.se [10.156.25.100])\n by seliicinfr00050.seli.gic.ericsson.se (Postfix) with ESMTP id\n CB1A91C006A; Fri,  9 Jun 2023 09:15:04 +0200 (CEST)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=maBCfkCok2xtoqfJ/pAdxGhLlAdkjDR1UM3FiRMJdnK9CpC5iTdlpKfvtMbWPqJoZH4KQiLhfjYA9BpDsqupJY0+wBevUewAHLCMQKJ/LhAEFyuwXyJD1iVkTsyb542yIArvlg5GuKkg1uHIet95Zcg//J7mpQLJXn7NcIp7ofKSGgBuHfUCwh5DSeZVfEJh81zkjOH0XQPVFxeVI1Sl9reTdAzleACFrSHWxHYWEFHA87UgPyWhRs9xOjEQEaIRPWpnROfB8scXBUQEjbMm2t2MkO+ctAOSPtgq1TuvptsgGiJrwSIGm4XV1QpWNUB1FGngAlCFc9mhQFJUZlJC8g==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=uAkeaRIcT+HULz2cG/yzM3HEIL6PsPPh7TvKLMe/dGY=;\n b=A+85CNLLvVHsnVYE7+tqTxhTuWZfzeaNgfCRQREr0LYX/2iGX9/UgGXE1SlqE8lfKck0scGgTgiMK2znMr97zOiEYkuGqNqhy2WtQUOHyexHk+FoFmehCA3ms2cMGAkViFDC2GMTwC1oTn30rPs9SMpIiYkIy+HGTaRLWsR11z3mu/hbOY0sjqe8mipX3jbpBThVDNw7cJ3JnlkbF50dN28yhRYeLELICJPY/EwuverR/GzW3swjBAr32BjdSG1B65LzunNbmAYmsRNpAyE2fwB5s1OiMecyo5ozwE4qX6JFQ+mbr8pGG4ShF3pI599DHl8O96VlEF63+NnNiLYLnQ==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 192.176.1.74) smtp.rcpttodomain=dpdk.org smtp.mailfrom=ericsson.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=ericsson.com;\n dkim=none (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=uAkeaRIcT+HULz2cG/yzM3HEIL6PsPPh7TvKLMe/dGY=;\n b=KOJ/CbbPNtDpUqYgSIPAYmJKPqreTBlDrVFWYPtLZM7oT4U0K8xHM+TMlcSz8Qog2/MPbapnmZxUl/Hbl9v9QE7UttQu9qiqDeg+dDm06EKrPgVbDr26XMnfWjt3wjCRBYvh4efVK9SB0D3bn8sHft0ya/kuMwBL+CcJzq72L+c=",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 192.176.1.74)\n smtp.mailfrom=ericsson.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=ericsson.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of ericsson.com designates\n 192.176.1.74 as permitted sender)\n receiver=protection.outlook.com;\n client-ip=192.176.1.74; helo=oa.msg.ericsson.com; pr=C",
        "From": "=?utf-8?q?Mattias_R=C3=B6nnblom?= <mattias.ronnblom@ericsson.com>",
        "To": "<jerinj@marvell.com>",
        "CC": "Jerin Jacob <jerinjacobk@gmail.com>, <hofors@lysator.liu.se>,\n <dev@dpdk.org>, <harry.van.haaren@intel.com>, <peter.j.nilsson@ericsson.com>,\n =?utf-8?q?Mattias_R=C3=B6nnblom?= <mattias.ronnblom@ericsson.com>",
        "Subject": "[RFC v4 0/3] Add event dispatcher",
        "Date": "Fri, 9 Jun 2023 09:08:23 +0200",
        "Message-ID": "<20230609070826.149336-1-mattias.ronnblom@ericsson.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20230522091628.96236-2-mattias.ronnblom@ericsson.com>",
        "References": "<20230522091628.96236-2-mattias.ronnblom@ericsson.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"UTF-8\"",
        "Content-Transfer-Encoding": "8bit",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "VI1EUR02FT007:EE_|DB8PR07MB6315:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "229a9080-5d8b-4547-0309-08db68b94007",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n Ujm/riSHC+BJ43f1/Xj23Eq7XkMR5sbAMtfXim+y0bEibU0W4b2V7s2diBNddwQghgxsSAvip67sm1p3fzUV+QVzML4Toam6gx8ZxxoWEbUc/2e8zNjfc+SGCf3rouhzPWZGv+76j/sSqsDjZVA2AYFAAKL0hW8OUrxHJphaxuGdWx3AjwHnAJVRhZn0i2JOjTQwmJkQ8/A7JBhbLFjRJXbWRH+/vn4I9D1lc7qIxldHtFEBgWR1OFRA3Arv6MhMFzR3u/53TdZpuwmAr5OCsd993G5mEMvbx9ueGRHEYOdOc/v9hVCmsalTefi/pZZgrhX39jyRsaJx22d1ygsfoBvYAb1MFFj2hUHlVpHWdETZb4RgG73glWw8XXbSaskfCspVnLWq/vWUHgjDZTOhF03DevfSDHewxYhShO5rXqnF9Kjqc5jq9dFXa2nYXiRzSi09PaZuCeg4GlVDJvWfwTfr/2UQz7ztYVrbtFA7MqDjCIcmVquoNC0lnk2ipSO7qK4kuZA3X8WjisYP8Y113uRVbYAMzR0eLyCRWCEC0nFSpvu1HAe4mm83jYKfQu+kVPGszUa4a8DZuDwVWha9qKWRrM75lwR0c+mkw0XJ4nETfbzZIuHBw7baKeMX/2v5shxbkeLf95h7stTGGS/vMqNeEahlIPMwqQQzkI8zw2zmm/nUorJtsAlCj17G+cZKkAECRGJhCo1KXWH0e6v9L5vaugv8U0MgIpvRdyBd1n14/DiAxyyMv5VMXkpbrzmxPfWmjS/kQ1j0fmj2wxIMjicaPG5Mm5H17dKg56febY0=",
        "X-Forefront-Antispam-Report": "CIP:192.176.1.74; CTRY:SE; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:oa.msg.ericsson.com; PTR:office365.se.ericsson.net;\n CAT:NONE;\n SFS:(13230028)(4636009)(396003)(376002)(136003)(346002)(39860400002)(451199021)(46966006)(36840700001)(40470700004)(2616005)(6266002)(478600001)(186003)(86362001)(66574015)(47076005)(336012)(36860700001)(26005)(1076003)(107886003)(40460700003)(316002)(36756003)(4326008)(70586007)(70206006)(6916009)(82960400001)(5660300002)(82740400003)(7636003)(356005)(6666004)(40480700001)(41300700001)(8676002)(82310400005)(8936002)(2906002)(54906003);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "ericsson.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "09 Jun 2023 07:15:05.4247 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 229a9080-5d8b-4547-0309-08db68b94007",
        "X-MS-Exchange-CrossTenant-Id": "92e84ceb-fbfd-47ab-be52-080c6b87953f",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=92e84ceb-fbfd-47ab-be52-080c6b87953f; Ip=[192.176.1.74];\n Helo=[oa.msg.ericsson.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n VI1EUR02FT007.eop-EUR02.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DB8PR07MB6315",
        "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>,\n <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>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "The purpose of the event dispatcher is to decouple different parts of\nan application (e.g., processing pipeline stages), sharing the same\nunderlying event device.\n\nThe event dispatcher replaces the conditional logic (often, a switch\nstatement) that typically follows an event device dequeue operation,\nwhere events are dispatched to different parts of the application\nbased on event meta data, such as the queue id or scheduling type.\n\nThe concept is similar to a UNIX file descriptor event loop library.\nInstead of tying callback functions to fds as for example libevent\ndoes, the event dispatcher relies on application-supplied matching\ncallback functions to decide where to deliver events.\n\nAn event dispatcher is configured to dequeue events from a specific\nevent device, and ties into the service core framework, to do its (and\nthe application's) work.\n\nThe event dispatcher provides a convenient way for an eventdev-based\napplication to use service cores for application-level processing, and\nthus for sharing those cores with other DPDK services.\n\nAlthough the event dispatcher adds some overhead, experience suggests\nthat the net effect on the application (both syntetic benchmarks and\nmore real-world applications) may well be positive. This is primarily\ndue to clustering (see programming guide) reducing cache misses.\nBenchmarking indicates that the overhead is ~10 cc/event (on a\nlarge core), with a handful of active handlers.\n\nThe event dispatcher does not support runtime reconfiguration.\n\nOutstanding questions:\n o Consider adding possibility to express simple match functions\n   (e..queue_id == 7) without a match callback.\n o Consider allowing the application setting the process callback to NULL,\n   signalling to the dispatcher that processing will occur already at the\n   time of the match call. May provide some slight performance benefits\n   for applications where the average number of events supplied per process\n   function call is very small.\n\nMattias Rönnblom (3):\n  eventdev: introduce event dispatcher\n  test: add event dispatcher test suite\n  doc: add event dispatcher programming guide\n\n app/test/meson.build                       |   1 +\n app/test/test_event_dispatcher.c           | 814 +++++++++++++++++++++\n doc/api/doxy-api-index.md                  |   1 +\n doc/guides/prog_guide/event_dispatcher.rst | 443 +++++++++++\n doc/guides/prog_guide/index.rst            |   1 +\n lib/eventdev/meson.build                   |   2 +\n lib/eventdev/rte_event_dispatcher.c        | 770 +++++++++++++++++++\n lib/eventdev/rte_event_dispatcher.h        | 448 ++++++++++++\n lib/eventdev/version.map                   |  13 +\n 9 files changed, 2493 insertions(+)\n create mode 100644 app/test/test_event_dispatcher.c\n create mode 100644 doc/guides/prog_guide/event_dispatcher.rst\n create mode 100644 lib/eventdev/rte_event_dispatcher.c\n create mode 100644 lib/eventdev/rte_event_dispatcher.h"
}