[dpdk-dev] [PATCH 15/32] net/dpaa2: dpio routine to affine to crypto threads
Hemant Agrawal
hemant.agrawal at nxp.com
Mon Dec 19 16:25:33 CET 2016
On 12/7/2016 1:19 AM, Ferruh Yigit wrote:
> On 12/4/2016 6:17 PM, Hemant Agrawal wrote:
>> Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
>> ---
>> drivers/net/dpaa2/base/dpaa2_hw_dpio.c | 45 ++++++++++++++++++++++++++++++++++
>> drivers/net/dpaa2/base/dpaa2_hw_dpio.h | 3 +++
>> 2 files changed, 48 insertions(+)
>>
>> diff --git a/drivers/net/dpaa2/base/dpaa2_hw_dpio.c b/drivers/net/dpaa2/base/dpaa2_hw_dpio.c
>> index 4a0a638..9c6eb96 100644
>> --- a/drivers/net/dpaa2/base/dpaa2_hw_dpio.c
>> +++ b/drivers/net/dpaa2/base/dpaa2_hw_dpio.c
>> @@ -275,6 +275,51 @@ static inline struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(void)
>> }
>>
>> int
>> +dpaa2_affine_qbman_swp_sec(void)
>> +{
>> + unsigned 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 dpaa2_vfio_device *vdev,
>> struct vfio_device_info *obj_info,
>> int object_id)
>> diff --git a/drivers/net/dpaa2/base/dpaa2_hw_dpio.h b/drivers/net/dpaa2/base/dpaa2_hw_dpio.h
>> index d90b900..8480ce3 100644
>> --- a/drivers/net/dpaa2/base/dpaa2_hw_dpio.h
>> +++ b/drivers/net/dpaa2/base/dpaa2_hw_dpio.h
>> @@ -57,6 +57,9 @@ struct dpaa2_io_portal_t {
>> /* 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);
>
> Why crypto related code in net driver base folder? Shouldn't these go to
> common folder?
>
I agree, dpio is now in common/dpaa2 folder in v2.
>> +
>> /* create dpio device */
>> int dpaa2_create_dpio_device(struct dpaa2_vfio_device *vdev,
>> struct vfio_device_info *obj_info,
>>
>
>
More information about the dev
mailing list