DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] common/sfc_efx/base: remove VQ index check during VQ start
@ 2022-07-08  7:37 abhimanyu.saini
       [not found] ` <SA0PR12MB43523906A4BF7F13DF9B9D0FE3829@SA0PR12MB4352.namprd12.prod.outlook.com>
  2022-07-11  8:36 ` Andrew Rybchenko
  0 siblings, 2 replies; 6+ messages in thread
From: abhimanyu.saini @ 2022-07-08  7:37 UTC (permalink / raw)
  To: dev
  Cc: chenbo.xia, maxime.coquelin, andrew.rybchenko, Abhimanyu Saini, stable

From: Abhimanyu Saini <absaini@amd.com>

The used/avail queue indexes are not bound by queue
size, because the descriptor entry index is calculated
by a simple modulo between queue index and queue_size

So, do not check initial used and avail queue indexes
against queue size because it is possible for these
indexes to be greater than queue size in the
following cases:
1) The queue is created to be migrated into, or
2) The client issues a qstop/qstart after running datapath

Fixes: 4dda72dbdeab3 ("common/sfc_efx/base: add base virtio support for vDPA")
Cc: stable@dpdk.org

Signed-off-by: Abhimanyu Saini <absaini@amd.com>
---
 drivers/common/sfc_efx/base/rhead_virtio.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/common/sfc_efx/base/rhead_virtio.c b/drivers/common/sfc_efx/base/rhead_virtio.c
index 335cb74..7f08717 100644
--- a/drivers/common/sfc_efx/base/rhead_virtio.c
+++ b/drivers/common/sfc_efx/base/rhead_virtio.c
@@ -47,14 +47,6 @@
 		goto fail2;
 	}
 
-	if (evvdp != NULL) {
-		if ((evvdp->evvd_vq_cidx > evvcp->evvc_vq_size) ||
-		    (evvdp->evvd_vq_pidx > evvcp->evvc_vq_size)) {
-			rc = EINVAL;
-			goto fail3;
-		}
-	}
-
 	req.emr_cmd = MC_CMD_VIRTIO_INIT_QUEUE;
 	req.emr_in_buf = payload;
 	req.emr_in_length = MC_CMD_VIRTIO_INIT_QUEUE_REQ_LEN;
@@ -116,15 +108,13 @@
 
 	if (req.emr_rc != 0) {
 		rc = req.emr_rc;
-		goto fail4;
+		goto fail3;
 	}
 
 	evvp->evv_vi_index = vi_index;
 
 	return (0);
 
-fail4:
-	EFSYS_PROBE(fail4);
 fail3:
 	EFSYS_PROBE(fail3);
 fail2:
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH] common/sfc_efx/base: remove VQ index check during VQ start
       [not found] ` <SA0PR12MB43523906A4BF7F13DF9B9D0FE3829@SA0PR12MB4352.namprd12.prod.outlook.com>
@ 2022-07-08  9:17   ` Srivastava, Vijay
  2022-07-11  8:25     ` Andrew Rybchenko
  0 siblings, 1 reply; 6+ messages in thread
From: Srivastava, Vijay @ 2022-07-08  9:17 UTC (permalink / raw)
  To: dev
  Cc: chenbo.xia, Maxime Coquelin, Andrew Rybchenko, abhimanyu.saini,
	Saini, Abhimanyu, stable

>From: Abhimanyu Saini <absaini@amd.com>
>
>The used/avail queue indexes are not bound by queue size, because the
>descriptor entry index is calculated by a simple modulo between queue index
>and queue_size
>
>So, do not check initial used and avail queue indexes against queue size
>because it is possible for these indexes to be greater than queue size in the
>following cases:
>1) The queue is created to be migrated into, or
>2) The client issues a qstop/qstart after running datapath
>
>Fixes: 4dda72dbdeab3 ("common/sfc_efx/base: add base virtio support for
>vDPA")
>Cc: stable@dpdk.org
>
>Signed-off-by: Abhimanyu Saini <absaini@amd.com>
>---
> drivers/common/sfc_efx/base/rhead_virtio.c | 12 +-----------
> 1 file changed, 1 insertion(+), 11 deletions(-)
>
>diff --git a/drivers/common/sfc_efx/base/rhead_virtio.c
>b/drivers/common/sfc_efx/base/rhead_virtio.c
>index 335cb74..7f08717 100644
>--- a/drivers/common/sfc_efx/base/rhead_virtio.c
>+++ b/drivers/common/sfc_efx/base/rhead_virtio.c
>@@ -47,14 +47,6 @@
> 		goto fail2;
> 	}
>
>-	if (evvdp != NULL) {
>-		if ((evvdp->evvd_vq_cidx > evvcp->evvc_vq_size) ||
>-		    (evvdp->evvd_vq_pidx > evvcp->evvc_vq_size)) {
>-			rc = EINVAL;
>-			goto fail3;
>-		}
>-	}
>-
> 	req.emr_cmd = MC_CMD_VIRTIO_INIT_QUEUE;
> 	req.emr_in_buf = payload;
> 	req.emr_in_length = MC_CMD_VIRTIO_INIT_QUEUE_REQ_LEN; @@ -
>116,15 +108,13 @@
>
> 	if (req.emr_rc != 0) {
> 		rc = req.emr_rc;
>-		goto fail4;
>+		goto fail3;
> 	}
>
> 	evvp->evv_vi_index = vi_index;
>
> 	return (0);
>
>-fail4:
>-	EFSYS_PROBE(fail4);
> fail3:
> 	EFSYS_PROBE(fail3);
> fail2:
>--
>1.8.3.1

Acked-by: Vijay Srivastava <vijays@amd.com>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] common/sfc_efx/base: remove VQ index check during VQ start
  2022-07-08  9:17   ` Srivastava, Vijay
@ 2022-07-11  8:25     ` Andrew Rybchenko
  2022-07-11  8:31       ` David Marchand
  0 siblings, 1 reply; 6+ messages in thread
From: Andrew Rybchenko @ 2022-07-11  8:25 UTC (permalink / raw)
  To: Srivastava, Vijay, dev; +Cc: Vijay Kumar Srivastava

Hi Vijay,

On 7/8/22 12:17, Srivastava, Vijay wrote:

> Acked-by: Vijay Srivastava <vijays@amd.com>

Please, send a patch to MAINTAINERS to update your E-mail
address from Xilinx to AMD domain.

Andrew.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] common/sfc_efx/base: remove VQ index check during VQ start
  2022-07-11  8:25     ` Andrew Rybchenko
@ 2022-07-11  8:31       ` David Marchand
  0 siblings, 0 replies; 6+ messages in thread
From: David Marchand @ 2022-07-11  8:31 UTC (permalink / raw)
  To: Srivastava, Vijay; +Cc: dev, Vijay Kumar Srivastava, Andrew Rybchenko

Hello,

On Mon, Jul 11, 2022 at 10:26 AM Andrew Rybchenko
<andrew.rybchenko@oktetlabs.ru> wrote:
>
> On 7/8/22 12:17, Srivastava, Vijay wrote:
>
> > Acked-by: Vijay Srivastava <vijays@amd.com>
>
> Please, send a patch to MAINTAINERS to update your E-mail
> address from Xilinx to AMD domain.

Please register this mail address to the mailing list, too.
Your recent messages from @amd.com were waiting in the moderation queue.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] common/sfc_efx/base: remove VQ index check during VQ start
  2022-07-08  7:37 [PATCH] common/sfc_efx/base: remove VQ index check during VQ start abhimanyu.saini
       [not found] ` <SA0PR12MB43523906A4BF7F13DF9B9D0FE3829@SA0PR12MB4352.namprd12.prod.outlook.com>
@ 2022-07-11  8:36 ` Andrew Rybchenko
  2022-07-12  5:00   ` Saini, Abhimanyu
  1 sibling, 1 reply; 6+ messages in thread
From: Andrew Rybchenko @ 2022-07-11  8:36 UTC (permalink / raw)
  To: abhimanyu.saini, dev
  Cc: chenbo.xia, maxime.coquelin, Abhimanyu Saini, stable,
	Vijay Kumar Srivastava

On 7/8/22 10:37, abhimanyu.saini@xilinx.com wrote:
> From: Abhimanyu Saini <absaini@amd.com>
> 
> The used/avail queue indexes are not bound by queue
> size, because the descriptor entry index is calculated
> by a simple modulo between queue index and queue_size

"is calculated" is a bit vague since looking at the code
I've failed to find the place where modulo operation is
done. Don't we need to apply it these values are put
into MCDI message?

> 
> So, do not check initial used and avail queue indexes
> against queue size because it is possible for these
> indexes to be greater than queue size in the
> following cases:
> 1) The queue is created to be migrated into, or
> 2) The client issues a qstop/qstart after running datapath
> 
> Fixes: 4dda72dbdeab3 ("common/sfc_efx/base: add base virtio support for vDPA")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Abhimanyu Saini <absaini@amd.com>
> ---
>   drivers/common/sfc_efx/base/rhead_virtio.c | 12 +-----------
>   1 file changed, 1 insertion(+), 11 deletions(-)
> 
> diff --git a/drivers/common/sfc_efx/base/rhead_virtio.c b/drivers/common/sfc_efx/base/rhead_virtio.c
> index 335cb74..7f08717 100644
> --- a/drivers/common/sfc_efx/base/rhead_virtio.c
> +++ b/drivers/common/sfc_efx/base/rhead_virtio.c
> @@ -47,14 +47,6 @@
>   		goto fail2;
>   	}
>   
> -	if (evvdp != NULL) {
> -		if ((evvdp->evvd_vq_cidx > evvcp->evvc_vq_size) ||
> -		    (evvdp->evvd_vq_pidx > evvcp->evvc_vq_size)) {
> -			rc = EINVAL;
> -			goto fail3;
> -		}
> -	}
> -
>   	req.emr_cmd = MC_CMD_VIRTIO_INIT_QUEUE;
>   	req.emr_in_buf = payload;
>   	req.emr_in_length = MC_CMD_VIRTIO_INIT_QUEUE_REQ_LEN;
> @@ -116,15 +108,13 @@
>   
>   	if (req.emr_rc != 0) {
>   		rc = req.emr_rc;
> -		goto fail4;
> +		goto fail3;
>   	}
>   
>   	evvp->evv_vi_index = vi_index;
>   
>   	return (0);
>   
> -fail4:
> -	EFSYS_PROBE(fail4);
>   fail3:
>   	EFSYS_PROBE(fail3);
>   fail2:


^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH] common/sfc_efx/base: remove VQ index check during VQ start
  2022-07-11  8:36 ` Andrew Rybchenko
@ 2022-07-12  5:00   ` Saini, Abhimanyu
  0 siblings, 0 replies; 6+ messages in thread
From: Saini, Abhimanyu @ 2022-07-12  5:00 UTC (permalink / raw)
  To: Andrew Rybchenko, abhimanyu.saini, dev
  Cc: chenbo.xia, maxime.coquelin, stable, Vijay Kumar Srivastava

[AMD Official Use Only - General]

On 7/8/22 10:37, abhimanyu.saini@xilinx.com wrote:
> > From: Abhimanyu Saini <absaini@amd.com>
> >
> > The used/avail queue indexes are not bound by queue
> > size, because the descriptor entry index is calculated
> > by a simple modulo between queue index and queue_size
> 
> "is calculated" is a bit vague since looking at the code
> I've failed to find the place where modulo operation is
> done. Don't we need to apply it these values are put
> into MCDI message?
> 

The values are added to the MCDI as is and,
the modulo is performed by the hardware.

I can append the commit message to reflect the same?

> >
> > So, do not check initial used and avail queue indexes
> > against queue size because it is possible for these
> > indexes to be greater than queue size in the
> > following cases:
> > 1) The queue is created to be migrated into, or
> > 2) The client issues a qstop/qstart after running datapath
> >
> > Fixes: 4dda72dbdeab3 ("common/sfc_efx/base: add base virtio support for
> vDPA")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Abhimanyu Saini <absaini@amd.com>
> > ---
> >   drivers/common/sfc_efx/base/rhead_virtio.c | 12 +-----------
> >   1 file changed, 1 insertion(+), 11 deletions(-)
> >
> > diff --git a/drivers/common/sfc_efx/base/rhead_virtio.c
> b/drivers/common/sfc_efx/base/rhead_virtio.c
> > index 335cb74..7f08717 100644
> > --- a/drivers/common/sfc_efx/base/rhead_virtio.c
> > +++ b/drivers/common/sfc_efx/base/rhead_virtio.c
> > @@ -47,14 +47,6 @@
> >               goto fail2;
> >       }
> >
> > -     if (evvdp != NULL) {
> > -             if ((evvdp->evvd_vq_cidx > evvcp->evvc_vq_size) ||
> > -                 (evvdp->evvd_vq_pidx > evvcp->evvc_vq_size)) {
> > -                     rc = EINVAL;
> > -                     goto fail3;
> > -             }
> > -     }
> > -
> >       req.emr_cmd = MC_CMD_VIRTIO_INIT_QUEUE;
> >       req.emr_in_buf = payload;
> >       req.emr_in_length = MC_CMD_VIRTIO_INIT_QUEUE_REQ_LEN;
> > @@ -116,15 +108,13 @@
> >
> >       if (req.emr_rc != 0) {
> >               rc = req.emr_rc;
> > -             goto fail4;
> > +             goto fail3;
> >       }
> >
> >       evvp->evv_vi_index = vi_index;
> >
> >       return (0);
> >
> > -fail4:
> > -     EFSYS_PROBE(fail4);
> >   fail3:
> >       EFSYS_PROBE(fail3);
> >   fail2:

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-07-12  5:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-08  7:37 [PATCH] common/sfc_efx/base: remove VQ index check during VQ start abhimanyu.saini
     [not found] ` <SA0PR12MB43523906A4BF7F13DF9B9D0FE3829@SA0PR12MB4352.namprd12.prod.outlook.com>
2022-07-08  9:17   ` Srivastava, Vijay
2022-07-11  8:25     ` Andrew Rybchenko
2022-07-11  8:31       ` David Marchand
2022-07-11  8:36 ` Andrew Rybchenko
2022-07-12  5:00   ` Saini, Abhimanyu

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).