bus/fslmc: affine dpio to crypto threads
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
This commit is contained in:
parent
3981b74fc7
commit
d93818e1d1
@ -275,6 +275,51 @@ dpaa2_affine_qbman_swp(void)
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
dpaa2_affine_qbman_swp_sec(void)
|
||||
{
|
||||
unsigned int lcore_id = rte_lcore_id();
|
||||
uint64_t tid = syscall(SYS_gettid);
|
||||
|
||||
if (lcore_id == LCORE_ID_ANY)
|
||||
lcore_id = rte_get_master_lcore();
|
||||
/* if the core id is not supported */
|
||||
else if (lcore_id >= RTE_MAX_LCORE)
|
||||
return -1;
|
||||
|
||||
if (dpaa2_io_portal[lcore_id].sec_dpio_dev) {
|
||||
PMD_DRV_LOG(INFO, "DPAA Portal=0x%x (%d) is being shared"
|
||||
" between thread %lu and current %lu",
|
||||
dpaa2_io_portal[lcore_id].sec_dpio_dev,
|
||||
dpaa2_io_portal[lcore_id].sec_dpio_dev->index,
|
||||
dpaa2_io_portal[lcore_id].sec_tid,
|
||||
tid);
|
||||
RTE_PER_LCORE(_dpaa2_io).sec_dpio_dev
|
||||
= dpaa2_io_portal[lcore_id].sec_dpio_dev;
|
||||
rte_atomic16_inc(&dpaa2_io_portal
|
||||
[lcore_id].sec_dpio_dev->ref_count);
|
||||
dpaa2_io_portal[lcore_id].sec_tid = tid;
|
||||
|
||||
PMD_DRV_LOG(DEBUG, "Old Portal=0x%x (%d) affined thread - %lu",
|
||||
dpaa2_io_portal[lcore_id].sec_dpio_dev,
|
||||
dpaa2_io_portal[lcore_id].sec_dpio_dev->index,
|
||||
tid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Populate the dpaa2_io_portal structure */
|
||||
dpaa2_io_portal[lcore_id].sec_dpio_dev = dpaa2_get_qbman_swp();
|
||||
|
||||
if (dpaa2_io_portal[lcore_id].sec_dpio_dev) {
|
||||
RTE_PER_LCORE(_dpaa2_io).sec_dpio_dev
|
||||
= dpaa2_io_portal[lcore_id].sec_dpio_dev;
|
||||
dpaa2_io_portal[lcore_id].sec_tid = tid;
|
||||
return 0;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
dpaa2_create_dpio_device(struct fslmc_vfio_device *vdev,
|
||||
struct vfio_device_info *obj_info,
|
||||
|
@ -56,5 +56,8 @@ RTE_DECLARE_PER_LCORE(struct dpaa2_io_portal_t, _dpaa2_io);
|
||||
/* Affine a DPIO portal to current processing thread */
|
||||
int dpaa2_affine_qbman_swp(void);
|
||||
|
||||
/* Affine additional DPIO portal to current crypto processing thread */
|
||||
int dpaa2_affine_qbman_swp_sec(void);
|
||||
|
||||
|
||||
#endif /* _DPAA2_HW_DPIO_H_ */
|
||||
|
@ -2,6 +2,7 @@ DPDK_17.05 {
|
||||
global:
|
||||
|
||||
dpaa2_affine_qbman_swp;
|
||||
dpaa2_affine_qbman_swp_sec;
|
||||
dpaa2_alloc_dpbp_dev;
|
||||
dpaa2_free_dpbp_dev;
|
||||
dpbp_disable;
|
||||
|
Loading…
Reference in New Issue
Block a user