From patchwork Tue Apr 18 09:16:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ganapati Kundapura X-Patchwork-Id: 126226 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 F38944297B; Tue, 18 Apr 2023 11:16:21 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CF26040EDF; Tue, 18 Apr 2023 11:16:21 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 074F540698 for ; Tue, 18 Apr 2023 11:16:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1681809381; x=1713345381; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=xxdzT28kFCwS+FCspQJkdtqABdzVqL6FFzoaFEApkGM=; b=HwH3oEknrTLJhAy6kCwBu4Ep70Oo+9z21lCWlMUGCmSCfbt1l0Z+GR4s no0ycw9Gp3OnBW5xKqxWptBbtKAKnpAO9c/eWebev6mvIgvK+gA6H8mnJ tACsRxOVV4kiNyqgtzuYvsxRsHi5PvUhDC7rxwS50BFAQBGRzs8TdSo3r j0B4jMwF0v+kuq1+ScI7UkUyn1eiLt2d0OK1HzeIuHhnBDBDYQoaseRqR 07ZXiq3IDWR1C4Uzn59MSLJMc2T3oHbTsh/KguQNxEhSm4fntNBCRL3UD VGWsWl8i3bQ1bAigyqsi6xOMRV3IYUU1Ixo/OoTvqzeVzB/TWVpcdBMoD Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10683"; a="345120047" X-IronPort-AV: E=Sophos;i="5.99,206,1677571200"; d="scan'208";a="345120047" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Apr 2023 02:16:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10683"; a="937187264" X-IronPort-AV: E=Sophos;i="5.99,206,1677571200"; d="scan'208";a="937187264" Received: from txandevlnx322.an.intel.com ([10.123.117.44]) by fmsmga006.fm.intel.com with ESMTP; 18 Apr 2023 02:16:19 -0700 From: Ganapati Kundapura To: jerinj@marvell.com, abhinandan.gujjar@intel.com, dev@dpdk.org Cc: s.v.naga.harish.k@intel.com, jay.jayatheerthan@intel.com Subject: [PATCH v1] eventdev/crypto: refactor circular buffer size Date: Tue, 18 Apr 2023 04:16:15 -0500 Message-Id: <20230418091616.1388517-1-ganapati.kundapura@intel.com> X-Mailer: git-send-email 2.23.0 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 case of CRYPTO_ADAPTER_OPS_BUFFER_SZ is modified, eca_circular_buffer_space_for_batch() also needs to be updated to check maximum number of crypto ops can be accommodated in circular buffer when CPM becomes busy. Defined MAX_OPS_IN_BUFFER which contains size for batch of dequeued events and redefined CRYPTO_ADAPTER_OPS_BUFFER_SZ in terms of MAX_OPS_IN_BUFFER. This patch makes eca_circular_buffer_space_for_batch() independent of circular buffer changes. Signed-off-by: Ganapati Kundapura Acked-by: Abhinandan Gujjar diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c index f6c1e53..52a28e5 100644 --- a/lib/eventdev/rte_event_crypto_adapter.c +++ b/lib/eventdev/rte_event_crypto_adapter.c @@ -25,7 +25,14 @@ #define CRYPTO_ADAPTER_MEM_NAME_LEN 32 #define CRYPTO_ADAPTER_MAX_EV_ENQ_RETRIES 100 -#define CRYPTO_ADAPTER_OPS_BUFFER_SZ (BATCH_SIZE + BATCH_SIZE) +/* MAX_OPS_IN_BUFFER contains size for batch of dequeued events */ +#define MAX_OPS_IN_BUFFER BATCH_SIZE + +/* CRYPTO_ADAPTER_OPS_BUFFER_SZ to accommodate MAX_OPS_IN_BUFFER + + * additional space for one batch + */ +#define CRYPTO_ADAPTER_OPS_BUFFER_SZ (MAX_OPS_IN_BUFFER + BATCH_SIZE) + #define CRYPTO_ADAPTER_BUFFER_SZ 1024 /* Flush an instance's enqueue buffers every CRYPTO_ENQ_FLUSH_THRESHOLD @@ -188,7 +195,8 @@ eca_circular_buffer_batch_ready(struct crypto_ops_circular_buffer *bufp) static inline bool eca_circular_buffer_space_for_batch(struct crypto_ops_circular_buffer *bufp) { - return (bufp->size - bufp->count) >= BATCH_SIZE; + /* circular buffer can have atmost MAX_OPS_IN_BUFFER */ + return (bufp->size - bufp->count) >= MAX_OPS_IN_BUFFER; } static inline void