[dpdk-stable] [19.11 PATCH] crypto/dpaa_sec: affine the thread portal affinity
Christian Ehrhardt
christian.ehrhardt at canonical.com
Fri Jun 4 07:09:35 CEST 2021
On Thu, Jun 3, 2021 at 2:19 PM Hemant Agrawal <hemant.agrawal at nxp.com> wrote:
>
> DPAA requires the I/O shall be done in a HW portal context only.
> The portal affinity is currently only being done in session create
> and config APIs with the assumption that same thread will be used
> for IO. This is causing issue.
> This patch add support during I/O to check the HW portal affinity
> and affine portal- if not affined already.
>
> Fixes: 9a984458f755 ("crypto/dpaa_sec: rewrite Rx/Tx path")
> Cc: stable at dpdk.org
>
> Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
Applied to 19.11.x - thanks!
> ---
> drivers/crypto/dpaa_sec/dpaa_sec.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
> index a650313cdb..6e454273ee 100644
> --- a/drivers/crypto/dpaa_sec/dpaa_sec.c
> +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
> @@ -1690,6 +1690,13 @@ dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
> uint32_t index, flags[DPAA_SEC_BURST] = {0};
> struct qman_fq *inq[DPAA_SEC_BURST];
>
> + if (unlikely(!RTE_PER_LCORE(dpaa_io))) {
> + if (rte_dpaa_portal_init((void *)0)) {
> + DPAA_SEC_ERR("Failure in affining portal");
> + return 0;
> + }
> + }
> +
> while (nb_ops) {
> frames_to_send = (nb_ops > DPAA_SEC_BURST) ?
> DPAA_SEC_BURST : nb_ops;
> @@ -1890,6 +1897,13 @@ dpaa_sec_dequeue_burst(void *qp, struct rte_crypto_op **ops,
> uint16_t num_rx;
> struct dpaa_sec_qp *dpaa_qp = (struct dpaa_sec_qp *)qp;
>
> + if (unlikely(!RTE_PER_LCORE(dpaa_io))) {
> + if (rte_dpaa_portal_init((void *)0)) {
> + DPAA_SEC_ERR("Failure in affining portal");
> + return 0;
> + }
> + }
> +
> num_rx = dpaa_sec_deq(dpaa_qp, ops, nb_ops);
>
> dpaa_qp->rx_pkts += num_rx;
> --
> 2.17.1
>
--
Christian Ehrhardt
Staff Engineer, Ubuntu Server
Canonical Ltd
More information about the stable
mailing list