From patchwork Tue Sep 18 12:45:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Mattias_R=C3=B6nnblom?= X-Patchwork-Id: 44837 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D2DD45B3E; Tue, 18 Sep 2018 14:45:43 +0200 (CEST) Received: from sessmg22.ericsson.net (sessmg22.ericsson.net [193.180.251.58]) by dpdk.org (Postfix) with ESMTP id DFE824F9C for ; Tue, 18 Sep 2018 14:45:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; d=ericsson.com; s=mailgw201801; c=relaxed/simple; q=dns/txt; i=@ericsson.com; t=1537274730; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:CC:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=4URAPjvWaqtzjs5wDUqSNlpuqAGyxG+ufcLw+NVDR1g=; b=TLv4a+PmkQON12q9gXUlr6fop8/QHm/wf92YfEGpuZq+/pzTKuOjDNP28QOL+4M/ zQPEQPmh5t1JdHcbY6EktAei6QTaP1Fb5DAYMeN/UCoeH2Vw3EqZuX3149hG06RB ZJwPcQ8YY0EbURRlOEXz6AU5b4/0ZI+BIYWJcIATVcY=; X-AuditID: c1b4fb3a-75d969c000003197-9a-5ba0f36acb39 Received: from ESESSMB501.ericsson.se (Unknown_Domain [153.88.183.119]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id F3.EF.12695.A63F0AB5; Tue, 18 Sep 2018 14:45:30 +0200 (CEST) Received: from ESESBMR504.ericsson.se (153.88.183.139) by ESESSMB501.ericsson.se (153.88.183.189) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Tue, 18 Sep 2018 14:45:27 +0200 Received: from ESESBMB504.ericsson.se (153.88.183.171) by ESESBMR504.ericsson.se (153.88.183.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Tue, 18 Sep 2018 14:45:27 +0200 Received: from selio1a020.lmera.ericsson.se (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.187) with Microsoft SMTP Server id 15.1.1466.3 via Frontend Transport; Tue, 18 Sep 2018 14:45:27 +0200 Received: from breslau.lmera.ericsson.se (breslau.lmera.ericsson.se [150.132.109.241]) by selio1a020.lmera.ericsson.se (8.15.1+Sun/8.15.1) with ESMTP id w8ICjQ1d011575; Tue, 18 Sep 2018 14:45:28 +0200 (CEST) From: =?utf-8?q?Mattias_R=C3=B6nnblom?= To: Jerin Jacob CC: Bruce Richardson , , =?utf-8?q?Mattias_R=C3=B6nnblom?= Date: Tue, 18 Sep 2018 14:45:14 +0200 Message-ID: <20180918124514.10615-11-mattias.ronnblom@ericsson.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180918124514.10615-1-mattias.ronnblom@ericsson.com> References: <20180918124514.10615-1-mattias.ronnblom@ericsson.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrMLMWRmVeSWpSXmKPExsUyM2J7uW7W5wXRBr+vyFvcWGVv8e7TdiaL iZNMHJg9NpzoZ/X4tWApq8fiPS+ZApijuGxSUnMyy1KL9O0SuDKefWtkLrioUfF+yRyWBsYj il2MHBwSAiYS19syuxi5OIQEjjJKzD12mAXC+cYoMbX3Lzucs+T4e1YI5yKjxMkLc9ggnMuM EofunANyODnYBDwlJr/rZgGxRQQMJBaduc8MUsQs0MEo0Tz1D1hCWMBbYvHpN+wgNouAqkTj 899MIDavgLPEhbWzweISAvISqzccYAaxOYHin6euYwI5VkjASeLiBmWIckGJkzOfgI1kFtCU aN3+mx3Clpdo3jobrFVIQEvi/pIvzBMYhWchaZmFpGUWkpYFjMyrGEWLU4uLc9ONjPRSizKT i4vz8/TyUks2MQKD/uCW31Y7GA8+dzzEKMDBqMTDm/xqQbQQa2JZcWXuIUYJDmYlEV7OHKAQ b0piZVVqUX58UWlOavEhRmkOFiVxXqc0iyghgfTEktTs1NSC1CKYLBMHp1QDYy1DkIZzYZe1 zjnz5EOnStqu+Pn4vJm55oFhvgjD+oD75wOWz31/RurrtYkX7l490BH+fdrcCuMutqpHD1K5 oi6qB2sHrM6qD2kSfuK3I8PuRL6wSHl1ZKOArdJDlXk2yeEPDu07ezJahSfYuotlt0rMNKsV pwXDzpzMmL6zfdmR68xiBTW/lViKMxINtZiLihMBGV6gynYCAAA= Subject: [dpdk-dev] [PATCH v4 10/10] event/dsw: include DSW event device documentation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" The DSW event device is documented in DPDK Programmer's Guide. The MAINTAINERS file and the 18.11 release notes are updated. Signed-off-by: Mattias Rönnblom --- MAINTAINERS | 5 ++ doc/guides/eventdevs/dsw.rst | 96 ++++++++++++++++++++++++++ doc/guides/eventdevs/index.rst | 1 + doc/guides/rel_notes/release_18_11.rst | 8 +++ 4 files changed, 110 insertions(+) create mode 100644 doc/guides/eventdevs/dsw.rst diff --git a/MAINTAINERS b/MAINTAINERS index 9fd258fad..cbfa7e106 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -919,6 +919,11 @@ F: doc/guides/eventdevs/sw.rst F: examples/eventdev_pipeline/ F: doc/guides/sample_app_ug/eventdev_pipeline.rst +Distributed Software Eventdev PMD +M: Mattias Rönnblom +F: drivers/event/dsw/ +F: doc/guides/eventdevs/dsw.rst + Software OPDL Eventdev PMD M: Liang Ma M: Peter Mccarthy diff --git a/doc/guides/eventdevs/dsw.rst b/doc/guides/eventdevs/dsw.rst new file mode 100644 index 000000000..6653f501c --- /dev/null +++ b/doc/guides/eventdevs/dsw.rst @@ -0,0 +1,96 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2018 Ericsson AB + +Distributed Software Eventdev Poll Mode Driver +============================================== + +The distributed software event device is an eventdev driver which +distributes the task of scheduling events among all the eventdev ports +and the lcore threads using them. + +Features +-------- + +Queues + * Atomic + * Parallel + * Single-Link + +Ports + * Load balanced (for Atomic, Ordered, Parallel queues) + * Single Link (for single-link queues) + +Configuration and Options +------------------------- + +The distributed software eventdev is a vdev device, and as such can be +created from the application code, or from the EAL command line: + +* Call ``rte_vdev_init("event_dsw0")`` from the application + +* Use ``--vdev="event_dsw0"`` in the EAL options, which will call + rte_vdev_init() internally + +Example: + +.. code-block:: console + + ./your_eventdev_application --vdev="event_dsw0" + +Limitations +----------- + +Unattended Ports +~~~~~~~~~~~~~~~~ + +The distributed software eventdev uses an internal signaling schema +between the ports to achieve load balancing. In order for this to +work, the application must perform enqueue and/or dequeue operations +on all ports. + +Producer-only ports which currently have no events to enqueue should +periodically call rte_event_enqueue_burst() with a zero-sized burst. + +Ports left unattended for longer periods of time will prevent load +balancing, and also cause traffic interruptions on the flows which +are in the process of being migrated. + +Output Buffering +~~~~~~~~~~~~~~~~ + +For efficiency reasons, the distributed software eventdev might not +send enqueued events immediately to the destination port, but instead +store them in an internal buffer in the source port. + +In case no more events are enqueued on a port with buffered events, +these events will be sent after the application has performed a number +of enqueue and/or dequeue operations. + +For explicit flushing, an application may call +rte_event_enqueue_burst() with a zero-sized burst. + + +Priorities +~~~~~~~~~~ + +The distributed software eventdev does not support event priorities. + +Ordered Queues +~~~~~~~~~~~~~~ + +The distributed software eventdev does not support the ordered queue type. + + +"All Types" Queues +~~~~~~~~~~~~~~~~~~ + +The distributed software eventdev does not support queues of type +RTE_EVENT_QUEUE_CFG_ALL_TYPES, which allow both atomic, ordered, and +parallel events on the same queue. + +Dynamic Link/Unlink +~~~~~~~~~~~~~~~~~~~ + +The distributed software eventdev does not support calls to +rte_event_port_link() or rte_event_port_unlink() after +rte_event_dev_start() has been called. diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 18ec8e462..984eea5f4 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -14,5 +14,6 @@ application trough the eventdev API. dpaa dpaa2 sw + dsw octeontx opdl diff --git a/doc/guides/rel_notes/release_18_11.rst b/doc/guides/rel_notes/release_18_11.rst index 3ae6b3f58..9c6b1fd0b 100644 --- a/doc/guides/rel_notes/release_18_11.rst +++ b/doc/guides/rel_notes/release_18_11.rst @@ -54,6 +54,14 @@ New Features Also, make sure to start the actual text at the margin. ========================================================= +* **Added Distributed Software Eventdev PMD.** + + Added the new Distributed Software Event Device (DSW), which is a + pure-software eventdev driver distributing the work of scheduling + among all eventdev ports and the lcores using them. DSW, compared to + the SW eventdev PMD, sacrifices load balancing performance to + gain better event scheduling throughput and scalability. + API Changes -----------