linux/drivers/crypto
Damian Muszynski d9fb840837 crypto: qat - add rate limiting feature to qat_4xxx
The Rate Limiting (RL) feature allows to control the rate of 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 driver provides a mechanism that allows users to set policies, that
are programmed to the device. The device is then enforcing those policies.

Configuration of RL is accomplished through entities called SLAs
(Service Level Agreement). Each SLA object gets a unique identifier
and defines the limitations for a single service across up to four
ring pairs (RPs count allocated to a single VF).

The rate is determined using two fields:
  * CIR (Committed Information Rate), i.e., the guaranteed rate.
  * PIR (Peak Information Rate), i.e., the maximum rate achievable
    when the device has available resources.
The rate values are expressed in permille scale i.e. 0-1000.
Ring pair selection is achieved by providing a 64-bit mask, where
each bit corresponds to one of the ring pairs.

This adds an interface and logic that allow to add, update, retrieve
and remove an SLA.

Signed-off-by: Damian Muszynski <damian.muszynski@intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Tero Kristo <tero.kristo@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2023-10-27 18:04:28 +08:00
..
allwinner crypto: sun8i-ss - Convert to platform remove callback returning void 2023-10-27 18:04:25 +08:00
amcc crypto: amcc/crypto4xx - Convert to platform remove callback returning void 2023-10-27 18:04:25 +08:00
amlogic crypto: amlogic-gxl-core - Convert to platform remove callback returning void 2023-10-27 18:04:25 +08:00
aspeed crypto: aspeed-hace - Convert to platform remove callback returning void 2023-10-27 18:04:25 +08:00
axis crypto: axis/artpec6 - Convert to platform remove callback returning void 2023-10-27 18:04:25 +08:00
bcm crypto: bcm/cipher - Convert to platform remove callback returning void 2023-10-27 18:04:25 +08:00
caam crypto: caam/jr - Convert to platform remove callback returning void 2023-10-27 18:04:25 +08:00
cavium crypto: cavium/nitrox - refactor deprecated strncpy 2023-09-20 13:15:29 +08:00
ccp crypto: ccp/sp - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
ccree crypto: ccree/cc - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
chelsio crypto: chelsio - Remove unused declarations 2023-08-25 18:46:55 +08:00
gemini crypto: gemini/sl3516-ce - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
hisilicon crypto: hisilicon/qm - prevent soft lockup in receive loop 2023-10-27 18:04:27 +08:00
inside-secure crypto: inside-secure/safexcel - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
intel crypto: qat - add rate limiting feature to qat_4xxx 2023-10-27 18:04:28 +08:00
marvell crypto: marvell/cesa - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
nx crypto: nx - fix build warnings when DEBUG_FS is not enabled 2023-05-24 18:12:33 +08:00
qce crypto: qce - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
rockchip crypto: rockchip/rk3288 - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
starfive crypto: drivers - Explicitly include correct DT includes 2023-08-23 11:04:23 +08:00
stm32 crypto: stm32/cryp - Convert to platform remove callback returning void 2023-10-27 18:04:27 +08:00
virtio crypto: virtio - handle config changed by work queue 2023-10-20 13:35:55 +08:00
vmx crypto: vmx - Improved AES/XTS performance of 6-way unrolling for ppc 2023-09-15 18:29:45 +08:00
xilinx crypto: xilinx/zynqmp-sha - Convert to platform remove callback returning void 2023-10-27 18:04:27 +08:00
atmel-aes-regs.h
atmel-aes.c crypto: atmel-aes - Convert to platform remove callback returning void 2023-10-27 18:04:25 +08:00
atmel-authenc.h
atmel-ecc.c crypto: drivers - Explicitly include correct DT includes 2023-08-23 11:04:23 +08:00
atmel-i2c.c This update includes the following changes: 2023-02-21 18:10:50 -08:00
atmel-i2c.h This update includes the following changes: 2023-02-21 18:10:50 -08:00
atmel-sha-regs.h
atmel-sha.c crypto: atmel-sha - Convert to platform remove callback returning void 2023-10-27 18:04:25 +08:00
atmel-sha204a.c crypto: atmel - Switch i2c drivers back to use .probe() 2023-06-02 18:21:32 +08:00
atmel-tdes-regs.h
atmel-tdes.c crypto: atmel-tdes - Convert to platform remove callback returning void 2023-10-27 18:04:25 +08:00
exynos-rng.c crypto: exynos-rng - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
geode-aes.c
geode-aes.h
hifn_795x.c crypto: hifn_795x - Silence gcc format-truncation false positive warnings 2023-10-20 13:39:26 +08:00
img-hash.c crypto: img-hash - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
Kconfig crypto: qcom-rng - Add missing dependency on hw_random 2023-10-20 13:39:26 +08:00
Makefile crypto: starfive - Add crypto engine support 2023-05-19 16:46:22 +08:00
mxs-dcp.c crypto: mxs-dcp - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
n2_asm.S
n2_core.c crypto: n2_core - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
n2_core.h
omap-aes-gcm.c crypto: omap - Use new crypto_engine_op interface 2023-08-18 17:01:11 +08:00
omap-aes.c crypto: omap-aes - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
omap-aes.h crypto: omap - Use new crypto_engine_op interface 2023-08-18 17:01:11 +08:00
omap-crypto.c
omap-crypto.h
omap-des.c crypto: omap-des - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
omap-sham.c crypto: omap-sham - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
padlock-aes.c
padlock-sha.c
qcom-rng.c crypto: qcom-rng - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
s5p-sss.c crypto: s5p-sss - Convert to platform remove callback returning void 2023-10-27 18:04:27 +08:00
sa2ul.c crypto: sa2ul - Convert to platform remove callback returning void 2023-10-27 18:04:27 +08:00
sa2ul.h crypto: sa2ul - change unsafe data size limit to 255 bytes 2023-05-19 16:45:43 +08:00
sahara.c crypto: sahara - Convert to platform remove callback returning void 2023-10-27 18:04:27 +08:00
talitos.c crypto: talitos - Convert to platform remove callback returning void 2023-10-27 18:04:27 +08:00
talitos.h