Re: [dpdk-dev] [PATCH v2 0/5] cryptodev: hide internal structures
From: Ananyev, Konstantin <hidden>
Date: 2021-10-15 18:39:02
Hi Akhil,
Structures rte_cryptodev and rte_cryptodev_data are not supposed to be directly used by the application. These are made public as they are used by inline datapath public APIs. This patchset, creates a new rte_cryptodev_core.h file which helps in defining a data structure to hold datapath APIs in a flat array based on the device identifier which is filled by the PMD. Similar series for ethdev and eventdev are also floated on ML. https://patchwork.dpdk.org/project/dpdk/list/?series=19428 https://patchwork.dpdk.org/project/dpdk/list/?series=19405 changes in v2: align with the latest versions of above series.
Just to let you know this patch set causes to seg-fault ipsec-secgw: examples/ipsec-secgw/test/run_test.sh -46m ... [23695833.390785] dpdk-ipsec-secg[2491066]: segfault at 0 ip 0000564325730963 sp 00007fffb9111d00 error 4 in dpdk-ipsec-secgw[564324df0000+134d000] [23695833.390791] Code: 28 5b 5d 41 5c 41 5d 41 5e 41 5f c3 0f 1f 00 4c 8d 04 cd 00 00 00 00 49 89 ce 4c 89 e7 4a 8d 34 00 48 8b 46 08 48 89 74 24 18 <48> 8b 08 48 89 88 80 00 00 00 f0 83 44 24 80 00 4c 8b 2e 4d 85 ed So far, I didn't dig into it any further. Will have a closer look at Monday. Konstantin
Akhil Goyal (5): cryptodev: separate out internal structures cryptodev: allocate max space for internal qp array cryptodev: move inline APIs into separate structure cryptodev: update fast path APIs to use new flat array cryptodev: move device specific structures drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 1 - drivers/crypto/ccp/ccp_dev.h | 2 +- drivers/crypto/cnxk/cn10k_ipsec.c | 2 +- drivers/crypto/cnxk/cn9k_ipsec.c | 2 +- .../crypto/cnxk/cnxk_cryptodev_capabilities.c | 2 +- drivers/crypto/cnxk/cnxk_cryptodev_sec.c | 2 +- drivers/crypto/nitrox/nitrox_sym_reqmgr.c | 2 +- drivers/crypto/octeontx/otx_cryptodev.c | 1 - .../crypto/octeontx/otx_cryptodev_hw_access.c | 2 +- .../crypto/octeontx/otx_cryptodev_hw_access.h | 2 +- drivers/crypto/octeontx/otx_cryptodev_ops.h | 2 +- .../crypto/octeontx2/otx2_cryptodev_mbox.c | 2 +- drivers/crypto/scheduler/scheduler_failover.c | 2 +- .../crypto/scheduler/scheduler_multicore.c | 2 +- .../scheduler/scheduler_pkt_size_distr.c | 2 +- .../crypto/scheduler/scheduler_roundrobin.c | 2 +- drivers/event/cnxk/cnxk_eventdev.h | 2 +- drivers/event/dpaa/dpaa_eventdev.c | 2 +- drivers/event/dpaa2/dpaa2_eventdev.c | 2 +- drivers/event/octeontx/ssovf_evdev.c | 2 +- .../event/octeontx2/otx2_evdev_crypto_adptr.c | 2 +- lib/cryptodev/cryptodev_pmd.c | 51 +++ lib/cryptodev/cryptodev_pmd.h | 82 +++- lib/cryptodev/meson.build | 4 +- lib/cryptodev/rte_cryptodev.c | 50 ++- lib/cryptodev/rte_cryptodev.h | 367 +++++++----------- lib/cryptodev/rte_cryptodev_core.h | 62 +++ lib/cryptodev/version.map | 7 +- 28 files changed, 398 insertions(+), 265 deletions(-) create mode 100644 lib/cryptodev/rte_cryptodev_core.h -- 2.25.1