aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto/caam
diff options
context:
space:
mode:
authorKim Phillips <kim.phillips@freescale.com>2012-06-22 20:48:53 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2012-06-27 02:42:06 -0400
commit1a076689cda8a1d623dcda170b2dc2b476cc6f1a (patch)
tree4c71eb88be4803eb8fd3b60884e8e9b2bc496b5e /drivers/crypto/caam
parent281922a1d4f59bdebbe78c1d9f4c50a967eb6cff (diff)
crypto: caam - disable IRQ coalescing by default
It has been observed that in zero-loss benchmarks, when a slow traffic rate is being tested, the IRQ timer coalescing parameter was set too high, and the ethernet controller would start dropping packets because the job ring back half wouldn't be executed in time before the ethernet controller would fill its buffers, thereby significantly reducing the zero-loss performance figures. Empirical testing has shown that the best zero-loss performance is achieved when IRQ coalescing is set to minimum values and/or turned off, since apparently the job ring driver already implements an adequately-performing general-purpose IRQ mitigation strategy in software. Whilst we could go with minimal count (2-8) and timing settings (192-256), we prefer just turning h/w coalescing altogether off to minimize setkey latency (due to split key generation), and for consistent cross-SoC performance (the SEC vs. core clock ratio changes). Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/caam')
-rw-r--r--drivers/crypto/caam/Kconfig5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/crypto/caam/Kconfig b/drivers/crypto/caam/Kconfig
index 502a7f3cca5f..65c7668614ab 100644
--- a/drivers/crypto/caam/Kconfig
+++ b/drivers/crypto/caam/Kconfig
@@ -32,10 +32,13 @@ config CRYPTO_DEV_FSL_CAAM_RINGSIZE
32config CRYPTO_DEV_FSL_CAAM_INTC 32config CRYPTO_DEV_FSL_CAAM_INTC
33 bool "Job Ring interrupt coalescing" 33 bool "Job Ring interrupt coalescing"
34 depends on CRYPTO_DEV_FSL_CAAM 34 depends on CRYPTO_DEV_FSL_CAAM
35 default y 35 default n
36 help 36 help
37 Enable the Job Ring's interrupt coalescing feature. 37 Enable the Job Ring's interrupt coalescing feature.
38 38
39 Note: the driver already provides adequate
40 interrupt coalescing in software.
41
39config CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD 42config CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD
40 int "Job Ring interrupt coalescing count threshold" 43 int "Job Ring interrupt coalescing count threshold"
41 depends on CRYPTO_DEV_FSL_CAAM_INTC 44 depends on CRYPTO_DEV_FSL_CAAM_INTC