Go to file
Konstantin Ananyev 27e71c7fdc cryptodev: restore crypto op alignment and layout
in 18.08 new cache-aligned structure rte_crypto_asym_op was introduced.
As it also was included into rte_crypto_op, it caused implicit change
in rte_crypto_op layout and alignment: now rte_crypto_op is cache-line
aligned has a hole of 40/104 bytes between phys_addr and sym/asym op.
It looks like unintended ABI breakage, plus such change can cause
negative performance effects:
- now status and sym[0].m_src lies on different cache-lines, so
  post-process code would need extra cache-line read.
- new alignment causes grow of the space requirements and cache-line
  reads/updates for structures that contain rte_crypto_op inside.
As there seems no actual need to have rte_crypto_asym_op cache-line
aligned, and rte_crypto_asym_op is not intended to be used on it's own -
the simplest fix is just to remove cache-line alignment for it.
As the immediate positive effect: on IA ipsec-secgw performance increased
by 5-10% (depending on the crypto-dev and algo used).
My guess that on machines with 128B cache-line and lookaside-protocol
capable crypto devices the impact will be even more noticeable.

Fixes: 26008aaed1 ("cryptodev: add asymmetric xform and op definitions")
Cc: stable@dpdk.org

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
2019-03-22 14:27:46 +01:00
app app/testpmd: fix stdout flush after printing stats 2019-03-20 21:12:33 +01:00
buildtools config: add static linkage of mlx dependency 2019-01-14 17:44:29 +01:00
config mk: use linux and freebsd in config names 2019-03-12 23:05:06 +01:00
devtools devtools: fix meson build test to exit on failure 2019-03-13 11:09:55 +01:00
doc cryptodev: restore crypto op alignment and layout 2019-03-22 14:27:46 +01:00
drivers drivers/net: fix possible overflow using strlcat 2019-03-22 11:32:53 +01:00
examples examples/ethtool: remove query of default config 2019-03-20 18:15:42 +01:00
kernel build/freebsd: rename macro BSDPAPP to FREEBSD 2019-03-12 23:01:14 +01:00
lib cryptodev: restore crypto op alignment and layout 2019-03-22 14:27:46 +01:00
license fix dpdk.org URLs 2018-11-26 20:19:24 +01:00
mk mk: use linux and freebsd in config names 2019-03-12 23:05:06 +01:00
usertools mk: use linux and freebsd in config names 2019-03-12 23:05:06 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore git: ignore build directories 2019-03-13 11:57:05 +01:00
GNUmakefile test: move to app directory 2019-02-26 15:29:27 +01:00
MAINTAINERS eal/linux: rename linuxapp to linux 2019-03-12 17:31:13 +01:00
Makefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
meson_options.txt build: use integers for numerical options 2019-02-27 12:28:03 +01:00
meson.build build: bump minimum Meson version to 0.47.1 2019-02-27 12:12:27 +01:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org