[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