From patchwork Wed Dec 7 06:49:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ganapati Kundapura X-Patchwork-Id: 120517 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 B6A42A00C3; Wed, 7 Dec 2022 07:49:52 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 607B44114B; Wed, 7 Dec 2022 07:49:51 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 3AC3F410D7 for ; Wed, 7 Dec 2022 07:49:49 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1670395789; x=1701931789; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=sZiukRuCik30piWgX1X7ZgVTuqMRNSWyJK/2TLsztiA=; b=dct+30KmGB1N1MWEUP6iwry7K+EkGj+8QLnMriPC6mAA4SVTfdBR/i7x dt39MyHn7S51bEiFo6UdrSwxOOA1YKk3NN4Pjq7q56xLd1acdQyM3DJ01 bVNgbECG4FRmmcVEHIjqAdJP3mUpXPa+1/d0TXo7z479EgeiCsGzahTIU uf/FV03F1/+VS82Gchmf3AYIffuMK2aL9z3chgQ1dZacYgP1GLxzrQX1h Dj5CiK1ydnlYc9A4S4ZFIPOdj8f4RBahWa/a3nR6dGL1KXEwj1d3BiUWP kc/x5uh6zhge06pj4b2EgdXKQVcAfRELIDKSYHhC7SCh4L23KHsQ8alap w==; X-IronPort-AV: E=McAfee;i="6500,9779,10553"; a="304446586" X-IronPort-AV: E=Sophos;i="5.96,223,1665471600"; d="scan'208";a="304446586" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Dec 2022 22:49:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10553"; a="975352937" X-IronPort-AV: E=Sophos;i="5.96,223,1665471600"; d="scan'208";a="975352937" Received: from txandevlnx322.an.intel.com ([10.123.117.44]) by fmsmga005.fm.intel.com with ESMTP; 06 Dec 2022 22:49:47 -0800 From: Ganapati Kundapura To: dev@dpdk.org, jerinj@marvell.com, s.v.naga.harish.k@intel.com, abhinandan.gujjar@intel.com Cc: jay.jayatheerthan@intel.com, vfialko@marvell.com Subject: [PATCH v3 1/5] eventdev/event_crypto: process event port's impl rel cap Date: Wed, 7 Dec 2022 00:49:41 -0600 Message-Id: <20221207064945.1665368-1-ganapati.kundapura@intel.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20221201064652.1885734-1-ganapati.kundapura@intel.com> References: <20221201064652.1885734-1-ganapati.kundapura@intel.com> MIME-Version: 1.0 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 In the current implementation adapter queries event device's capability for implicit release support. This information is used to decide whether events are enqueued back as NEW or FWD events. This patch updates the adapter to query the port caps for implicit release to decide on events enqueuing back as NEW/FWD events. Signed-off-by: Ganapati Kundapura Acked-by: Abhinandan Gujjar --- v3: * Freed adapter and adapter->ebuf after rte_event_port_attr_get() failure v2: * Updated subject line in commit message diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c index 3c585d7..134470b 100644 --- a/lib/eventdev/rte_event_crypto_adapter.c +++ b/lib/eventdev/rte_event_crypto_adapter.c @@ -53,7 +53,7 @@ struct event_crypto_adapter { uint8_t eventdev_id; /* Event port identifier */ uint8_t event_port_id; - /* Store event device's implicit release capability */ + /* Store event port's implicit release capability */ uint8_t implicit_release_disabled; /* Flag to indicate backpressure at cryptodev * Stop further dequeuing events from eventdev @@ -320,7 +320,6 @@ rte_event_crypto_adapter_create_ext(uint8_t id, uint8_t dev_id, { struct event_crypto_adapter *adapter; char mem_name[CRYPTO_ADAPTER_NAME_LEN]; - struct rte_event_dev_info dev_info; int socket_id; uint8_t i; int ret; @@ -361,17 +360,6 @@ rte_event_crypto_adapter_create_ext(uint8_t id, uint8_t dev_id, return -ENOMEM; } - ret = rte_event_dev_info_get(dev_id, &dev_info); - if (ret < 0) { - RTE_EDEV_LOG_ERR("Failed to get info for eventdev %d: %s!", - dev_id, dev_info.driver_name); - eca_circular_buffer_free(&adapter->ebuf); - rte_free(adapter); - return ret; - } - - adapter->implicit_release_disabled = (dev_info.event_dev_cap & - RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE); adapter->eventdev_id = dev_id; adapter->socket_id = socket_id; adapter->conf_cb = conf_cb; @@ -837,6 +825,7 @@ eca_init_service(struct event_crypto_adapter *adapter, uint8_t id) struct rte_event_crypto_adapter_conf adapter_conf; struct rte_service_spec service; int ret; + uint32_t impl_rel; if (adapter->service_inited) return 0; @@ -866,6 +855,19 @@ eca_init_service(struct event_crypto_adapter *adapter, uint8_t id) adapter->max_nb = adapter_conf.max_nb; adapter->event_port_id = adapter_conf.event_port_id; + + if (rte_event_port_attr_get(adapter->eventdev_id, + adapter->event_port_id, + RTE_EVENT_PORT_ATTR_IMPLICIT_RELEASE_DISABLE, + &impl_rel)) { + RTE_EDEV_LOG_ERR("Failed to get port info for eventdev %" PRId32, + adapter->eventdev_id); + eca_circular_buffer_free(&adapter->ebuf); + rte_free(adapter); + return -EINVAL; + } + + adapter->implicit_release_disabled = (uint8_t)impl_rel; adapter->service_inited = 1; return ret;