> -----Original Message-----
> From: Akhil Goyal <gakhil@marvell.com>
> Sent: Monday, October 18, 2021 3:42 PM
> To: dev@dpdk.org
> Cc: thomas@monjalon.net; david.marchand@redhat.com;
> hemant.agrawal@nxp.com; anoobj@marvell.com; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>; Trahe, Fiona <fiona.trahe@intel.com>;
> Doherty, Declan <declan.doherty@intel.com>; matan@nvidia.com;
> g.singh@nxp.com; Zhang, Roy Fan <roy.fan.zhang@intel.com>;
> jianjay.zhou@huawei.com; asomalap@amd.com; ruifeng.wang@arm.com;
> Ananyev, Konstantin <konstantin.ananyev@intel.com>; Nicolau, Radu
> <radu.nicolau@intel.com>; ajit.khaparde@broadcom.com;
> rnagadheeraj@marvell.com; adwivedi@marvell.com; Power, Ciara
> <ciara.power@intel.com>; Akhil Goyal <gakhil@marvell.com>
> Subject: [PATCH v3 5/7] drivers/crypto: invoke probing finish function
>
> Invoke event_dev_probing_finish() function at the end of probing,
> this function sets the function pointers in the fp_ops flat array
> in case of secondary process.
> For primary process, fp_ops is updated in rte_cryptodev_start().
>
> Signed-off-by: Akhil Goyal <gakhil@marvell.com>
> ---
> drivers/crypto/armv8/rte_armv8_pmd.c | 2 ++
> drivers/crypto/bcmfs/bcmfs_sym_pmd.c | 2 ++
> drivers/crypto/caam_jr/caam_jr.c | 2 ++
> drivers/crypto/ccp/rte_ccp_pmd.c | 2 ++
> drivers/crypto/cnxk/cn10k_cryptodev.c | 2 ++
> drivers/crypto/cnxk/cn9k_cryptodev.c | 2 ++
> drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 4 +++-
> drivers/crypto/dpaa_sec/dpaa_sec.c | 4 +++-
> drivers/crypto/ipsec_mb/ipsec_mb_private.c | 2 ++
> drivers/crypto/mlx5/mlx5_crypto.c | 3 +++
> drivers/crypto/mvsam/rte_mrvl_pmd.c | 2 ++
> drivers/crypto/nitrox/nitrox_sym.c | 3 +++
> drivers/crypto/null/null_crypto_pmd.c | 2 ++
> drivers/crypto/octeontx/otx_cryptodev.c | 4 +++-
> drivers/crypto/octeontx2/otx2_cryptodev.c | 2 ++
> drivers/crypto/openssl/rte_openssl_pmd.c | 2 ++
> drivers/crypto/qat/qat_asym_pmd.c | 3 +++
> drivers/crypto/qat/qat_sym_pmd.c | 2 ++
> drivers/crypto/scheduler/scheduler_pmd.c | 2 ++
> drivers/crypto/virtio/virtio_cryptodev.c | 2 ++
> 20 files changed, 46 insertions(+), 3 deletions(-)
Scheduler PMD needs to be updated to fix a problem.
Other than that - if addressed in V4,
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
@@ -802,6 +802,8 @@ cryptodev_armv8_crypto_create(const char *name,
internals->max_nb_qpairs = init_params->max_nb_queue_pairs;
+ rte_cryptodev_pmd_probing_finish(dev);
+
return 0;
init_error:
@@ -394,6 +394,8 @@ bcmfs_sym_dev_create(struct bcmfs_device *fsdev)
internals->sym_dev_id = cryptodev->data->dev_id;
internals->fsdev_capabilities = bcmfs_sym_get_capabilities();
+ rte_cryptodev_pmd_probing_finish(cryptodev);
+
BCMFS_LOG(DEBUG, "Created bcmfs-sym device %s as cryptodev instance %d",
cryptodev->data->name, internals->sym_dev_id);
return 0;
@@ -2368,6 +2368,8 @@ caam_jr_dev_init(const char *name,
security_instance->sess_cnt = 0;
dev->security_ctx = security_instance;
+ rte_cryptodev_pmd_probing_finish(dev);
+
RTE_LOG(INFO, PMD, "%s cryptodev init\n", dev->data->name);
return 0;
@@ -271,6 +271,8 @@ cryptodev_ccp_create(const char *name,
internals->auth_opt = init_params->auth_opt;
internals->crypto_num_dev = cryptodev_cnt;
+ rte_cryptodev_pmd_probing_finish(dev);
+
return 0;
init_error:
@@ -102,6 +102,8 @@ cn10k_cpt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
cn10k_cpt_set_enqdeq_fns(dev);
cn10k_sec_ops_override();
+ rte_cryptodev_pmd_probing_finish(dev);
+
return 0;
dev_fini:
@@ -102,6 +102,8 @@ cn9k_cpt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
cn9k_cpt_set_enqdeq_fns(dev);
cn9k_sec_ops_override();
+ rte_cryptodev_pmd_probing_finish(dev);
+
return 0;
dev_fini:
@@ -4032,8 +4032,10 @@ cryptodev_dpaa2_sec_probe(struct rte_dpaa2_driver *dpaa2_drv __rte_unused,
/* Invoke PMD device initialization function */
retval = dpaa2_sec_dev_init(cryptodev);
- if (retval == 0)
+ if (retval == 0) {
+ rte_cryptodev_pmd_probing_finish(cryptodev);
return 0;
+ }
if (rte_eal_process_type() == RTE_PROC_PRIMARY)
rte_free(cryptodev->data->dev_private);
@@ -3594,8 +3594,10 @@ cryptodev_dpaa_sec_probe(struct rte_dpaa_driver *dpaa_drv __rte_unused,
/* Invoke PMD device initialization function */
retval = dpaa_sec_dev_init(cryptodev);
- if (retval == 0)
+ if (retval == 0) {
+ rte_cryptodev_pmd_probing_finish(cryptodev);
return 0;
+ }
retval = -ENXIO;
out:
@@ -134,6 +134,8 @@ ipsec_mb_create(struct rte_vdev_device *vdev,
break;
}
+ rte_cryptodev_pmd_probing_finish(dev);
+
IPSEC_MB_LOG(INFO, "IPSec Multi-buffer library version used: %s\n",
imb_get_version_str());
@@ -1061,6 +1061,9 @@ mlx5_crypto_dev_probe(struct rte_device *dev)
pthread_mutex_lock(&priv_list_lock);
TAILQ_INSERT_TAIL(&mlx5_crypto_priv_list, priv, next);
pthread_mutex_unlock(&priv_list_lock);
+
+ rte_cryptodev_pmd_probing_finish(crypto_dev);
+
return 0;
}
@@ -1114,6 +1114,8 @@ cryptodev_mrvl_crypto_create(const char *name,
if (ret)
goto init_error;
+ rte_cryptodev_pmd_probing_finish(dev);
+
return 0;
init_error:
@@ -783,6 +783,9 @@ nitrox_sym_pmd_create(struct nitrox_device *ndev)
ndev->sym_dev = cdev->data->dev_private;
ndev->sym_dev->cdev = cdev;
ndev->sym_dev->ndev = ndev;
+
+ rte_cryptodev_pmd_probing_finish(cdev);
+
NITROX_LOG(DEBUG, "Created cryptodev '%s', dev_id %d, drv_id %d\n",
cdev->data->name, cdev->data->dev_id, nitrox_sym_drv_id);
return 0;
@@ -184,6 +184,8 @@ cryptodev_null_create(const char *name,
internals->max_nb_qpairs = init_params->max_nb_queue_pairs;
+ rte_cryptodev_pmd_probing_finish(dev);
+
return 0;
}
@@ -56,8 +56,10 @@ otx_cpt_pci_probe(struct rte_pci_driver *pci_drv,
/* Invoke PMD device initialization function */
retval = otx_cpt_dev_create(cryptodev);
- if (retval == 0)
+ if (retval == 0) {
+ rte_cryptodev_pmd_probing_finish(cryptodev);
return 0;
+ }
CPT_LOG_ERR("[DRV %s]: Failed to create device "
"(vendor_id: 0x%x device_id: 0x%x",
@@ -135,6 +135,8 @@ otx2_cpt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
if (rte_eal_process_type() == RTE_PROC_SECONDARY)
otx2_cpt_set_enqdeq_fns(dev);
+ rte_cryptodev_pmd_probing_finish(dev);
+
return 0;
otx2_dev_fini:
@@ -2213,6 +2213,8 @@ cryptodev_openssl_create(const char *name,
internals->max_nb_qpairs = init_params->max_nb_queue_pairs;
+ rte_cryptodev_pmd_probing_finish(dev);
+
return 0;
init_error:
@@ -343,6 +343,9 @@ qat_asym_dev_create(struct qat_pci_device *qat_pci_dev,
}
qat_pci_dev->asym_dev = internals;
+
+ rte_cryptodev_pmd_probing_finish(cryptodev);
+
QAT_LOG(DEBUG, "Created QAT ASYM device %s as cryptodev instance %d",
cryptodev->data->name, internals->asym_dev_id);
return 0;
@@ -500,6 +500,8 @@ qat_sym_dev_create(struct qat_pci_device *qat_pci_dev,
QAT_LOG(DEBUG, "Created QAT SYM device %s as cryptodev instance %d",
cryptodev->data->name, internals->sym_dev_id);
+ rte_cryptodev_pmd_probing_finish(cryptodev);
+
return 0;
error:
@@ -229,6 +229,8 @@ cryptodev_scheduler_create(const char *name,
return -ENOMEM;
}
+ rte_cryptodev_pmd_probing_finish(dev);
+
return 0;
}
@@ -754,6 +754,8 @@ crypto_virtio_create(const char *name, struct rte_pci_device *pci_dev,
VIRTIO_CRYPTO_PMD_GUEST_FEATURES) < 0)
return -1;
+ rte_cryptodev_pmd_probing_finish(cryptodev);
+
return 0;
}