From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B7B68A0A0C; Tue, 29 Jun 2021 14:36:08 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 37035411C5; Tue, 29 Jun 2021 14:36:08 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id 5170340E01 for ; Tue, 29 Jun 2021 14:36:07 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10029"; a="206313044" X-IronPort-AV: E=Sophos;i="5.83,308,1616482800"; d="scan'208";a="206313044" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jun 2021 05:36:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,308,1616482800"; d="scan'208";a="643692742" Received: from silpixa00400272.ir.intel.com (HELO silpixa00400272.ger.corp.intel.com) ([10.237.223.111]) by fmsmga005.fm.intel.com with ESMTP; 29 Jun 2021 05:36:04 -0700 From: Kai Ji To: dev@dpdk.org Cc: roy.fan.zhang@intel.com, Kai Ji , pablo.de.lara.guarch@intel.com Date: Tue, 29 Jun 2021 13:36:02 +0100 Message-Id: <20210629123602.27702-1-kai.ji@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [dpdk-dev v1] crypto/aesni_gcm: fix performance issue 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" This patch fixes the aesni_gcm performance issue on systems with AVX512 CPU flag presented but with VAES CPU flag missing, such as Skylake. Fixes: 81fe96a0cece ("crypto/aesni_gcm: use architecture independent API") Cc: pablo.de.lara.guarch@intel.com Signed-off-by: Kai Ji --- drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c index bc87e44a9d..f8dea484b4 100644 --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c @@ -842,8 +842,14 @@ aesni_gcm_create(const char *name, init_mb_mgr_avx2(mb_mgr); break; case RTE_AESNI_GCM_AVX512: - dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX512; - init_mb_mgr_avx512(mb_mgr); + if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_VAES)) { + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX512; + init_mb_mgr_avx512(mb_mgr); + } else { + dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX2; + init_mb_mgr_avx2(mb_mgr); + vector_mode = RTE_AESNI_GCM_AVX2; + } break; default: AESNI_GCM_LOG(ERR, "Unsupported vector mode %u\n", vector_mode); -- 2.17.1