Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp782957rdg; Wed, 11 Oct 2023 05:36:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHUO0w8/Dclrzb4XcTSOocO8cKE5jILBHIxZfnwN9PV3E60mA5+iFEsRayk8z4TYrRWm0jJ X-Received: by 2002:a17:902:ce8e:b0:1c7:49dd:2ff with SMTP id f14-20020a170902ce8e00b001c749dd02ffmr27336305plg.27.1697027772340; Wed, 11 Oct 2023 05:36:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697027772; cv=none; d=google.com; s=arc-20160816; b=S5ZM0Vq3DbaRzs7JY0kBg0SgvbWNoZvwANO0TTD289f3VH4tnNCkZ0OFs9lBCpNU83 iP9D1bhGTA5T4EgwIYZRRmqc/Gm3G9iVMflWoY+5/flJfus2K0kGhVa69GwWAI5or0Fl FXXrnYZwCMSzFdVvNoGnnAO2cp+4Smf00j4sWm0rb1lLFCT6l1JGpPwK3ZhFrdCn1QNv 1UJPuvAxjAwnDQHlo6rCHm2ykiWNQ/O4DeBHyOpgWwgDwMSWDC6Wy++6HdK1pa6yTy0f on7BG8nB2K2/atBgaTjQE1O5mXHe+n4pMDGmkNAjSOj3J9KdmLAopFY41iblO+s7jQFo CR4Q== 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=MhqioE6BSLKAolcRbXocSADNvxBBMRp9FpzDZQEPvrM=; fh=XqdEkhjmBInpao/02yRPNq+AS732UXSmrfhbTzcoPMc=; b=jm9XOp+7VZvrQazsMBZLKqIKz2W21RI/nWcQvOymfP+UPr8AbiX44kYE6JG9u3qeOK SnQLhu0OuQlG4eZ+/IlWc5uTJVOclEVnQlDE/0OkxXUiqJo84Z7xAdXmgZ9znbZG4tm8 9McW/UJKjnpp/i6gm7RhD0qu05Ldg1kwNc3cLlDShldCNKG2al44Xa8lzhNHeKnNmiRF 9SqeaiwA3bPW4t/HZ9QCYxYKOyyPQhAlzYdSmhvQlHfe6dFcOEAtovRaV+JMl7Tt0Awu pXc8E2seTzXhTKolrtQ0ss3hOomUdHELB/VhkACCsZMNih9jKIqydIcMvntTisZbfnP/ ODoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=aQAgSvCe; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::3:8 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 fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id b16-20020a170902d51000b001c76a06b5b5si3422220plg.298.2023.10.11.05.36.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Oct 2023 05:36:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=aQAgSvCe; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id B6D2181CEC73; Wed, 11 Oct 2023 05:36:05 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232105AbjJKMgE (ORCPT + 99 others); Wed, 11 Oct 2023 08:36:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231860AbjJKMgD (ORCPT ); Wed, 11 Oct 2023 08:36:03 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9FAAC91 for ; Wed, 11 Oct 2023 05:36:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1697027761; x=1728563761; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=m17LJAMyehFHIPf3/6Mgus+HYyeus7wd+kt7HUS2AXs=; b=aQAgSvCePr2pVRp0fktj4ftIK7efmMK0FhMCTQOpyLlGXN54mdDiCSX/ dIU5jgRDKOEnjsl+Tk+nizT3dcZxxhTvNUFo/G8EbQy8fUdogY55ycLts 4r1UsW5WmWE8Kyq10gGyVbx6yImJdxS8OQrmY/dp8DVm5PfwzQolJNl2o cfnMRc/t4Mgg2PsUCNCzaRLTHDzZDskjb9xguFnGUria77Rmivmdb755e KoSLmJhbTZygyJIBSG06dRZQY791alyagb79FKidTYYbqrGP3ZE0Tqaws fqTLqQUQ5vCdBgGuDdlnASrQZddntDLnS1H7YuTJ/yvq0eDOBgQv13p0D Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10860"; a="374992807" X-IronPort-AV: E=Sophos;i="6.03,216,1694761200"; d="scan'208";a="374992807" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Oct 2023 05:36:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10860"; a="870124619" X-IronPort-AV: E=Sophos;i="6.03,216,1694761200"; d="scan'208";a="870124619" Received: from r031s002_zp31l10c01.deacluster.intel.com (HELO localhost.localdomain) ([10.219.171.29]) by fmsmga002.fm.intel.com with ESMTP; 11 Oct 2023 05:35:59 -0700 From: Damian Muszynski To: herbert@gondor.apana.org.au Cc: linux-crypto@vger.kernel.org, qat-linux@intel.com, Damian Muszynski Subject: [PATCH 00/11] crypto: qat - add rate limiting feature to qat_4xxx Date: Wed, 11 Oct 2023 14:14:58 +0200 Message-ID: <20231011121934.45255-1-damian.muszynski@intel.com> X-Mailer: git-send-email 2.41.0 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=2.7 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Wed, 11 Oct 2023 05:36:06 -0700 (PDT) X-Spam-Level: ** This set introduces the rate limiting feature to the Intel QAT accelerator. The Rate Limiting allows control of the rate of the requests that can be submitted on a ring pair (RP). This allows sharing a QAT device among multiple users while ensuring a guaranteed throughput. The first six commits address minor reworks and additions necessary for the feature's implementation. The subsequent patch introduces a mechanism for retrieving firmware feature capabilities. Patch nr 8 implements the core of the rate limiting. The final three commits add the required sysfs interface for configuring this newly introduced feature. Ciunas Bennett (3): crypto: qat - add rate limiting sysfs interface crypto: qat - add rp2svc sysfs attribute crypto: qat - add num_rps sysfs attribute Damian Muszynski (4): units: Add BYTES_PER_*BIT crypto: qat - add bits.h to icp_qat_hw.h crypto: qat - add retrieval of fw capabilities crypto: qat - add rate limiting feature to qat_4xxx Giovanni Cabiddu (4): crypto: qat - refactor fw config related functions crypto: qat - use masks for AE groups crypto: qat - fix ring to service map for QAT GEN4 crypto: qat - move admin api Documentation/ABI/testing/sysfs-driver-qat | 46 + Documentation/ABI/testing/sysfs-driver-qat_rl | 227 ++++ .../intel/qat/qat_4xxx/adf_4xxx_hw_data.c | 190 ++- .../intel/qat/qat_4xxx/adf_4xxx_hw_data.h | 13 +- .../intel/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 1 + .../intel/qat/qat_c62x/adf_c62x_hw_data.c | 1 + drivers/crypto/intel/qat/qat_common/Makefile | 3 + .../intel/qat/qat_common/adf_accel_devices.h | 11 + .../crypto/intel/qat/qat_common/adf_admin.c | 73 + .../crypto/intel/qat/qat_common/adf_admin.h | 27 + .../crypto/intel/qat/qat_common/adf_clock.c | 1 + .../intel/qat/qat_common/adf_cnv_dbgfs.c | 1 + .../intel/qat/qat_common/adf_common_drv.h | 10 - .../intel/qat/qat_common/adf_fw_counters.c | 1 + .../intel/qat/qat_common/adf_gen4_hw_data.h | 7 + .../crypto/intel/qat/qat_common/adf_gen4_pm.c | 1 + .../qat/qat_common/adf_gen4_pm_debugfs.c | 1 + .../intel/qat/qat_common/adf_gen4_timer.c | 1 + .../intel/qat/qat_common/adf_heartbeat.c | 1 + .../qat/qat_common/adf_heartbeat_dbgfs.c | 1 + .../crypto/intel/qat/qat_common/adf_init.c | 12 + drivers/crypto/intel/qat/qat_common/adf_rl.c | 1186 +++++++++++++++++ drivers/crypto/intel/qat/qat_common/adf_rl.h | 176 +++ .../intel/qat/qat_common/adf_rl_admin.c | 98 ++ .../intel/qat/qat_common/adf_rl_admin.h | 18 + .../crypto/intel/qat/qat_common/adf_sysfs.c | 80 ++ .../intel/qat/qat_common/adf_sysfs_rl.c | 451 +++++++ .../intel/qat/qat_common/adf_sysfs_rl.h | 11 + .../qat/qat_common/icp_qat_fw_init_admin.h | 41 + .../crypto/intel/qat/qat_common/icp_qat_hw.h | 2 + .../qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 1 + include/linux/units.h | 4 + 32 files changed, 2624 insertions(+), 73 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-driver-qat_rl create mode 100644 drivers/crypto/intel/qat/qat_common/adf_admin.h create mode 100644 drivers/crypto/intel/qat/qat_common/adf_rl.c create mode 100644 drivers/crypto/intel/qat/qat_common/adf_rl.h create mode 100644 drivers/crypto/intel/qat/qat_common/adf_rl_admin.c create mode 100644 drivers/crypto/intel/qat/qat_common/adf_rl_admin.h create mode 100644 drivers/crypto/intel/qat/qat_common/adf_sysfs_rl.c create mode 100644 drivers/crypto/intel/qat/qat_common/adf_sysfs_rl.h -- 2.41.0