DPDK patches and discussions
 help / color / mirror / Atom feed
From: Slava Ovsiienko <viacheslavo@mellanox.com>
To: Matan Azrad <matan@mellanox.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
Subject: Re: [dpdk-dev] [PATCH] vdpa/mlx5: fix completion queue arming
Date: Wed, 19 Feb 2020 09:15:42 +0000	[thread overview]
Message-ID: <AM4PR05MB3265EAE27FC7D54D3799DF14D2100@AM4PR05MB3265.eurprd05.prod.outlook.com> (raw)
In-Reply-To: <1582028721-637-1-git-send-email-matan@mellanox.com>

> -----Original Message-----
> From: Matan Azrad <matan@mellanox.com>
> Sent: Tuesday, February 18, 2020 14:25
> To: dev@dpdk.org
> Cc: Slava Ovsiienko <viacheslavo@mellanox.com>; Maxime Coquelin
> <maxime.coquelin@redhat.com>
> Subject: [PATCH] vdpa/mlx5: fix completion queue arming
> 
> The mlx5 vDPA driver manages QP and CQ in order to forward the HW event
> to the guest by the callfd file descriptor for each virtq.
> 
> The driver arms the CQ for the next CQE index that should be completed by
> the HW in order to create completion event.
> 
> In the SW completion event handler, the driver arms the CQ again for the
> next index,
> 
> The CQE index in the CQ doorbell and in the CQ doorbell record was masked
> incorrectly with the CQ size mask while it should be masked only with
> 0xFFFFFF mask.
> 
> Remove the CQ size mask, stay only with 0xFFFFFF mask.
> 
> Fixes: 8395927cdfaf ("vdpa/mlx5: prepare HW queues")
> 
> Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>

> ---
>  drivers/vdpa/mlx5/mlx5_vdpa_event.c | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_event.c
> b/drivers/vdpa/mlx5/mlx5_vdpa_event.c
> index c50e58e..17fd9dd 100644
> --- a/drivers/vdpa/mlx5/mlx5_vdpa_event.c
> +++ b/drivers/vdpa/mlx5/mlx5_vdpa_event.c
> @@ -81,9 +81,8 @@
>  static inline void
>  mlx5_vdpa_cq_arm(struct mlx5_vdpa_priv *priv, struct mlx5_vdpa_cq *cq)  {
> -	const unsigned int cqe_mask = (1 << cq->log_desc_n) - 1;
>  	uint32_t arm_sn = cq->arm_sn << MLX5_CQ_SQN_OFFSET;
> -	uint32_t cq_ci = cq->cq_ci & MLX5_CI_MASK & cqe_mask;
> +	uint32_t cq_ci = cq->cq_ci & MLX5_CI_MASK;
>  	uint32_t doorbell_hi = arm_sn | MLX5_CQ_DBR_CMD_ALL | cq_ci;
>  	uint64_t doorbell = ((uint64_t)doorbell_hi << 32) | cq->cq->id;
>  	uint64_t db_be = rte_cpu_to_be_64(doorbell); @@ -182,15 +181,15
> @@  {
>  	struct mlx5_vdpa_event_qp *eqp =
>  				container_of(cq, struct mlx5_vdpa_event_qp,
> cq);
> -	const unsigned int cqe_size = 1 << cq->log_desc_n;
> -	const unsigned int cqe_mask = cqe_size - 1;
> +	const unsigned int cq_size = 1 << cq->log_desc_n;
> +	const unsigned int cq_mask = cq_size - 1;
>  	int ret;
> 
>  	do {
>  		volatile struct mlx5_cqe *cqe = cq->cqes + (cq->cq_ci &
> -							    cqe_mask);
> +							    cq_mask);
> 
> -		ret = check_cqe(cqe, cqe_size, cq->cq_ci);
> +		ret = check_cqe(cqe, cq_size, cq->cq_ci);
>  		switch (ret) {
>  		case MLX5_CQE_STATUS_ERR:
>  			cq->errors++;
> @@ -208,7 +207,7 @@
>  	cq->db_rec[0] = rte_cpu_to_be_32(cq->cq_ci);
>  	rte_io_wmb();
>  	/* Ring SW QP doorbell record. */
> -	eqp->db_rec[0] = rte_cpu_to_be_32(cq->cq_ci + cqe_size);
> +	eqp->db_rec[0] = rte_cpu_to_be_32(cq->cq_ci + cq_size);
>  }
> 
>  static void
> --
> 1.8.3.1


  reply	other threads:[~2020-02-19  9:15 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-18 12:25 Matan Azrad
2020-02-19  9:15 ` Slava Ovsiienko [this message]
2020-02-19 10:02 ` Maxime Coquelin
2020-02-19 10:23 ` Maxime Coquelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AM4PR05MB3265EAE27FC7D54D3799DF14D2100@AM4PR05MB3265.eurprd05.prod.outlook.com \
    --to=viacheslavo@mellanox.com \
    --cc=dev@dpdk.org \
    --cc=matan@mellanox.com \
    --cc=maxime.coquelin@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).