From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH 15/32] net/dpaa2: dpio routine to affine to crypto threads Date: Tue, 6 Dec 2016 19:49:16 +0000 Message-ID: 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 Content-Transfer-Encoding: 8bit Cc: thomas.monjalon@6wind.com, bruce.richardson@intel.com, shreyansh.jain@nxp.com To: Hemant Agrawal , dev@dpdk.org Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id E0AEB2BF6 for ; Tue, 6 Dec 2016 20:49:20 +0100 (CET) In-Reply-To: <1480875447-23680-16-git-send-email-hemant.agrawal@nxp.com> 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/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? > + > /* create dpio device */ > int dpaa2_create_dpio_device(struct dpaa2_vfio_device *vdev, > struct vfio_device_info *obj_info, >