[PATCH] memif: memif driver does not crashes when there's different N of TX and RX queues

Joyce Kong Joyce.Kong at arm.com
Mon Aug 8 12:39:56 CEST 2022


Hi Huzaifa,

This patch looks good to me.
And would you please help review my memif patches?
https://patches.dpdk.org/project/dpdk/cover/20220701102815.1444223-1-joyce.kong@arm.com/

Thanks,
Joyce

> -----Original Message-----
> From: huzaifa.rahman <huzaifa.rahman at emumba.com>
> Sent: Tuesday, July 26, 2022 6:16 PM
> To: jgrajcia at cisco.com
> Cc: dev at dpdk.org; huzaifa.rahman <huzaifa.rahman at emumba.com>
> Subject: [PATCH] memif: memif driver does not crashes when there's
> different N of TX and RX queues
net/memif: fix memif crash with different Tx Rx queues

>
> Bugzilla ID: 734
>
> there's a bug in memif_stats_get() function due to confusion between C2S
> (client->server) and S2C (server->client) rings, causing a crash if there's a
> different number of RX and TX queues.
>
> this is fixed by selectiing the correct rings for RX and TX i.e for RX, S2C rings
> are selected and for TX, C2S rings are selected.
>
Fixes: 09c7e63a71f9 ("net/memif: introduce memory interface PMD")
Cc: stable at dpdk.org

> Signed-off-by: huzaifa.rahman <huzaifa.rahman at emumba.com>
Reviewed-by: Joyce Kong <joyce.kong at arm.com>

> ---
>  drivers/net/memif/rte_eth_memif.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/memif/rte_eth_memif.c
> b/drivers/net/memif/rte_eth_memif.c
> index dd951b8296..e56df84e10 100644
> --- a/drivers/net/memif/rte_eth_memif.c
> +++ b/drivers/net/memif/rte_eth_memif.c
> @@ -1444,8 +1444,8 @@ memif_stats_get(struct rte_eth_dev *dev, struct
> rte_eth_stats *stats)
>       stats->opackets = 0;
>       stats->obytes = 0;
>
> -     tmp = (pmd->role == MEMIF_ROLE_CLIENT) ? pmd-
> >run.num_c2s_rings :
> -         pmd->run.num_s2c_rings;
> +     tmp = (pmd->role == MEMIF_ROLE_CLIENT) ? pmd-
> >run.num_s2c_rings :
> +         pmd->run.num_c2s_rings;
>       nq = (tmp < RTE_ETHDEV_QUEUE_STAT_CNTRS) ? tmp :
>           RTE_ETHDEV_QUEUE_STAT_CNTRS;
>
> @@ -1458,8 +1458,8 @@ memif_stats_get(struct rte_eth_dev *dev, struct
> rte_eth_stats *stats)
>               stats->ibytes += mq->n_bytes;
>       }
>
> -     tmp = (pmd->role == MEMIF_ROLE_CLIENT) ? pmd-
> >run.num_s2c_rings :
> -         pmd->run.num_c2s_rings;
> +     tmp = (pmd->role == MEMIF_ROLE_CLIENT) ? pmd-
> >run.num_c2s_rings :
> +         pmd->run.num_s2c_rings;
>       nq = (tmp < RTE_ETHDEV_QUEUE_STAT_CNTRS) ? tmp :
>           RTE_ETHDEV_QUEUE_STAT_CNTRS;
>
> --
> 2.25.1

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


More information about the dev mailing list