linux/drivers
Lucas Segarra Fernandez 69e7649f7c crypto: qat - add support for device telemetry
Expose through debugfs device telemetry data for QAT GEN4 devices.

This allows to gather metrics about the performance and the utilization
of a device. In particular, statistics on (1) the utilization of the
PCIe channel, (2) address translation, when SVA is enabled and (3) the
internal engines for crypto and data compression.

If telemetry is supported by the firmware, the driver allocates a DMA
region and a circular buffer. When telemetry is enabled, through the
`control` attribute in debugfs, the driver sends to the firmware, via
the admin interface, the `TL_START` command. This triggers the device to
periodically gather telemetry data from hardware registers and write it
into the DMA memory region. The device writes into the shared region
every second.

The driver, every 500ms, snapshots the DMA shared region into the
circular buffer. This is then used to compute basic metric
(min/max/average) on each counter, every time the `device_data` attribute
is queried.

Telemetry counters are exposed through debugfs in the folder
/sys/kernel/debug/qat_<device>_<BDF>/telemetry.

For details, refer to debugfs-driver-qat_telemetry in Documentation/ABI.

This patch is based on earlier work done by Wojciech Ziemba.

Signed-off-by: Lucas Segarra Fernandez <lucas.segarra.fernandez@intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Damian Muszynski <damian.muszynski@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2023-12-29 11:25:55 +08:00
..
accel Merge tag 'drm-misc-fixes-2023-11-08' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2023-11-10 16:57:49 +01:00
accessibility
acpi RISC-V Patches for the 6.7 Merge Window, Part 1 2023-11-08 09:21:18 -08:00
amba
android Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
ata ata: pata_gayle: Convert to platform remove callback returning void 2023-11-08 09:00:49 +09:00
atm pci-v6.7-changes 2023-11-02 14:05:18 -10:00
auxdisplay
base regmap: Fix for v6.7 2023-11-07 16:56:10 -08:00
bcma
block nbd: fix uaf in nbd_open 2023-11-07 08:14:57 -07:00
bluetooth Bluetooth: btmtksdio: enable bluetooth wakeup in system suspend 2023-10-23 11:04:51 -07:00
bus SoC driver updates for 6.7 2023-11-01 14:46:51 -10:00
cache riscv: RISCV_NONSTANDARD_CACHE_OPS shouldn't depend on RISCV_DMA_NONCOHERENT 2023-10-26 09:42:37 +02:00
cdrom
cdx Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
char hwrng: starfive - Add runtime pm ops 2023-12-22 12:30:19 +08:00
clk SoC driver updates for 6.7 2023-11-01 14:46:51 -10:00
clocksource RISC-V Patches for the 6.7 Merge Window, Part 2 2023-11-10 09:23:17 -08:00
comedi
connector Fix NULL pointer dereference in cn_filter() 2023-10-24 10:53:45 +02:00
counter
cpufreq Merge branch 'pm-cpufreq' 2023-11-07 20:45:12 +01:00
cpuidle
crypto crypto: qat - add support for device telemetry 2023-12-29 11:25:55 +08:00
cxl cxl/pci: Change CXL AER support check to use native AER 2023-11-02 14:09:01 -07:00
dax Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
dca
devfreq
dio
dma dmaengine: idxd: Add support for device/wq defaults 2023-12-15 17:52:53 +08:00
dma-buf As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
dpll
edac hardening updates for v6.7-rc1 2023-10-30 19:09:55 -10:00
eisa
extcon
firewire firewire: Annotate struct fw_node with __counted_by 2023-11-05 21:15:17 +09:00
firmware RISC-V Patches for the 6.7 Merge Window, Part 2 2023-11-10 09:23:17 -08:00
fpga Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
fsi
gnss
gpio pwm: Changes for v6.7-rc1 2023-11-09 13:47:52 -08:00
gpu drm fixes for 6.7-rc1 2023-11-10 14:59:30 -08:00
greybus greybus: Add BeaglePlay Linux Driver 2023-10-27 13:19:04 +02:00
hid Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
hsi
hte hte: Changes for v6.7-rc1 2023-10-31 18:32:51 -10:00
hv TTY/Serial changes for 6.7-rc1 2023-11-03 15:44:25 -10:00
hwmon hwmon updates for v6.7-rc1 2023-10-31 17:44:17 -10:00
hwspinlock
hwtracing
i2c i2c: cp2615: Fix 'assignment to __be16' warning 2023-11-08 10:27:17 +01:00
i3c I3C for 6.7 2023-11-04 16:25:36 -10:00
idle
iio Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
infiniband RDMA for v6.7 2023-11-02 15:20:30 -10:00
input Input updates for 6.7 merge window: 2023-11-09 14:18:42 -08:00
interconnect
iommu IOMMU Updates for Linux v6.7 2023-11-09 13:37:28 -08:00
ipack
irqchip arm64 fixes: 2023-11-10 12:22:14 -08:00
isdn hardening updates for v6.7-rc1 2023-10-30 19:09:55 -10:00
leds pwm: Changes for v6.7-rc1 2023-11-09 13:47:52 -08:00
macintosh powerpc updates for 6.7 2023-11-03 10:07:39 -10:00
mailbox Moving repo 2023-11-05 18:45:32 -08:00
mcb
md Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
media media updates for v6.7-rc1 2023-11-06 15:06:06 -08:00
memory IOMMU Updates for Linux v6.7 2023-11-09 13:37:28 -08:00
memstick
message scsi: message: fusion: Initialize return value in mptfc_bus_reset() 2023-10-24 22:36:39 -04:00
mfd - Core Frameworks 2023-11-02 14:40:51 -10:00
misc RISC-V Patches for the 6.7 Merge Window, Part 1 2023-11-08 09:21:18 -08:00
mmc mmc: sdhci-pci-gli: GL9750: Mask the replay timer timeout of AER 2023-11-07 13:08:12 +01:00
most
mtd - removed AR7 platform support 2023-11-10 09:19:46 -08:00
mux
net wifi: iwlwifi: fix system commands group ordering 2023-11-12 11:34:19 -08:00
nfc
ntb
nubus
nvdimm
nvme nvme: keyring: fix conditional compilation 2023-11-08 08:07:08 -08:00
nvmem Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
of RISC-V Patches for the 6.7 Merge Window, Part 2 2023-11-10 09:23:17 -08:00
opp
parisc parisc/power: Trivial whitespace cleanups and license update 2023-10-30 14:54:40 +01:00
parport parport: gsc: mark init function static 2023-11-10 08:41:23 +01:00
pci cxl for v6.7 2023-11-04 16:20:36 -10:00
pcmcia PCMCIA odd cleanups and fixes for v6.7-rc1 2023-11-07 16:40:42 -08:00
peci
perf arm64 fixes: 2023-11-10 12:22:14 -08:00
phy phy-for-6.6 2023-11-03 19:06:12 -10:00
pinctrl pinctrl: nuvoton: npcm8xx: drop wrappers around pinctrl_gpio_request/free() 2023-11-04 10:23:23 +01:00
platform Major microcode loader restructuring, cleanup and improvements by Thomas 2023-11-04 08:46:37 -10:00
pmdomain SoC driver updates for 6.7 2023-11-01 14:46:51 -10:00
pnp
power USB/Thunderbolt changes for 6.7-rc1 2023-11-03 16:00:42 -10:00
powercap powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() 2023-10-24 22:07:07 +02:00
pps
ps3
ptp ptp: fix corrupted list in ptp_open 2023-11-08 18:47:07 -08:00
pwm pwm: samsung: Fix a bit test in pwm_samsung_resume() 2023-11-10 09:20:48 +01:00
rapidio
ras
regulator regulator: Merge up pending fix 2023-10-30 13:14:27 +00:00
remoteproc
reset reset: Annotate struct reset_control_array with __counted_by 2023-10-24 14:10:04 -07:00
rpmsg rpmsg: virtio: Replace deprecated strncpy with strscpy/_pad 2023-10-23 13:11:07 -06:00
rtc RTC for 6.7 2023-11-05 18:49:40 -08:00
s390 Including fixes from netfilter and bpf. 2023-11-09 17:09:35 -08:00
sbus
scsi As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
sh sh: Remove superhyway bus support 2023-10-25 16:50:11 +02:00
siox
slimbus
soc powerpc updates for 6.7 2023-11-03 10:07:39 -10:00
soundwire soundwire updates for 6.7 2023-11-03 19:10:41 -10:00
spi spi: Fixes for v6.7 2023-11-10 11:44:38 -08:00
spmi spmi: rename spmi device lookup helper 2023-11-01 10:02:18 +00:00
ssb
staging pwm: Changes for v6.7-rc1 2023-11-09 13:47:52 -08:00
target SCSI misc on 20231102 2023-11-02 15:13:50 -10:00
tc
tee
thermal Thermal control updates for 6.7-rc1 2023-10-31 15:28:37 -10:00
thunderbolt USB/Thunderbolt changes for 6.7-rc1 2023-11-03 16:00:42 -10:00
tty - removed AR7 platform support 2023-11-10 09:19:46 -08:00
ufs SCSI misc on 20231102 2023-11-02 15:13:50 -10:00
uio
usb USB/Thunderbolt changes for 6.7-rc1 2023-11-03 16:00:42 -10:00
vdpa vdpa_sim: implement .reset_map support 2023-11-01 09:20:00 -04:00
vfio Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
vhost vhost,virtio,vdpa: features, fixes, cleanups 2023-11-05 09:02:32 -10:00
video fbdev: fsl-diu-fb: mark wr_reg_wa() static 2023-11-10 09:16:02 +01:00
virt configfs-tsm for v6.7 2023-11-04 15:58:13 -10:00
virtio vhost,virtio,vdpa: features, fixes, cleanups 2023-11-05 09:02:32 -10:00
w1
watchdog - removed AR7 platform support 2023-11-10 09:19:46 -08:00
xen Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
zorro
Kconfig - removed AR7 platform support 2023-11-10 09:19:46 -08:00
Makefile - removed AR7 platform support 2023-11-10 09:19:46 -08:00