Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp812177rwd; Thu, 15 Jun 2023 02:20:17 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6t/BsZzWELoZ/VccitYri+5qVyXki0ytOYifR+mv/Qb1EQ7FMSKLM/S/rvaLDEWpiFUJx1 X-Received: by 2002:a17:90b:17cf:b0:25e:9ae8:4693 with SMTP id me15-20020a17090b17cf00b0025e9ae84693mr975510pjb.4.1686820816872; Thu, 15 Jun 2023 02:20:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686820816; cv=none; d=google.com; s=arc-20160816; b=sR6aQfthKpRDIEqtYURL+owPoY1JK+7uMrAtnNAA3zfd8V7TV6hD0i8mYKK78/BfrI 1QZzcjpOFNYOFOujbFaS76ZCz2OGFczZKLaCAdgM2CS1hhFQQPrXNg5tDUOJuiKhNvS+ sbHlce+bkIGpHuaWMuURnenSU9dDkf2Ez7RuL7mpW4pDoSQHcmWxvmdU0QeN0tBxrm2o t5yCssqjMrsvD2Ar4PycglVopAzqDxCJ2eSpCwx8Eak2uyZSu0b/mOruzNOcTfIYPT58 yTydrBDYduHMgH40tWC21076QeumPOj33zsSlYZ04Uv9HPGxgKZl6xJHuCI2HWRmumno 1XSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:organization :mime-version:message-id:date:subject:cc:to:from:dkim-signature; bh=C6ZFhTmPmgV1j7LnjEMjWqmvcea2dT4rYQ2pkbhL2jw=; b=knPxh2NlFmExjnlqDHGxTTPaxc2aTy9NXlVuwVlcTtiE/XKkqSVxyNk8V4nL9+1C8o xtwSMwi6iFd/sTyDHNhNSR01rY32e6xmyQDSo9l/FCBZpobWJqqtzA3z/Kh4bOHoZDu+ KJlbAuJKcf252mIf1laX717KMoP7wxzV2cPddEEmqbXj5SlJIG7LoEdA4OI/xNXyBXpZ 7Zb9dwOgOuAelIdNTwS6nLgYbWbM8vAzXzb6d7LUiKQyw5rKwBXxvY/mVSW2VjjpQdXn XnGlRZ6As20C5qAUfes8aNWOMkOgKINTHKFSJ8CWQEsQFl2JqD0rEas4teGBjR9FUelv XAtg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="Voy/csoX"; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 200-20020a6302d1000000b0054fd60530bfsi2918647pgc.590.2023.06.15.02.20.03; Thu, 15 Jun 2023 02:20:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="Voy/csoX"; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240422AbjFOJRV (ORCPT + 99 others); Thu, 15 Jun 2023 05:17:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52268 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238942AbjFOJRU (ORCPT ); Thu, 15 Jun 2023 05:17:20 -0400 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A70B61FFF for ; Thu, 15 Jun 2023 02:17:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686820635; x=1718356635; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=+102agyAT071SQItX3BAM1KckZ5MVn/E/jFwivIKVAA=; b=Voy/csoX3eHS6fxOr77ZBzSVygCjeTemkv5yr0Zwlx+0ST3HpGa6OU2N /Bmr0cjcf/N5/bGOdAWEnaWQ4v2Ek4m0o3kI3Ji9nFd2zbnG3cn54avEb 3CYSQ5kQKLT5EkzqphP2scPAjDoX8exK16gThVmz3aWM3qtWtbQzUgoVT jP8mgmlUIi5E5YySiMlO51YVYNSGx8yBXXAQpjxbfYwZEMKiLC3jxupHL jggcVyRx5WANYt7G4rl8FfNeTic93hAiKN0VPH5g/J2a/BjcuCFGUq1Qt je+ooykLmGop97KgI5SSnp1kJUhafQbMVIeFpO3HARPyuoEU2/h96FxQr w==; X-IronPort-AV: E=McAfee;i="6600,9927,10741"; a="356350644" X-IronPort-AV: E=Sophos;i="6.00,244,1681196400"; d="scan'208";a="356350644" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jun 2023 02:17:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10741"; a="782456103" X-IronPort-AV: E=Sophos;i="6.00,244,1681196400"; d="scan'208";a="782456103" Received: from r031s002_zp31l10c01.gv.intel.com (HELO localhost.localdomain) ([10.219.171.29]) by fmsmga004.fm.intel.com with ESMTP; 15 Jun 2023 02:17:14 -0700 From: Damian Muszynski To: herbert@gondor.apana.org.au Cc: linux-crypto@vger.kernel.org, qat-linux@intel.com, Damian Muszynski , Giovanni Cabiddu , Andy Shevchenko Subject: [PATCH 0/4] crypto: qat - add heartbeat feature Date: Thu, 15 Jun 2023 11:04:33 +0200 Message-Id: <20230615090437.436796-1-damian.muszynski@intel.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Organization: Intel Technology Poland sp. z o.o. - ul. Slowackiego 173, 80-298 Gdansk - KRS 101882 - NIP 957-07-52-316 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org This set introduces support for the QAT heartbeat feature. It allows detection whenever device firmware or acceleration unit will hang. We're adding this feature to allow our clients having a tool with they could verify if all of the Quick Assist hardware resources are healthy and operational. QAT device firmware periodically writes counters to a specified physical memory location. A pair of counters per thread is incremented at the start and end of the main processing loop within the firmware. Checking for Heartbeat consists of checking the validity of the pair of counter values for each thread. Stagnant counters indicate a firmware hang. The first patch removes historical and never used HB definitions. Patch no. 2 is implementing the hardware clock frequency measuring interface. The third introduces the main heartbeat implementation with the debugfs interface. The last patch implements an algorithm that allows the code to detect which version of heartbeat API is used at the currently loaded firmware. Signed-off-by: Damian Muszynski Reviewed-by: Giovanni Cabiddu Reviewed-by: Andy Shevchenko Damian Muszynski (4): crypto: qat - drop obsolete heartbeat interface crypto: qat - add measure clock frequency crypto: qat - add heartbeat feature crypto: qat - add heartbeat counters check Documentation/ABI/testing/debugfs-driver-qat | 51 +++ .../intel/qat/qat_4xxx/adf_4xxx_hw_data.c | 11 + .../intel/qat/qat_4xxx/adf_4xxx_hw_data.h | 4 + drivers/crypto/intel/qat/qat_4xxx/adf_drv.c | 3 + .../intel/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 28 ++ .../intel/qat/qat_c3xxx/adf_c3xxx_hw_data.h | 7 + .../intel/qat/qat_c62x/adf_c62x_hw_data.c | 28 ++ .../intel/qat/qat_c62x/adf_c62x_hw_data.h | 7 + drivers/crypto/intel/qat/qat_common/Makefile | 3 + .../intel/qat/qat_common/adf_accel_devices.h | 10 + .../crypto/intel/qat/qat_common/adf_admin.c | 31 ++ .../intel/qat/qat_common/adf_cfg_strings.h | 2 + .../crypto/intel/qat/qat_common/adf_clock.c | 127 +++++++ .../crypto/intel/qat/qat_common/adf_clock.h | 14 + .../intel/qat/qat_common/adf_common_drv.h | 2 + .../crypto/intel/qat/qat_common/adf_dbgfs.c | 9 +- .../intel/qat/qat_common/adf_gen2_config.c | 7 + .../intel/qat/qat_common/adf_gen2_hw_data.h | 3 + .../intel/qat/qat_common/adf_gen4_hw_data.h | 3 + .../intel/qat/qat_common/adf_heartbeat.c | 327 ++++++++++++++++++ .../intel/qat/qat_common/adf_heartbeat.h | 79 +++++ .../qat/qat_common/adf_heartbeat_dbgfs.c | 194 +++++++++++ .../qat/qat_common/adf_heartbeat_dbgfs.h | 12 + .../crypto/intel/qat/qat_common/adf_init.c | 15 + .../qat/qat_common/icp_qat_fw_init_admin.h | 20 +- .../qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 13 + .../qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 5 + 27 files changed, 998 insertions(+), 17 deletions(-) create mode 100644 drivers/crypto/intel/qat/qat_common/adf_clock.c create mode 100644 drivers/crypto/intel/qat/qat_common/adf_clock.h create mode 100644 drivers/crypto/intel/qat/qat_common/adf_heartbeat.c create mode 100644 drivers/crypto/intel/qat/qat_common/adf_heartbeat.h create mode 100644 drivers/crypto/intel/qat/qat_common/adf_heartbeat_dbgfs.c create mode 100644 drivers/crypto/intel/qat/qat_common/adf_heartbeat_dbgfs.h base-commit: 926f061ec16ed195331e950755fd74c897aefef3 -- 2.40.1