From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hemant Agrawal Subject: Re: [PATCH 15/32] net/dpaa2: dpio routine to affine to crypto threads Date: Mon, 19 Dec 2016 20:55:33 +0530 Message-ID: <7fccf8a0-dcdf-c1fd-4d52-229395fd14ea@nxp.com> References: <1480875447-23680-1-git-send-email-hemant.agrawal@nxp.com> <1480875447-23680-16-git-send-email-hemant.agrawal@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Cc: , , To: Ferruh Yigit , Return-path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0086.outbound.protection.outlook.com [104.47.36.86]) by dpdk.org (Postfix) with ESMTP id 04730FA7B for ; Mon, 19 Dec 2016 16:25:41 +0100 (CET) In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 >> --- >> 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, >> > >