DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS
@ 2014-12-16 13:27 Bruce Richardson
  2014-12-16 13:40 ` Thomas Monjalon
  0 siblings, 1 reply; 7+ messages in thread
From: Bruce Richardson @ 2014-12-16 13:27 UTC (permalink / raw)
  To: dev

The port mask parsing in testpmd allowed up to 64 bits to be processed,
even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only
processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 app/test-pmd/config.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 69a83c2..c9d1e1c 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -1440,7 +1440,7 @@ set_fwd_ports_mask(uint64_t portmask)
 		return;
 	}
 	nb_pt = 0;
-	for (i = 0; i < 64; i++) {
+	for (i = 0; i < 64 && i < RTE_MAX_ETHPORTS; i++) {
 		if (! ((uint64_t)(1ULL << i) & portmask))
 			continue;
 		portlist[nb_pt++] = i;
-- 
1.9.3

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

* Re: [dpdk-dev] [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS
  2014-12-16 13:27 [dpdk-dev] [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS Bruce Richardson
@ 2014-12-16 13:40 ` Thomas Monjalon
  2014-12-16 13:50   ` Bruce Richardson
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Monjalon @ 2014-12-16 13:40 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

2014-12-16 13:27, Bruce Richardson:
> The port mask parsing in testpmd allowed up to 64 bits to be processed,
> even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only
> processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask.
[...]
> -	for (i = 0; i < 64; i++) {
> +	for (i = 0; i < 64 && i < RTE_MAX_ETHPORTS; i++) {

Why not use RTE_MIN?

-- 
Thomas

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

* Re: [dpdk-dev] [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS
  2014-12-16 13:40 ` Thomas Monjalon
@ 2014-12-16 13:50   ` Bruce Richardson
  2014-12-16 14:09     ` Neil Horman
  0 siblings, 1 reply; 7+ messages in thread
From: Bruce Richardson @ 2014-12-16 13:50 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

On Tue, Dec 16, 2014 at 02:40:09PM +0100, Thomas Monjalon wrote:
> 2014-12-16 13:27, Bruce Richardson:
> > The port mask parsing in testpmd allowed up to 64 bits to be processed,
> > even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only
> > processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask.
> [...]
> > -	for (i = 0; i < 64; i++) {
> > +	for (i = 0; i < 64 && i < RTE_MAX_ETHPORTS; i++) {
> 
> Why not use RTE_MIN?
> 
> -- 
> Thomas

Because this works equally well, and the change is simpler and clearer IMHO.
However, if you feel very strongly about it, I can change it to use RTE_MIN
instead. :-)

/Bruce

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

* Re: [dpdk-dev] [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS
  2014-12-16 13:50   ` Bruce Richardson
@ 2014-12-16 14:09     ` Neil Horman
  2014-12-16 14:39       ` [dpdk-dev] [PATCH v2] " Bruce Richardson
  0 siblings, 1 reply; 7+ messages in thread
From: Neil Horman @ 2014-12-16 14:09 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

On Tue, Dec 16, 2014 at 01:50:06PM +0000, Bruce Richardson wrote:
> On Tue, Dec 16, 2014 at 02:40:09PM +0100, Thomas Monjalon wrote:
> > 2014-12-16 13:27, Bruce Richardson:
> > > The port mask parsing in testpmd allowed up to 64 bits to be processed,
> > > even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only
> > > processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask.
> > [...]
> > > -	for (i = 0; i < 64; i++) {
> > > +	for (i = 0; i < 64 && i < RTE_MAX_ETHPORTS; i++) {
> > 
> > Why not use RTE_MIN?
> > 
> > -- 
> > Thomas
> 
> Because this works equally well, and the change is simpler and clearer IMHO.
> However, if you feel very strongly about it, I can change it to use RTE_MIN
> instead. :-)
> 
> /Bruce
> 

Please do, checking the same variable for being less than 2 different values
isn't common practice.  Its common, and far more readable to use a min function
as Thomas indicates.  It also saves you doing an extra comparison every loop
iteration.

Neil

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

* [dpdk-dev] [PATCH v2] testpmd: limit port mask bits to RTE_MAX_ETHPORTS
  2014-12-16 14:09     ` Neil Horman
@ 2014-12-16 14:39       ` Bruce Richardson
  2014-12-16 21:43         ` Neil Horman
  0 siblings, 1 reply; 7+ messages in thread
From: Bruce Richardson @ 2014-12-16 14:39 UTC (permalink / raw)
  To: dev

The port mask parsing in testpmd allowed up to 64 bits to be processed,
even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only
processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
V2: changed to use RTE_MIN in comparison, instead of double "<".
---
 app/test-pmd/config.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 69a83c2..97b6525 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -1440,7 +1440,7 @@ set_fwd_ports_mask(uint64_t portmask)
 		return;
 	}
 	nb_pt = 0;
-	for (i = 0; i < 64; i++) {
+	for (i = 0; i < (unsigned)RTE_MIN(64, RTE_MAX_ETHPORTS); i++) {
 		if (! ((uint64_t)(1ULL << i) & portmask))
 			continue;
 		portlist[nb_pt++] = i;
-- 
1.9.3

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

* Re: [dpdk-dev] [PATCH v2] testpmd: limit port mask bits to RTE_MAX_ETHPORTS
  2014-12-16 14:39       ` [dpdk-dev] [PATCH v2] " Bruce Richardson
@ 2014-12-16 21:43         ` Neil Horman
  2014-12-17  0:09           ` Thomas Monjalon
  0 siblings, 1 reply; 7+ messages in thread
From: Neil Horman @ 2014-12-16 21:43 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

On Tue, Dec 16, 2014 at 02:39:44PM +0000, Bruce Richardson wrote:
> The port mask parsing in testpmd allowed up to 64 bits to be processed,
> even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only
> processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> V2: changed to use RTE_MIN in comparison, instead of double "<".
> ---
>  app/test-pmd/config.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index 69a83c2..97b6525 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -1440,7 +1440,7 @@ set_fwd_ports_mask(uint64_t portmask)
>  		return;
>  	}
>  	nb_pt = 0;
> -	for (i = 0; i < 64; i++) {
> +	for (i = 0; i < (unsigned)RTE_MIN(64, RTE_MAX_ETHPORTS); i++) {
>  		if (! ((uint64_t)(1ULL << i) & portmask))
>  			continue;
>  		portlist[nb_pt++] = i;
> -- 
> 1.9.3
> 
> 

I was thinking of assigning a new temp variable to the return of RTE_MIN so as
to avoid the comparison within the for loop, but since both arguments are
constant, I'm sure the compiler will avoid multiple comparisons.

Acked-by: Neil Horman <nhorman@tuxdriver.com>

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

* Re: [dpdk-dev] [PATCH v2] testpmd: limit port mask bits to RTE_MAX_ETHPORTS
  2014-12-16 21:43         ` Neil Horman
@ 2014-12-17  0:09           ` Thomas Monjalon
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2014-12-17  0:09 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

2014-12-16 16:43, Neil Horman:
> On Tue, Dec 16, 2014 at 02:39:44PM +0000, Bruce Richardson wrote:
> > The port mask parsing in testpmd allowed up to 64 bits to be processed,
> > even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only
> > processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask.
> > 
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
> > V2: changed to use RTE_MIN in comparison, instead of double "<".
> 
> I was thinking of assigning a new temp variable to the return of RTE_MIN so as
> to avoid the comparison within the for loop, but since both arguments are
> constant, I'm sure the compiler will avoid multiple comparisons.
> 
> Acked-by: Neil Horman <nhorman@tuxdriver.com>

Applied

Thanks
-- 
Thomas

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

end of thread, other threads:[~2014-12-17  0:43 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-16 13:27 [dpdk-dev] [PATCH] testpmd: limit port mask bits to RTE_MAX_ETHPORTS Bruce Richardson
2014-12-16 13:40 ` Thomas Monjalon
2014-12-16 13:50   ` Bruce Richardson
2014-12-16 14:09     ` Neil Horman
2014-12-16 14:39       ` [dpdk-dev] [PATCH v2] " Bruce Richardson
2014-12-16 21:43         ` Neil Horman
2014-12-17  0:09           ` Thomas Monjalon

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