e3595539e0
Due to how the ena_com compatibility layer is written, all AQ commands triggering functions use stack to save results of AQ and then copy them to user given function. Therefore to keep the compatibility layer common, introduce ENA_PROXY macro. It either calls the wrapped function directly (in primary process) or proxies it to the primary via DPDK IPC mechanism. Since all proxied calls are taken under a lock share the result data through shared memory (in struct ena_adapter) to work around 256B IPC parameter size limit. New proxy calls can be added by 1. Adding a new message type at the end of enum ena_mp_req 2. Adding new message arguments to the struct ena_mp_body if needed 3. Defining proxy request descriptor with ENA_PROXY_DESC. Its arguments include handlers for request preparation and response processing. Any of those may be empty (aside of marking arguments as used). 4. Adding request handling logic to ena_mp_primary_handle() 5. Replacing proxied function calls with ENA_PROXY(adapter, <func>, ...) Signed-off-by: Stanislaw Kardach <kda@semihalf.com> Reviewed-by: Michal Krawczyk <mk@semihalf.com> Reviewed-by: Dawid Gorecki <dgr@semihalf.com> Reviewed-by: Shai Brandes <shaibran@amazon.com> |
||
---|---|---|
.ci | ||
.github/workflows | ||
app | ||
buildtools | ||
config | ||
devtools | ||
doc | ||
drivers | ||
examples | ||
kernel | ||
lib | ||
license | ||
usertools | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
ABI_VERSION | ||
MAINTAINERS | ||
Makefile | ||
meson_options.txt | ||
meson.build | ||
README | ||
VERSION |
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