From patchwork Tue Oct 26 17:31:46 2021 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: 102992 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id DFEB0A0547; Tue, 26 Oct 2021 19:32:09 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C9D42410D5; Tue, 26 Oct 2021 19:32:09 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00063.outbound.protection.outlook.com [40.107.0.63]) by mails.dpdk.org (Postfix) with ESMTP id 4587040E0F for ; Tue, 26 Oct 2021 19:32:08 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RjR34+5S0JM+O0sNoB4sBAF1x8ljC6XVuKBj+JfrptaS5STMedCQty9MrIM1gH2uc+QY9L/b9wUQ61l00p40Ks4fZieSZxQsu91inD4Kic/VqLcWylzodzGy7JDfzLESbTOT4Nlff4UIii5KTDrWXAQPKWY2dzleNMUNdoIipCoEij6ZRM5huI11RAFsDb7cUjyBrGc9Lax1bFcuT3SDDh7Fj/QUP7jnwGK0b0VNmDt5KMdWfdefdFsRv2qqHhP+KfzOD6YFTIeVUvi0KeG9/U6mQva1UDfomkuBLJOVVixOUymHWowTLguYeucomrg3EpZ9/3vyzOfFgVpP9sF53A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=nPViUz3kg+ZiR7B+2mbHhFkde/JoWgQYXLyVezoxHno=; b=CHhOoSDdHON8soCO+1lr0MsS5i0qhcP1RTL9XqWfX5kEZjzeUWLCeICycUV5tpb+MJjY3Zp5bv5XcrQsFJChWALB03E4h6Hs21q2rWTEXVmv/jwWbzzv7Zi/1OWcIP47PWk9JAmpSfGq1Vqz3mC10Mp1rhD+rjjmrKzef+7ttRx6N7Zccp31Sr0UEqoPHlD2J7itiePmGDFb4PqBLvLE3Mz2thRp6X+lAKeiWkRDXPwxq89PfUrZGYsqMY8jKJ0TWsCQ7x9mI0+hwzGu6pyACALZ+gauvz7wHnleGYMZLoZmtUBQXjtGbiK49poj2G8vUAaR3xDtNGLfoj6ni+akHw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 192.176.1.74) smtp.rcpttodomain=dpdk.org smtp.mailfrom=ericsson.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=ericsson.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nPViUz3kg+ZiR7B+2mbHhFkde/JoWgQYXLyVezoxHno=; b=NOb9BjqGQ56uNWgH0xMO0fpM93a+CoZ1S9kautHWbsmHOfljfXQ//FDryFq7QmZbzuFE74tkh1aYyb65ttyEqD6p4T1KcAOS7ZFOLcmXWx+2N7LuQcso1ct+xs03E0NKqovYUwNvIpo6EE/GXIm0g6Vw/QisLOvU7p3fdu69S2g= Received: from BEXP281CA0017.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10::27) by PA4PR07MB7710.eurprd07.prod.outlook.com (2603:10a6:102:f5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.12; Tue, 26 Oct 2021 17:32:07 +0000 Received: from HE1EUR02FT055.eop-EUR02.prod.protection.outlook.com (2603:10a6:b10:0:cafe::3c) by BEXP281CA0017.outlook.office365.com (2603:10a6:b10::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.11 via Frontend Transport; Tue, 26 Oct 2021 17:32:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 192.176.1.74) smtp.mailfrom=ericsson.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=ericsson.com; Received-SPF: Pass (protection.outlook.com: domain of ericsson.com designates 192.176.1.74 as permitted sender) receiver=protection.outlook.com; client-ip=192.176.1.74; helo=oa.msg.ericsson.com; Received: from oa.msg.ericsson.com (192.176.1.74) by HE1EUR02FT055.mail.protection.outlook.com (10.152.11.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.4628.16 via Frontend Transport; Tue, 26 Oct 2021 17:32:06 +0000 Received: from ESESSMB504.ericsson.se (153.88.183.165) by ESESSMR502.ericsson.se (153.88.183.110) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2242.12; Tue, 26 Oct 2021 19:32:05 +0200 Received: from ESESSMB505.ericsson.se (153.88.183.166) by ESESSMB504.ericsson.se (153.88.183.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2242.12; Tue, 26 Oct 2021 19:32:05 +0200 Received: from seliiuapp00218.seli.gic.ericsson.se (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.193) with Microsoft SMTP Server id 15.1.2242.12 via Frontend Transport; Tue, 26 Oct 2021 19:32:05 +0200 Received: from localhost.localdomain (seliicwb00002.seli.gic.ericsson.se [10.156.25.100]) by seliiuapp00218.seli.gic.ericsson.se (Postfix) with ESMTP id 8D602601E6; Tue, 26 Oct 2021 19:32:05 +0200 (CEST) From: =?utf-8?q?Mattias_R=C3=B6nnblom?= To: , , , CC: , =?utf-8?q?Mattias_R=C3=B6nnblom?= Date: Tue, 26 Oct 2021 19:31:46 +0200 Message-ID: <20211026173148.19399-1-mattias.ronnblom@ericsson.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <3e8c8bab-783d-d132-a836-51bd4d5533bb@ericsson.com> References: <3e8c8bab-783d-d132-a836-51bd4d5533bb@ericsson.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0c715f3d-5244-489b-3de6-08d998a68845 X-MS-TrafficTypeDiagnostic: PA4PR07MB7710: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5wL7/MLeruXDDVDy+eiZXZCSXDi8pn7O4i+yG/4aQ+q5U4xU7d8X9DV1+h+ApOpJ1EUaQewuEtddBPwCJao39JwM9LQgJtaM+8pwFmhVdJCQaMfYEQE0yqePZp1N1Pq+4mhB381yzb5fZGkeMPYRqgxY5aLHB3mvIbwyC9Tm+JkWNGw/uZz992XDdc09fe/IcvtG011ZKSHUWKfbkSDVauuARRQ07zIjZyRNbe9VecpVkqxXFQDdngGsDk/JSiQRET+FIZYQ+c0rYEKgsrK6k5n1eHelCKfqwvGq+D4aHUFDr9l8/zsmdpueC1wxWkTcWjWIUB+eqUZ3QpljHttjDQi0YPIh+RmygUZ2VGTQ3oZLdMsLYThDo5QY/MN+odyDOBftyTsueedATlPLxRjPRVHgbADvrZnNqN6hu91DIUur12iU8i8OcZmkDazpEsGwmL74dFjzgRQZ3rVOYzMbUpl6DdiTz4QRADrBgDHyy1T8nX5qyOlhQxwB3PAkiib7Eyzz6fyfJxIzN+rdGInV9Sp9eGU6s/r050GWuhAH+QUSjyUobtv78f2CeOoY0cvgGDOexm5uVolkqBSIXwMhZWs2v5j4RADZRMxyxHq+9Tubzq1O8VUS06MtSB09EhUFKbZ02ibX9/54rO0dL/HinoSZPmhvhFVF15rq1bJN24eymItQ4f3RkSoiSLQxIJrxfWBPekW+G6HmqX8kBywtzA== X-Forefront-Antispam-Report: CIP:192.176.1.74; CTRY:SE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:oa.msg.ericsson.com; PTR:office365.se.ericsson.net; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(2906002)(5660300002)(47076005)(26005)(107886003)(82960400001)(356005)(316002)(2616005)(110136005)(70586007)(508600001)(66574015)(7636003)(336012)(6666004)(4326008)(54906003)(6266002)(83380400001)(8676002)(36756003)(186003)(8936002)(86362001)(82310400003)(1076003)(70206006)(36860700001); DIR:OUT; SFP:1101; X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2021 17:32:06.7508 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0c715f3d-5244-489b-3de6-08d998a68845 X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=92e84ceb-fbfd-47ab-be52-080c6b87953f; Ip=[192.176.1.74]; Helo=[oa.msg.ericsson.com] X-MS-Exchange-CrossTenant-AuthSource: HE1EUR02FT055.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR07MB7710 Subject: [dpdk-dev] [PATCH 1/3] eventdev: allow for event devices requiring maintenance 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" Extend Eventdev API to allow for event devices which require various forms of internal processing to happen, even when events are not enqueued to or dequeued from a port. PATCH v1: - Adapt to the move of fastpath function pointers out of rte_eventdev struct - Attempt to clarify how often the application is expected to call rte_event_maintain() - Add trace point RFC v2: - Change rte_event_maintain() return type to be consistent with the documentation. - Remove unused typedef from eventdev_pmd.h. Signed-off-by: Mattias Rönnblom Tested-by: Richard Eklycke Tested-by: Liron Himi --- lib/eventdev/eventdev_pmd.h | 2 + lib/eventdev/eventdev_private.c | 9 ++++ lib/eventdev/eventdev_trace_points.c | 3 ++ lib/eventdev/rte_eventdev.h | 63 ++++++++++++++++++++++++++++ lib/eventdev/rte_eventdev_core.h | 5 +++ lib/eventdev/rte_eventdev_trace_fp.h | 7 ++++ 6 files changed, 89 insertions(+) diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h index d009e24309..82a5c4db33 100644 --- a/lib/eventdev/eventdev_pmd.h +++ b/lib/eventdev/eventdev_pmd.h @@ -164,6 +164,8 @@ struct rte_eventdev { /**< Pointer to PMD dequeue function. */ event_dequeue_burst_t dequeue_burst; /**< Pointer to PMD dequeue burst function. */ + event_maintain_t maintain; + /**< Pointer to PMD port maintenance function. */ event_tx_adapter_enqueue_t txa_enqueue_same_dest; /**< Pointer to PMD eth Tx adapter burst enqueue function with * events destined to same Eth port & Tx queue. diff --git a/lib/eventdev/eventdev_private.c b/lib/eventdev/eventdev_private.c index 9084833847..6395c21dce 100644 --- a/lib/eventdev/eventdev_private.c +++ b/lib/eventdev/eventdev_private.c @@ -44,6 +44,13 @@ dummy_event_dequeue_burst(__rte_unused void *port, return 0; } +static void +dummy_event_maintain(__rte_unused void *port) +{ + RTE_EDEV_LOG_ERR( + "maintenance requested for unconfigured event device"); +} + static uint16_t dummy_event_tx_adapter_enqueue(__rte_unused void *port, __rte_unused struct rte_event ev[], @@ -85,6 +92,7 @@ event_dev_fp_ops_reset(struct rte_event_fp_ops *fp_op) .enqueue_forward_burst = dummy_event_enqueue_burst, .dequeue = dummy_event_dequeue, .dequeue_burst = dummy_event_dequeue_burst, + .maintain = dummy_event_maintain, .txa_enqueue = dummy_event_tx_adapter_enqueue, .txa_enqueue_same_dest = dummy_event_tx_adapter_enqueue_same_dest, @@ -105,6 +113,7 @@ event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op, fp_op->enqueue_forward_burst = dev->enqueue_forward_burst; fp_op->dequeue = dev->dequeue; fp_op->dequeue_burst = dev->dequeue_burst; + fp_op->maintain = dev->maintain; fp_op->txa_enqueue = dev->txa_enqueue; fp_op->txa_enqueue_same_dest = dev->txa_enqueue_same_dest; fp_op->ca_enqueue = dev->ca_enqueue; diff --git a/lib/eventdev/eventdev_trace_points.c b/lib/eventdev/eventdev_trace_points.c index 237d9383fd..de6b1f4417 100644 --- a/lib/eventdev/eventdev_trace_points.c +++ b/lib/eventdev/eventdev_trace_points.c @@ -37,6 +37,9 @@ RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_enq_burst, RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_deq_burst, lib.eventdev.deq.burst) +RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_maintain, + lib.eventdev.maintain) + /* Eventdev Rx adapter trace points */ RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_create, lib.eventdev.rx.adapter.create) diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index 0abed56bef..aad89c66f3 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -299,6 +299,15 @@ struct rte_event; * the content of this field is implementation dependent. */ +#define RTE_EVENT_DEV_CAP_REQUIRES_MAINT (1ULL << 10) +/**< Event device requires calls to rte_event_maintain() during + * periods when neither rte_event_dequeue_burst() nor + * rte_event_enqueue_burst() are called on a port. This will allow the + * event device to perform internal processing, such as flushing + * buffered events, return credits to a global pool, or process + * signaling related to load balancing. + */ + /* Event device priority levels */ #define RTE_EVENT_DEV_PRIORITY_HIGHEST 0 /**< Highest priority expressed across eventdev subsystem @@ -2063,6 +2072,60 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], timeout_ticks); } +/** + * Maintain an event device. + * + * This function is only relevant for event devices which has the + * RTE_EVENT_DEV_CAP_REQUIRES_MAINT flag set. Such devices require the + * application to call rte_event_maintain() on a port during periods + * which it is neither enqueuing nor dequeuing events from that + * port. rte_event_maintain() is a low-overhead function and should be + * called at a high rate (e.g., in the applications poll loop). + * + * No port may be left unmaintained. + * + * rte_event_maintain() may be called on event devices which haven't + * set RTE_EVENT_DEV_CAP_REQUIRES_MAINT flag, in which case it is a + * no-operation. + * + * @param dev_id + * The identifier of the device. + * @param port_id + * The identifier of the event port. + * @return + * - 0 on success. + * - -EINVAL if *dev_id* or *port_id* is invalid + * + * @see RTE_EVENT_DEV_CAP_REQUIRES_MAINT + */ +static inline int +rte_event_maintain(uint8_t dev_id, uint8_t port_id) +{ + const struct rte_event_fp_ops *fp_ops; + void *port; + + fp_ops = &rte_event_fp_ops[dev_id]; + port = fp_ops->data[port_id]; +#ifdef RTE_LIBRTE_EVENTDEV_DEBUG + if (dev_id >= RTE_EVENT_MAX_DEVS || + port_id >= RTE_EVENT_MAX_PORTS_PER_DEV) { + rte_errno = EINVAL; + return 0; + } + + if (port == NULL) { + rte_errno = EINVAL; + return 0; + } +#endif + rte_eventdev_trace_maintain(dev_id, port_id); + + if (fp_ops->maintain != NULL) + fp_ops->maintain(port); + + return 0; +} + #ifdef __cplusplus } #endif diff --git a/lib/eventdev/rte_eventdev_core.h b/lib/eventdev/rte_eventdev_core.h index 61d5ebdc44..61fa65cab3 100644 --- a/lib/eventdev/rte_eventdev_core.h +++ b/lib/eventdev/rte_eventdev_core.h @@ -29,6 +29,9 @@ typedef uint16_t (*event_dequeue_burst_t)(void *port, struct rte_event ev[], uint64_t timeout_ticks); /**< @internal Dequeue burst of events from port of a device */ +typedef void (*event_maintain_t)(void *port); +/**< @internal Maintains a port */ + typedef uint16_t (*event_tx_adapter_enqueue_t)(void *port, struct rte_event ev[], uint16_t nb_events); @@ -54,6 +57,8 @@ struct rte_event_fp_ops { /**< PMD dequeue function. */ event_dequeue_burst_t dequeue_burst; /**< PMD dequeue burst function. */ + event_maintain_t maintain; + /**< PMD port maintenance function. */ event_tx_adapter_enqueue_t txa_enqueue; /**< PMD Tx adapter enqueue function. */ event_tx_adapter_enqueue_t txa_enqueue_same_dest; diff --git a/lib/eventdev/rte_eventdev_trace_fp.h b/lib/eventdev/rte_eventdev_trace_fp.h index 5639e0b83a..c5a79a14d8 100644 --- a/lib/eventdev/rte_eventdev_trace_fp.h +++ b/lib/eventdev/rte_eventdev_trace_fp.h @@ -38,6 +38,13 @@ RTE_TRACE_POINT_FP( rte_trace_point_emit_ptr(enq_mode_cb); ) +RTE_TRACE_POINT_FP( + rte_eventdev_trace_maintain, + RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint8_t port_id), + rte_trace_point_emit_u8(dev_id); + rte_trace_point_emit_u8(port_id); +) + RTE_TRACE_POINT_FP( rte_eventdev_trace_eth_tx_adapter_enqueue, RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint8_t port_id, void *ev_table, From patchwork Tue Oct 26 17:31:47 2021 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: 102993 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 44F72A0547; Tue, 26 Oct 2021 19:32:16 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2D2EC4111D; Tue, 26 Oct 2021 19:32:12 +0200 (CEST) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30088.outbound.protection.outlook.com [40.107.3.88]) by mails.dpdk.org (Postfix) with ESMTP id 05BE1410EE for ; Tue, 26 Oct 2021 19:32:09 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wm8iZPLv/riO7/SWH23d3fIZIw36OKQCYp2uzqsUZHcaIvpceaCenW7gdVQJsVQoYbMioDieyXjQiYxpRWOWEM6t6IiEURqfXpgrzKGxPRTDePx1WTQI+bEw0N4GHY1mw8gowii7R0wkSC//8NoLyAdVI9v2nQokZQJtspZGOUaErKDAzOQjTUz4gNBkbKkA2u3n2GewsYz/ImyvK8BfsFvtSmC/NQfFr0bJ9ERZL+QYQGS7itQJyd9HsoIkqOfoyEVLZfPoyQOctRyW/Gdi9hI3i9PXG3M6bk9TQHdY9hJ7M6hkeeVwF/5HS2to/LHqc4aBXwtAomid7Q2nC9EmKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=owOj3YTkxprzepT87+BnLVItwVig8JlEgrITBY7/2qs=; b=LtCtrO/L23Lp1oXR9AJ8dhQl4M0NgNq4GW99Bqa/Jtp1L0blUgkudJSXN3zftsvH+2TsRFTe3SLpN0n+aR6xulecQFs4IORLLkJbbGJln4A1Z3ulaK4sy70RLovDOMJMhrHvwU34MCTPkKoWIdBUZWjl/XTZpsQywwLWgc1r935sfvPzFa2H3n/vx2oHdkcZVfSZ64iyB+02Vm1Il/E2vsL8HByHMOx+oFW2VcwvwSUJtNiDlEducTgULg6gMTRBVZqjT6XxMUUyHk5XKrhPNzNiVV/CCJKM8flqZqAbvMihWDC8r36Vz7cpALrsXrWfKjUE88Gt3iGhtxzG/ejg1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 192.176.1.74) smtp.rcpttodomain=dpdk.org smtp.mailfrom=ericsson.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=ericsson.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=owOj3YTkxprzepT87+BnLVItwVig8JlEgrITBY7/2qs=; b=qTuPmxiewUhzLrmy8gvfIIQFl5pqwVvKqFJOkLrdW/RhCD/qWzABCWSVfjjBigIqoTggpLCYCdWC/CDVsE9kDME8ysguCjYBV9CRbBWXkAS8szMPnWH5NnxvfbpHCVheLIt0Be8AA/2ispBzEHTE1M9yGWqOHnHll+9l1x3vwBY= Received: from BEXP281CA0012.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10::22) by DB9PR07MB7209.eurprd07.prod.outlook.com (2603:10a6:10:212::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.12; Tue, 26 Oct 2021 17:32:09 +0000 Received: from HE1EUR02FT055.eop-EUR02.prod.protection.outlook.com (2603:10a6:b10:0:cafe::f5) by BEXP281CA0012.outlook.office365.com (2603:10a6:b10::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.11 via Frontend Transport; Tue, 26 Oct 2021 17:32:09 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 192.176.1.74) smtp.mailfrom=ericsson.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=ericsson.com; Received-SPF: Pass (protection.outlook.com: domain of ericsson.com designates 192.176.1.74 as permitted sender) receiver=protection.outlook.com; client-ip=192.176.1.74; helo=oa.msg.ericsson.com; Received: from oa.msg.ericsson.com (192.176.1.74) by HE1EUR02FT055.mail.protection.outlook.com (10.152.11.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.4628.16 via Frontend Transport; Tue, 26 Oct 2021 17:32:08 +0000 Received: from ESESBMB503.ericsson.se (153.88.183.170) by ESESSMR502.ericsson.se (153.88.183.110) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2242.12; Tue, 26 Oct 2021 19:32:07 +0200 Received: from ESESBMB504.ericsson.se (153.88.183.171) by ESESBMB503.ericsson.se (153.88.183.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2242.12; Tue, 26 Oct 2021 19:32:07 +0200 Received: from seliiuapp00218.seli.gic.ericsson.se (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.187) with Microsoft SMTP Server id 15.1.2242.12 via Frontend Transport; Tue, 26 Oct 2021 19:32:07 +0200 Received: from localhost.localdomain (seliicwb00002.seli.gic.ericsson.se [10.156.25.100]) by seliiuapp00218.seli.gic.ericsson.se (Postfix) with ESMTP id 54A3B601E6; Tue, 26 Oct 2021 19:32:07 +0200 (CEST) From: =?utf-8?q?Mattias_R=C3=B6nnblom?= To: , , , CC: , =?utf-8?q?Mattias_R=C3=B6nnblom?= Date: Tue, 26 Oct 2021 19:31:47 +0200 Message-ID: <20211026173148.19399-2-mattias.ronnblom@ericsson.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211026173148.19399-1-mattias.ronnblom@ericsson.com> References: <3e8c8bab-783d-d132-a836-51bd4d5533bb@ericsson.com> <20211026173148.19399-1-mattias.ronnblom@ericsson.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6c38a9c2-e7dc-47f7-623c-08d998a68995 X-MS-TrafficTypeDiagnostic: DB9PR07MB7209: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1201; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wRQVp/3J6lFr0MaeFqLtVOsn4SRvbWZ5ahlKtWq8GnABkdPt9Cg8sy10d7CsOVrkaRtQVjDVhUOjaQE39Kgn3DHF5g8wUS+wBnvt/6FLQvEHfsvEOWJImh8CZ8ZRxjZzb+saRetZ9SJX4td61dSs2LN/MGZiyZfltkL3VshcF6O9CnPuZKa9wadTk5D+fVHReguDczG0AgPzIQWyI1lyenhfR89PVSGimr75KC1gK82MuQ2+/1eJbBAQh9UJyQISw+rjcMDsmSqIYbKZpN1gGPeME2T7DGMiXOZdEcIxjK7/BIYd3Kq5g0WjtBHP8yUcyIMFMXtwmiGog8JyrtAuBTm6EbzZ9chrmoZhbbFwLOuaNaAWDskY8kgO5BU00gvk/TO/ZznDEKuqPsdSnHLOygwkxiXc/goWZsP1V84RqOTDtrUqjqrrAQD79vKQTUj9v3pSmpoEj5+gCGb1seNQvVRTPfV6xDyFmYoTzMGcLzuVWEtY3ZvbyTSRI7zoXZQZIDG+d4aoX31p2vZSnY4Suym8T6QqzPh3vmiPKFT0BfQ+ySXNW8uNFacCEyTr/9N6eRTvfa2JVe6SoFxL1Xx5OuuKFhos2v1dBKHoVD8ZYupTrHTSmfl/Bpk+8W1xldmyKmS8mdAqy+QafT/7sMB1fCDdtH2PNAjO6/m7OxPH3fgizxnxC+P0W7W3za2bMlOWUoxLX9vnOACB+5I82NxlgA== X-Forefront-Antispam-Report: CIP:192.176.1.74; CTRY:SE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:oa.msg.ericsson.com; PTR:office365.se.ericsson.net; CAT:NONE; SFS:(4636009)(36840700001)(46966006)(186003)(1076003)(82960400001)(2906002)(107886003)(316002)(6266002)(66574015)(7636003)(86362001)(508600001)(54906003)(4326008)(47076005)(6666004)(110136005)(8936002)(70586007)(8676002)(26005)(70206006)(336012)(356005)(36860700001)(82310400003)(36756003)(2616005)(5660300002)(83380400001); DIR:OUT; SFP:1101; X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2021 17:32:08.9617 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6c38a9c2-e7dc-47f7-623c-08d998a68995 X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=92e84ceb-fbfd-47ab-be52-080c6b87953f; Ip=[192.176.1.74]; Helo=[oa.msg.ericsson.com] X-MS-Exchange-CrossTenant-AuthSource: HE1EUR02FT055.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR07MB7209 Subject: [dpdk-dev] [PATCH 2/3] event/dsw: make use of eventdev maintenance facility 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" Set the RTE_EVENT_DEV_CAP_REQUIRES_MAINT flag, and perform DSW background tasks on rte_event_maintain() calls. RFC v2: Have dsw_event_maintain() occasionally flush the port output buffers. Signed-off-by: Mattias Rönnblom Tested-by: Richard Eklycke Tested-by: Liron Himi --- drivers/event/dsw/dsw_evdev.c | 4 +++- drivers/event/dsw/dsw_evdev.h | 1 + drivers/event/dsw/dsw_event.c | 9 +++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c index 0652d83ad6..5ff8fcc6a9 100644 --- a/drivers/event/dsw/dsw_evdev.c +++ b/drivers/event/dsw/dsw_evdev.c @@ -222,7 +222,8 @@ dsw_info_get(struct rte_eventdev *dev __rte_unused, RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED| RTE_EVENT_DEV_CAP_NONSEQ_MODE| RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT| - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID| + RTE_EVENT_DEV_CAP_REQUIRES_MAINT }; } @@ -441,6 +442,7 @@ dsw_probe(struct rte_vdev_device *vdev) dev->enqueue_forward_burst = dsw_event_enqueue_forward_burst; dev->dequeue = dsw_event_dequeue; dev->dequeue_burst = dsw_event_dequeue_burst; + dev->maintain = dsw_event_maintain; if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; diff --git a/drivers/event/dsw/dsw_evdev.h b/drivers/event/dsw/dsw_evdev.h index 631daea55c..31af4ede0f 100644 --- a/drivers/event/dsw/dsw_evdev.h +++ b/drivers/event/dsw/dsw_evdev.h @@ -271,6 +271,7 @@ uint16_t dsw_event_enqueue_forward_burst(void *port, uint16_t dsw_event_dequeue(void *port, struct rte_event *ev, uint64_t wait); uint16_t dsw_event_dequeue_burst(void *port, struct rte_event *events, uint16_t num, uint64_t wait); +void dsw_event_maintain(void *port); int dsw_xstats_get_names(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, diff --git a/drivers/event/dsw/dsw_event.c b/drivers/event/dsw/dsw_event.c index 1f09816945..f16d9d463b 100644 --- a/drivers/event/dsw/dsw_event.c +++ b/drivers/event/dsw/dsw_event.c @@ -1400,3 +1400,12 @@ dsw_event_dequeue_burst(void *port, struct rte_event *events, uint16_t num, return dequeued; } + +void dsw_event_maintain(void *port) +{ + struct dsw_port *source_port = port; + struct dsw_evdev *dsw = source_port->dsw; + + dsw_port_note_op(source_port, 0); + dsw_port_bg_process(dsw, source_port); +} From patchwork Tue Oct 26 17:31:48 2021 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: 102994 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 490ADA0547; Tue, 26 Oct 2021 19:32:22 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2971B41124; Tue, 26 Oct 2021 19:32:13 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10077.outbound.protection.outlook.com [40.107.1.77]) by mails.dpdk.org (Postfix) with ESMTP id 9B013410F5 for ; Tue, 26 Oct 2021 19:32:10 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QwNYZR8uRui/GULMHAZS0OY4pp+ybcZAqLzW5vkaBr183J4HyjI0JfVJ7Pxmt8Rxl5N+/OjFjtQmNA3OuoYWA0ONbGAJaK5XaiE23qjg3P9VaT1gbfifGz+n/Dub4kx/zbLVa4m0G0Djtjsk09AV2QkVn6FOw+0CKITS9SIvhRYuN7LU7pQq3C5zYD2SoWuEdG/Kep4U1FptDLOiT5Jmpp7tuID8Nq7eIElmSTmpQc2AV1rEpGzyCywhO5eky8bdHiklPiV/kJvCbywji81435rm664TS2fJt16yqdQ+Pd+akd0/BPGwbCVsO/6Ts7ukRi9/sWRgBh/tNXEjnBTBDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=Ss565+3plHpkyG+/CRM/UX85Ud//HyJVjd9GirY6lu0=; b=gSXC2nDvoBH98T1fndbOZo3cNY7HCSPRpPtbYMwvObnFWge2t6gC/w2EL7hr66TzjfCKL5KPieVPfyA90Tqjgabr52gmnjhGuyodxVmvAQo6gK3gAdMT8gklC1R9cvJjh2NsG4VqWc5CNCmI8rhtRFGDQUNLMDtzHDWJFdUrmzpiSUYHaDbEPXvmeSAGhg4AI42/dWU8VtcVfnFr1hXBNtDNrBae8USon0pHOpc2VZdFwmA1FH3qkZDTMDtVB+HGFwcR2EPfjfGxtJmQ6EO61cq3xcD/ZPs72Hf+R/JBI+EqHgR6TH0/S8tNJnHetzXwOPDkwhU7+aaF/W1JyBvAyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 192.176.1.74) smtp.rcpttodomain=dpdk.org smtp.mailfrom=ericsson.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=ericsson.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ss565+3plHpkyG+/CRM/UX85Ud//HyJVjd9GirY6lu0=; b=rwXlp2rj8VgqOyud9ALBky04uljKQeB0pZqj50gyA86EmC9h4LbK8vmlATk1HxReTD5msTJsVWGEJJ428YZVX6V+61xozlpvMdmniKIQcwYAKYduVLIKUBb0hOQLlSqQzS82DuCDZ/olyIfVSxfnNRTIP08YniQtLtFbJT+LebQ= Received: from AM7PR02CA0022.eurprd02.prod.outlook.com (2603:10a6:20b:100::32) by DB6PR0701MB2918.eurprd07.prod.outlook.com (2603:10a6:4:71::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.10; Tue, 26 Oct 2021 17:32:09 +0000 Received: from AM5EUR02FT031.eop-EUR02.prod.protection.outlook.com (2603:10a6:20b:100:cafe::6f) by AM7PR02CA0022.outlook.office365.com (2603:10a6:20b:100::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18 via Frontend Transport; Tue, 26 Oct 2021 17:32:09 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 192.176.1.74) smtp.mailfrom=ericsson.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=ericsson.com; Received-SPF: Pass (protection.outlook.com: domain of ericsson.com designates 192.176.1.74 as permitted sender) receiver=protection.outlook.com; client-ip=192.176.1.74; helo=oa.msg.ericsson.com; Received: from oa.msg.ericsson.com (192.176.1.74) by AM5EUR02FT031.mail.protection.outlook.com (10.152.8.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.4628.18 via Frontend Transport; Tue, 26 Oct 2021 17:32:08 +0000 Received: from ESESBMB503.ericsson.se (153.88.183.170) by ESESSMR506.ericsson.se (153.88.183.128) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2242.12; Tue, 26 Oct 2021 19:32:07 +0200 Received: from seliiuapp00218.seli.gic.ericsson.se (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.186) with Microsoft SMTP Server id 15.1.2242.12 via Frontend Transport; Tue, 26 Oct 2021 19:32:08 +0200 Received: from localhost.localdomain (seliicwb00002.seli.gic.ericsson.se [10.156.25.100]) by seliiuapp00218.seli.gic.ericsson.se (Postfix) with ESMTP id 131DB601E6; Tue, 26 Oct 2021 19:32:08 +0200 (CEST) From: =?utf-8?q?Mattias_R=C3=B6nnblom?= To: , , , CC: , =?utf-8?q?Mattias_R=C3=B6nnblom?= Date: Tue, 26 Oct 2021 19:31:48 +0200 Message-ID: <20211026173148.19399-3-mattias.ronnblom@ericsson.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211026173148.19399-1-mattias.ronnblom@ericsson.com> References: <3e8c8bab-783d-d132-a836-51bd4d5533bb@ericsson.com> <20211026173148.19399-1-mattias.ronnblom@ericsson.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 41477c9d-963f-4ae3-ee1a-08d998a68996 X-MS-TrafficTypeDiagnostic: DB6PR0701MB2918: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Lu05upL+38HHs5tREtmtJf7UZuMnwn9mx4yEDCkKyCNK/BJuBduoUkxmOGNy0YG405mrLo1OcOSfoj8kEk6hsvMFfy2hkKMGhH1CtEjYH07Aiq2V/PBOWqGC3IACEWJpAea3TSeG6ilBpY4Wxpt/Ih8A/UVkuoAladBO5xBVq/t1yywcU9Vd0tPeo31YaMc2qcRHHDPoXfG0r6YkxHadqhJZRkRMZ+AlXH2xUtZXVhObuh7Lp4MZnlkShO3NKYdYW7ckw0Bxtj7RDtL76wzIRkAhlp+hAMbnHQdh6zOLKdFdyDaOHt3lpUc1yTW4iayCj2SQk6JGDQi0Zl37eSYZSDK5wbq42/H1LT/RXq4h3dc3R6JSz8t6WQdx5bFIesOeUEcTD23SOgQPfifNvITfaY2OvozbZ9TzVFoOxYD73NTdScZkQsCJYOEjuXArD4DfLxct0n7zkuTstiUe/DvSxs9Sh07XtikF6AL54awHQS72eHbj7tPHAfKe798imsnTkl4KkGvR5BB4tZv/6qArkzQPkeFSDg7dg/wjkC5FmyNoOc/57N7ibpnktXbWUqiZscOZjeK3aimqL08SfpN025uaqagpnUANhNem1MQZjOZ6a0VochttA8NDg+F1McGJkls8ZLsUdChIvPL67wKUuLUUcQLmo+Sz94mcgc3ZqRo3VbSAw3Lkh9Ouv2eGLRpjpmEA/dvhhW2ifOqPAfPtMQ== X-Forefront-Antispam-Report: CIP:192.176.1.74; CTRY:SE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:oa.msg.ericsson.com; PTR:office365.se.ericsson.net; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(83380400001)(356005)(5660300002)(336012)(70586007)(6666004)(47076005)(316002)(7636003)(54906003)(36756003)(107886003)(82310400003)(70206006)(6266002)(2616005)(2906002)(82960400001)(110136005)(26005)(8936002)(186003)(4326008)(86362001)(8676002)(36860700001)(508600001)(1076003); DIR:OUT; SFP:1101; X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2021 17:32:08.9389 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 41477c9d-963f-4ae3-ee1a-08d998a68996 X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=92e84ceb-fbfd-47ab-be52-080c6b87953f; Ip=[192.176.1.74]; Helo=[oa.msg.ericsson.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR02FT031.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0701MB2918 Subject: [dpdk-dev] [PATCH 3/3] eventdev: have adapters support device maintenance 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" Introduce support for event devices requiring calls to rte_event_maintain() in the Ethernet RX, Timer and Crypto Eventdev adapters. RFC v2: - For simplicity, the timer adapter now unconditionally calls rte_event_maintain(). - The RX adapter now only calls rte_event_maintain() when it has not enqueued any events. Signed-off-by: Mattias Rönnblom Tested-by: Richard Eklycke --- lib/eventdev/rte_event_crypto_adapter.c | 16 +++++++++++----- lib/eventdev/rte_event_eth_rx_adapter.c | 9 +++++++-- lib/eventdev/rte_event_timer_adapter.c | 3 +++ 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c index ae1151fb75..a6bd48da81 100644 --- a/lib/eventdev/rte_event_crypto_adapter.c +++ b/lib/eventdev/rte_event_crypto_adapter.c @@ -630,19 +630,25 @@ static void eca_crypto_adapter_run(struct event_crypto_adapter *adapter, unsigned int max_ops) { - while (max_ops) { + unsigned int ops_left = max_ops; + + while (ops_left > 0) { unsigned int e_cnt, d_cnt; - e_cnt = eca_crypto_adapter_deq_run(adapter, max_ops); - max_ops -= RTE_MIN(max_ops, e_cnt); + e_cnt = eca_crypto_adapter_deq_run(adapter, ops_left); + ops_left -= RTE_MIN(ops_left, e_cnt); - d_cnt = eca_crypto_adapter_enq_run(adapter, max_ops); - max_ops -= RTE_MIN(max_ops, d_cnt); + d_cnt = eca_crypto_adapter_enq_run(adapter, ops_left); + ops_left -= RTE_MIN(ops_left, d_cnt); if (e_cnt == 0 && d_cnt == 0) break; } + + if (ops_left == max_ops) + rte_event_maintain(adapter->eventdev_id, + adapter->event_port_id); } static int diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c index a175c61551..adf20f8b0c 100644 --- a/lib/eventdev/rte_event_eth_rx_adapter.c +++ b/lib/eventdev/rte_event_eth_rx_adapter.c @@ -992,6 +992,7 @@ rxa_eth_rx(struct event_eth_rx_adapter *rx_adapter, uint16_t port_id, &rx_adapter->stats; uint16_t n; uint32_t nb_rx = 0; + uint32_t nb_flushed = 0; if (rxq_empty) *rxq_empty = 0; @@ -1000,7 +1001,7 @@ rxa_eth_rx(struct event_eth_rx_adapter *rx_adapter, uint16_t port_id, */ while (rxa_pkt_buf_available(buf)) { if (buf->count >= BATCH_SIZE) - rxa_flush_event_buffer(rx_adapter, buf); + nb_flushed += rxa_flush_event_buffer(rx_adapter, buf); stats->rx_poll_count++; n = rte_eth_rx_burst(port_id, queue_id, mbufs, BATCH_SIZE); @@ -1016,7 +1017,11 @@ rxa_eth_rx(struct event_eth_rx_adapter *rx_adapter, uint16_t port_id, } if (buf->count > 0) - rxa_flush_event_buffer(rx_adapter, buf); + nb_flushed += rxa_flush_event_buffer(rx_adapter, buf); + + if (nb_flushed == 0) + rte_event_maintain(rx_adapter->eventdev_id, + rx_adapter->event_port_id); return nb_rx; } diff --git a/lib/eventdev/rte_event_timer_adapter.c b/lib/eventdev/rte_event_timer_adapter.c index 0e21b7c475..a89cf8b978 100644 --- a/lib/eventdev/rte_event_timer_adapter.c +++ b/lib/eventdev/rte_event_timer_adapter.c @@ -786,6 +786,9 @@ swtim_service_func(void *arg) sw->stats.adapter_tick_count++; } + rte_event_maintain(adapter->data->event_dev_id, + adapter->data->event_port_id); + return 0; }