-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'v6.8-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/…
…herbert/crypto-2.6 Pull crypto updates from Herbert Xu: "API: - Add incremental lskcipher/skcipher processing Algorithms: - Remove SHA1 from drbg - Remove CFB and OFB Drivers: - Add comp high perf mode configuration in hisilicon/zip - Add support for 420xx devices in qat - Add IAA Compression Accelerator driver" * tag 'v6.8-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (172 commits) crypto: iaa - Account for cpu-less numa nodes crypto: scomp - fix req->dst buffer overflow crypto: sahara - add support for crypto_engine crypto: sahara - remove error message for bad aes request size crypto: sahara - remove unnecessary NULL assignments crypto: sahara - remove 'active' flag from sahara_aes_reqctx struct crypto: sahara - use dev_err_probe() crypto: sahara - use devm_clk_get_enabled() crypto: sahara - use BIT() macro crypto: sahara - clean up macro indentation crypto: sahara - do not resize req->src when doing hash operations crypto: sahara - fix processing hash requests with req->nbytes < sg->length crypto: sahara - improve error handling in sahara_sha_process() crypto: sahara - fix wait_for_completion_timeout() error handling crypto: sahara - fix ahash reqsize crypto: sahara - handle zero-length aes requests crypto: skcipher - remove excess kerneldoc members crypto: shash - remove excess kerneldoc members crypto: qat - generate dynamically arbiter mappings crypto: qat - add support for ring pair level telemetry ...
- Loading branch information
Showing
205 changed files
with
10,084 additions
and
5,776 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,228 @@ | ||
What: /sys/kernel/debug/qat_<device>_<BDF>/telemetry/control | ||
Date: March 2024 | ||
KernelVersion: 6.8 | ||
Contact: qat-linux@intel.com | ||
Description: (RW) Enables/disables the reporting of telemetry metrics. | ||
|
||
Allowed values to write: | ||
======================== | ||
* 0: disable telemetry | ||
* 1: enable telemetry | ||
* 2, 3, 4: enable telemetry and calculate minimum, maximum | ||
and average for each counter over 2, 3 or 4 samples | ||
|
||
Returned values: | ||
================ | ||
* 1-4: telemetry is enabled and running | ||
* 0: telemetry is disabled | ||
|
||
Example. | ||
|
||
Writing '3' to this file starts the collection of | ||
telemetry metrics. Samples are collected every second and | ||
stored in a circular buffer of size 3. These values are then | ||
used to calculate the minimum, maximum and average for each | ||
counter. After enabling, counters can be retrieved through | ||
the ``device_data`` file:: | ||
|
||
echo 3 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/control | ||
|
||
Writing '0' to this file stops the collection of telemetry | ||
metrics:: | ||
|
||
echo 0 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/control | ||
|
||
This attribute is only available for qat_4xxx devices. | ||
|
||
What: /sys/kernel/debug/qat_<device>_<BDF>/telemetry/device_data | ||
Date: March 2024 | ||
KernelVersion: 6.8 | ||
Contact: qat-linux@intel.com | ||
Description: (RO) Reports device telemetry counters. | ||
Reads report metrics about performance and utilization of | ||
a QAT device: | ||
|
||
======================= ======================================== | ||
Field Description | ||
======================= ======================================== | ||
sample_cnt number of acquisitions of telemetry data | ||
from the device. Reads are performed | ||
every 1000 ms. | ||
pci_trans_cnt number of PCIe partial transactions | ||
max_rd_lat maximum logged read latency [ns] (could | ||
be any read operation) | ||
rd_lat_acc_avg average read latency [ns] | ||
max_gp_lat max get to put latency [ns] (only takes | ||
samples for AE0) | ||
gp_lat_acc_avg average get to put latency [ns] | ||
bw_in PCIe, write bandwidth [Mbps] | ||
bw_out PCIe, read bandwidth [Mbps] | ||
at_page_req_lat_avg Address Translator(AT), average page | ||
request latency [ns] | ||
at_trans_lat_avg AT, average page translation latency [ns] | ||
at_max_tlb_used AT, maximum uTLB used | ||
util_cpr<N> utilization of Compression slice N [%] | ||
exec_cpr<N> execution count of Compression slice N | ||
util_xlt<N> utilization of Translator slice N [%] | ||
exec_xlt<N> execution count of Translator slice N | ||
util_dcpr<N> utilization of Decompression slice N [%] | ||
exec_dcpr<N> execution count of Decompression slice N | ||
util_pke<N> utilization of PKE N [%] | ||
exec_pke<N> execution count of PKE N | ||
util_ucs<N> utilization of UCS slice N [%] | ||
exec_ucs<N> execution count of UCS slice N | ||
util_wat<N> utilization of Wireless Authentication | ||
slice N [%] | ||
exec_wat<N> execution count of Wireless Authentication | ||
slice N | ||
util_wcp<N> utilization of Wireless Cipher slice N [%] | ||
exec_wcp<N> execution count of Wireless Cipher slice N | ||
util_cph<N> utilization of Cipher slice N [%] | ||
exec_cph<N> execution count of Cipher slice N | ||
util_ath<N> utilization of Authentication slice N [%] | ||
exec_ath<N> execution count of Authentication slice N | ||
======================= ======================================== | ||
|
||
The telemetry report file can be read with the following command:: | ||
|
||
cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/device_data | ||
|
||
If ``control`` is set to 1, only the current values of the | ||
counters are displayed:: | ||
|
||
<counter_name> <current> | ||
|
||
If ``control`` is 2, 3 or 4, counters are displayed in the | ||
following format:: | ||
|
||
<counter_name> <current> <min> <max> <avg> | ||
|
||
If a device lacks of a specific accelerator, the corresponding | ||
attribute is not reported. | ||
|
||
This attribute is only available for qat_4xxx devices. | ||
|
||
What: /sys/kernel/debug/qat_<device>_<BDF>/telemetry/rp_<A/B/C/D>_data | ||
Date: March 2024 | ||
KernelVersion: 6.8 | ||
Contact: qat-linux@intel.com | ||
Description: (RW) Selects up to 4 Ring Pairs (RP) to monitor, one per file, | ||
and report telemetry counters related to each. | ||
|
||
Allowed values to write: | ||
======================== | ||
* 0 to ``<num_rps - 1>``: | ||
Ring pair to be monitored. The value of ``num_rps`` can be | ||
retrieved through ``/sys/bus/pci/devices/<BDF>/qat/num_rps``. | ||
See Documentation/ABI/testing/sysfs-driver-qat. | ||
|
||
Reads report metrics about performance and utilization of | ||
the selected RP: | ||
|
||
======================= ======================================== | ||
Field Description | ||
======================= ======================================== | ||
sample_cnt number of acquisitions of telemetry data | ||
from the device. Reads are performed | ||
every 1000 ms | ||
rp_num RP number associated with slot <A/B/C/D> | ||
service_type service associated to the RP | ||
pci_trans_cnt number of PCIe partial transactions | ||
gp_lat_acc_avg average get to put latency [ns] | ||
bw_in PCIe, write bandwidth [Mbps] | ||
bw_out PCIe, read bandwidth [Mbps] | ||
at_glob_devtlb_hit Message descriptor DevTLB hit rate | ||
at_glob_devtlb_miss Message descriptor DevTLB miss rate | ||
tl_at_payld_devtlb_hit Payload DevTLB hit rate | ||
tl_at_payld_devtlb_miss Payload DevTLB miss rate | ||
======================= ======================================== | ||
|
||
Example. | ||
|
||
Writing the value '32' to the file ``rp_C_data`` starts the | ||
collection of telemetry metrics for ring pair 32:: | ||
|
||
echo 32 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/rp_C_data | ||
|
||
Once a ring pair is selected, statistics can be read accessing | ||
the file:: | ||
|
||
cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/rp_C_data | ||
|
||
If ``control`` is set to 1, only the current values of the | ||
counters are displayed:: | ||
|
||
<counter_name> <current> | ||
|
||
If ``control`` is 2, 3 or 4, counters are displayed in the | ||
following format:: | ||
|
||
<counter_name> <current> <min> <max> <avg> | ||
|
||
|
||
On QAT GEN4 devices there are 64 RPs on a PF, so the allowed | ||
values are 0..63. This number is absolute to the device. | ||
If Virtual Functions (VF) are used, the ring pair number can | ||
be derived from the Bus, Device, Function of the VF: | ||
|
||
============ ====== ====== ====== ====== | ||
PCI BDF/VF RP0 RP1 RP2 RP3 | ||
============ ====== ====== ====== ====== | ||
0000:6b:0.1 RP 0 RP 1 RP 2 RP 3 | ||
0000:6b:0.2 RP 4 RP 5 RP 6 RP 7 | ||
0000:6b:0.3 RP 8 RP 9 RP 10 RP 11 | ||
0000:6b:0.4 RP 12 RP 13 RP 14 RP 15 | ||
0000:6b:0.5 RP 16 RP 17 RP 18 RP 19 | ||
0000:6b:0.6 RP 20 RP 21 RP 22 RP 23 | ||
0000:6b:0.7 RP 24 RP 25 RP 26 RP 27 | ||
0000:6b:1.0 RP 28 RP 29 RP 30 RP 31 | ||
0000:6b:1.1 RP 32 RP 33 RP 34 RP 35 | ||
0000:6b:1.2 RP 36 RP 37 RP 38 RP 39 | ||
0000:6b:1.3 RP 40 RP 41 RP 42 RP 43 | ||
0000:6b:1.4 RP 44 RP 45 RP 46 RP 47 | ||
0000:6b:1.5 RP 48 RP 49 RP 50 RP 51 | ||
0000:6b:1.6 RP 52 RP 53 RP 54 RP 55 | ||
0000:6b:1.7 RP 56 RP 57 RP 58 RP 59 | ||
0000:6b:2.0 RP 60 RP 61 RP 62 RP 63 | ||
============ ====== ====== ====== ====== | ||
|
||
The mapping is only valid for the BDFs of VFs on the host. | ||
|
||
|
||
The service provided on a ring-pair varies depending on the | ||
configuration. The configuration for a given device can be | ||
queried and set using ``cfg_services``. | ||
See Documentation/ABI/testing/sysfs-driver-qat for details. | ||
|
||
The following table reports how ring pairs are mapped to VFs | ||
on the PF 0000:6b:0.0 configured for `sym;asym` or `asym;sym`: | ||
|
||
=========== ============ =========== ============ =========== | ||
PCI BDF/VF RP0/service RP1/service RP2/service RP3/service | ||
=========== ============ =========== ============ =========== | ||
0000:6b:0.1 RP 0 asym RP 1 sym RP 2 asym RP 3 sym | ||
0000:6b:0.2 RP 4 asym RP 5 sym RP 6 asym RP 7 sym | ||
0000:6b:0.3 RP 8 asym RP 9 sym RP10 asym RP11 sym | ||
... ... ... ... ... | ||
=========== ============ =========== ============ =========== | ||
|
||
All VFs follow the same pattern. | ||
|
||
|
||
The following table reports how ring pairs are mapped to VFs on | ||
the PF 0000:6b:0.0 configured for `dc`: | ||
|
||
=========== ============ =========== ============ =========== | ||
PCI BDF/VF RP0/service RP1/service RP2/service RP3/service | ||
=========== ============ =========== ============ =========== | ||
0000:6b:0.1 RP 0 dc RP 1 dc RP 2 dc RP 3 dc | ||
0000:6b:0.2 RP 4 dc RP 5 dc RP 6 dc RP 7 dc | ||
0000:6b:0.3 RP 8 dc RP 9 dc RP10 dc RP11 dc | ||
... ... ... ... ... | ||
=========== ============ =========== ============ =========== | ||
|
||
The mapping of a RP to a service can be retrieved using | ||
``rp2srv`` from sysfs. | ||
See Documentation/ABI/testing/sysfs-driver-qat for details. | ||
|
||
This attribute is only available for qat_4xxx devices. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
.. SPDX-License-Identifier: GPL-2.0 | ||
Hardware Device Driver Specific Documentation | ||
--------------------------------------------- | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
octeontx2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
.. SPDX-License-Identifier: GPL-2.0 | ||
========================= | ||
octeontx2 devlink support | ||
========================= | ||
|
||
This document describes the devlink features implemented by the ``octeontx2 CPT`` | ||
device drivers. | ||
|
||
Parameters | ||
========== | ||
|
||
The ``octeontx2`` driver implements the following driver-specific parameters. | ||
|
||
.. list-table:: Driver-specific parameters implemented | ||
:widths: 5 5 5 85 | ||
|
||
* - Name | ||
- Type | ||
- Mode | ||
- Description | ||
* - ``t106_mode`` | ||
- u8 | ||
- runtime | ||
- Used to configure CN10KA B0/CN10KB CPT to work as CN10KA A0/A1. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
86 changes: 86 additions & 0 deletions
86
Documentation/devicetree/bindings/crypto/inside-secure,safexcel.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/crypto/inside-secure,safexcel.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Inside Secure SafeXcel cryptographic engine | ||
|
||
maintainers: | ||
- Antoine Tenart <atenart@kernel.org> | ||
|
||
properties: | ||
compatible: | ||
oneOf: | ||
- const: inside-secure,safexcel-eip197b | ||
- const: inside-secure,safexcel-eip197d | ||
- const: inside-secure,safexcel-eip97ies | ||
- const: inside-secure,safexcel-eip197 | ||
description: Equivalent of inside-secure,safexcel-eip197b | ||
deprecated: true | ||
- const: inside-secure,safexcel-eip97 | ||
description: Equivalent of inside-secure,safexcel-eip97ies | ||
deprecated: true | ||
|
||
reg: | ||
maxItems: 1 | ||
|
||
interrupts: | ||
maxItems: 6 | ||
|
||
interrupt-names: | ||
items: | ||
- const: ring0 | ||
- const: ring1 | ||
- const: ring2 | ||
- const: ring3 | ||
- const: eip | ||
- const: mem | ||
|
||
clocks: | ||
minItems: 1 | ||
maxItems: 2 | ||
|
||
clock-names: | ||
minItems: 1 | ||
items: | ||
- const: core | ||
- const: reg | ||
|
||
required: | ||
- reg | ||
- interrupts | ||
- interrupt-names | ||
|
||
allOf: | ||
- if: | ||
properties: | ||
clocks: | ||
minItems: 2 | ||
then: | ||
properties: | ||
clock-names: | ||
minItems: 2 | ||
required: | ||
- clock-names | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
- | | ||
#include <dt-bindings/interrupt-controller/arm-gic.h> | ||
#include <dt-bindings/interrupt-controller/irq.h> | ||
crypto@800000 { | ||
compatible = "inside-secure,safexcel-eip197b"; | ||
reg = <0x800000 0x200000>; | ||
interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, | ||
<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, | ||
<GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | ||
<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, | ||
<GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, | ||
<GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; | ||
interrupt-names = "ring0", "ring1", "ring2", "ring3", "eip", "mem"; | ||
clocks = <&cpm_syscon0 1 26>; | ||
clock-names = "core"; | ||
}; |
Oops, something went wrong.