test: test zero socket-mem as valid

Message ID 20190125075558.27139-1-i.maximets@samsung.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series test: test zero socket-mem as valid |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS

Commit Message

Ilya Maximets Jan. 25, 2019, 7:55 a.m. UTC
  Dynamic memory mode allowes zero socket-mem because all the
required memory could be allocated on demand.

Fixes: 339c2244b4f1 ("eal: fix parsing zero socket memory and limits")
Cc: stable@dpdk.org

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
---
 test/test/test_eal_flags.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Ilya Maximets Jan. 25, 2019, 8:06 a.m. UTC | #1
On 25.01.2019 10:55, Ilya Maximets wrote:
> Dynamic memory mode allowes zero socket-mem because all the
> required memory could be allocated on demand.
> 
> Fixes: 339c2244b4f1 ("eal: fix parsing zero socket memory and limits")
> Cc: stable@dpdk.org
> 

Reported-by: Shuai Zhu <shuaix.zhu@intel.com>

> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
> ---
>  test/test/test_eal_flags.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/test/test/test_eal_flags.c b/test/test/test_eal_flags.c
> index e3a60c7ae..81e345b87 100644
> --- a/test/test/test_eal_flags.c
> +++ b/test/test/test_eal_flags.c
> @@ -1158,7 +1158,7 @@ test_memory_flags(void)
>  	const char *argv1[] = {prgname, "-c", "10", "-n", "2",
>  			"--file-prefix=" memtest, "-m", DEFAULT_MEM_SIZE};
>  
> -	/* invalid (zero) --socket-mem flag */
> +	/* valid (zero) --socket-mem flag */
>  	const char *argv2[] = {prgname, "-c", "10", "-n", "2",
>  			"--file-prefix=" memtest, "--socket-mem=0,0,0,0"};
>  
> @@ -1256,8 +1256,8 @@ test_memory_flags(void)
>  		printf("Error - process failed with valid -m flag!\n");
>  		return -1;
>  	}
> -	if (launch_proc(argv2) == 0) {
> -		printf("Error - process run ok with invalid (zero) --socket-mem!\n");
> +	if (launch_proc(argv2) != 0) {
> +		printf("Error - process failed with valid (zero) --socket-mem!\n");
>  		return -1;
>  	}
>  
>
  
David Marchand Jan. 25, 2019, 9:53 a.m. UTC | #2
On Fri, Jan 25, 2019 at 9:06 AM Ilya Maximets <i.maximets@samsung.com>
wrote:

> On 25.01.2019 10:55, Ilya Maximets wrote:
> > Dynamic memory mode allowes zero socket-mem because all the
> > required memory could be allocated on demand.
> >
> > Fixes: 339c2244b4f1 ("eal: fix parsing zero socket memory and limits")
> > Cc: stable@dpdk.org
> >
>
> Reported-by: Shuai Zhu <shuaix.zhu@intel.com>
>
> > Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
>
> ---
> >  test/test/test_eal_flags.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/test/test/test_eal_flags.c b/test/test/test_eal_flags.c
> > index e3a60c7ae..81e345b87 100644
> > --- a/test/test/test_eal_flags.c
> > +++ b/test/test/test_eal_flags.c
> > @@ -1158,7 +1158,7 @@ test_memory_flags(void)
> >       const char *argv1[] = {prgname, "-c", "10", "-n", "2",
> >                       "--file-prefix=" memtest, "-m", DEFAULT_MEM_SIZE};
> >
> > -     /* invalid (zero) --socket-mem flag */
> > +     /* valid (zero) --socket-mem flag */
> >       const char *argv2[] = {prgname, "-c", "10", "-n", "2",
> >                       "--file-prefix=" memtest, "--socket-mem=0,0,0,0"};
> >
> > @@ -1256,8 +1256,8 @@ test_memory_flags(void)
> >               printf("Error - process failed with valid -m flag!\n");
> >               return -1;
> >       }
> > -     if (launch_proc(argv2) == 0) {
> > -             printf("Error - process run ok with invalid (zero)
> --socket-mem!\n");
> > +     if (launch_proc(argv2) != 0) {
> > +             printf("Error - process failed with valid (zero)
> --socket-mem!\n");
> >               return -1;
> >       }
> >
> >
>

Reviewed-by: David Marchand <david.marchand@redhat.com>
  
Anatoly Burakov Jan. 25, 2019, 1:48 p.m. UTC | #3
On 25-Jan-19 9:53 AM, David Marchand wrote:
> 
> 
> On Fri, Jan 25, 2019 at 9:06 AM Ilya Maximets <i.maximets@samsung.com 
> <mailto:i.maximets@samsung.com>> wrote:
> 
>     On 25.01.2019 10:55, Ilya Maximets wrote:
>      > Dynamic memory mode allowes zero socket-mem because all the
>      > required memory could be allocated on demand.
>      >
>      > Fixes: 339c2244b4f1 ("eal: fix parsing zero socket memory and
>     limits")
>      > Cc: stable@dpdk.org <mailto:stable@dpdk.org>
>      >
> 
>     Reported-by: Shuai Zhu <shuaix.zhu@intel.com
>     <mailto:shuaix.zhu@intel.com>>
> 
>      > Signed-off-by: Ilya Maximets <i.maximets@samsung.com
>     <mailto:i.maximets@samsung.com>>
> 
>      > ---
>      >  test/test/test_eal_flags.c | 6 +++---
>      >  1 file changed, 3 insertions(+), 3 deletions(-)
>      >
>      > diff --git a/test/test/test_eal_flags.c b/test/test/test_eal_flags.c
>      > index e3a60c7ae..81e345b87 100644
>      > --- a/test/test/test_eal_flags.c
>      > +++ b/test/test/test_eal_flags.c
>      > @@ -1158,7 +1158,7 @@ test_memory_flags(void)
>      >       const char *argv1[] = {prgname, "-c", "10", "-n", "2",
>      >                       "--file-prefix=" memtest, "-m",
>     DEFAULT_MEM_SIZE};
>      >
>      > -     /* invalid (zero) --socket-mem flag */
>      > +     /* valid (zero) --socket-mem flag */
>      >       const char *argv2[] = {prgname, "-c", "10", "-n", "2",
>      >                       "--file-prefix=" memtest,
>     "--socket-mem=0,0,0,0"};
>      >
>      > @@ -1256,8 +1256,8 @@ test_memory_flags(void)
>      >               printf("Error - process failed with valid -m flag!\n");
>      >               return -1;
>      >       }
>      > -     if (launch_proc(argv2) == 0) {
>      > -             printf("Error - process run ok with invalid (zero)
>     --socket-mem!\n");
>      > +     if (launch_proc(argv2) != 0) {
>      > +             printf("Error - process failed with valid (zero)
>     --socket-mem!\n");
>      >               return -1;
>      >       }
>      >
>      >
> 
> 
> Reviewed-by: David Marchand <david.marchand@redhat.com 
> <mailto:david.marchand@redhat.com>>
> 
> 
> -- 
> David Marchand

Now that i think of it, maybe it's not that simple.

--socket-mem/-m flag with zero is still an invalid value *if* 
--legacy-mem is involved. However, it is a valid value in non-legacy mode.

So maybe the test should reflect this, and the previous fix should have 
instead added a check for legacy mode rather than disabling the zero 
check outright.
  
Ilya Maximets Jan. 25, 2019, 2 p.m. UTC | #4
On 25.01.2019 16:48, Burakov, Anatoly wrote:
> On 25-Jan-19 9:53 AM, David Marchand wrote:
>>
>>
>> On Fri, Jan 25, 2019 at 9:06 AM Ilya Maximets <i.maximets@samsung.com <mailto:i.maximets@samsung.com>> wrote:
>>
>>     On 25.01.2019 10:55, Ilya Maximets wrote:
>>      > Dynamic memory mode allowes zero socket-mem because all the
>>      > required memory could be allocated on demand.
>>      >
>>      > Fixes: 339c2244b4f1 ("eal: fix parsing zero socket memory and
>>     limits")
>>      > Cc: stable@dpdk.org <mailto:stable@dpdk.org>
>>      >
>>
>>     Reported-by: Shuai Zhu <shuaix.zhu@intel.com
>>     <mailto:shuaix.zhu@intel.com>>
>>
>>      > Signed-off-by: Ilya Maximets <i.maximets@samsung.com
>>     <mailto:i.maximets@samsung.com>>
>>
>>      > ---
>>      >  test/test/test_eal_flags.c | 6 +++---
>>      >  1 file changed, 3 insertions(+), 3 deletions(-)
>>      >
>>      > diff --git a/test/test/test_eal_flags.c b/test/test/test_eal_flags.c
>>      > index e3a60c7ae..81e345b87 100644
>>      > --- a/test/test/test_eal_flags.c
>>      > +++ b/test/test/test_eal_flags.c
>>      > @@ -1158,7 +1158,7 @@ test_memory_flags(void)
>>      >       const char *argv1[] = {prgname, "-c", "10", "-n", "2",
>>      >                       "--file-prefix=" memtest, "-m",
>>     DEFAULT_MEM_SIZE};
>>      >
>>      > -     /* invalid (zero) --socket-mem flag */
>>      > +     /* valid (zero) --socket-mem flag */
>>      >       const char *argv2[] = {prgname, "-c", "10", "-n", "2",
>>      >                       "--file-prefix=" memtest,
>>     "--socket-mem=0,0,0,0"};
>>      >
>>      > @@ -1256,8 +1256,8 @@ test_memory_flags(void)
>>      >               printf("Error - process failed with valid -m flag!\n");
>>      >               return -1;
>>      >       }
>>      > -     if (launch_proc(argv2) == 0) {
>>      > -             printf("Error - process run ok with invalid (zero)
>>     --socket-mem!\n");
>>      > +     if (launch_proc(argv2) != 0) {
>>      > +             printf("Error - process failed with valid (zero)
>>     --socket-mem!\n");
>>      >               return -1;
>>      >       }
>>      >
>>      >
>>
>>
>> Reviewed-by: David Marchand <david.marchand@redhat.com <mailto:david.marchand@redhat.com>>
>>
>>
>> -- 
>> David Marchand
> 
> Now that i think of it, maybe it's not that simple.
> 
> --socket-mem/-m flag with zero is still an invalid value *if* --legacy-mem is involved. However, it is a valid value in non-legacy mode.
> 
> So maybe the test should reflect this, and the previous fix should have instead added a check for legacy mode rather than disabling the zero check outright.
> 

I don't think that it's a big deal, because "--socket-mem=0 --legacy-mem"
quickly fails with clear:

  EAL: WARNING: Master core has no memory on local socket!

IMHO, It's actually more informative than previous:

  EAL: invalid parameters for --socket-limit

I agree that we could add a test for a legacy-mem cases, but that's a bit
different task.
  
Anatoly Burakov Jan. 25, 2019, 2:12 p.m. UTC | #5
On 25-Jan-19 2:00 PM, Ilya Maximets wrote:
> On 25.01.2019 16:48, Burakov, Anatoly wrote:
>> On 25-Jan-19 9:53 AM, David Marchand wrote:
>>>
>>>
>>> On Fri, Jan 25, 2019 at 9:06 AM Ilya Maximets <i.maximets@samsung.com <mailto:i.maximets@samsung.com>> wrote:
>>>
>>>      On 25.01.2019 10:55, Ilya Maximets wrote:
>>>       > Dynamic memory mode allowes zero socket-mem because all the
>>>       > required memory could be allocated on demand.
>>>       >
>>>       > Fixes: 339c2244b4f1 ("eal: fix parsing zero socket memory and
>>>      limits")
>>>       > Cc: stable@dpdk.org <mailto:stable@dpdk.org>
>>>       >
>>>
>>>      Reported-by: Shuai Zhu <shuaix.zhu@intel.com
>>>      <mailto:shuaix.zhu@intel.com>>
>>>
>>>       > Signed-off-by: Ilya Maximets <i.maximets@samsung.com
>>>      <mailto:i.maximets@samsung.com>>
>>>
>>>       > ---
>>>       >  test/test/test_eal_flags.c | 6 +++---
>>>       >  1 file changed, 3 insertions(+), 3 deletions(-)
>>>       >
>>>       > diff --git a/test/test/test_eal_flags.c b/test/test/test_eal_flags.c
>>>       > index e3a60c7ae..81e345b87 100644
>>>       > --- a/test/test/test_eal_flags.c
>>>       > +++ b/test/test/test_eal_flags.c
>>>       > @@ -1158,7 +1158,7 @@ test_memory_flags(void)
>>>       >       const char *argv1[] = {prgname, "-c", "10", "-n", "2",
>>>       >                       "--file-prefix=" memtest, "-m",
>>>      DEFAULT_MEM_SIZE};
>>>       >
>>>       > -     /* invalid (zero) --socket-mem flag */
>>>       > +     /* valid (zero) --socket-mem flag */
>>>       >       const char *argv2[] = {prgname, "-c", "10", "-n", "2",
>>>       >                       "--file-prefix=" memtest,
>>>      "--socket-mem=0,0,0,0"};
>>>       >
>>>       > @@ -1256,8 +1256,8 @@ test_memory_flags(void)
>>>       >               printf("Error - process failed with valid -m flag!\n");
>>>       >               return -1;
>>>       >       }
>>>       > -     if (launch_proc(argv2) == 0) {
>>>       > -             printf("Error - process run ok with invalid (zero)
>>>      --socket-mem!\n");
>>>       > +     if (launch_proc(argv2) != 0) {
>>>       > +             printf("Error - process failed with valid (zero)
>>>      --socket-mem!\n");
>>>       >               return -1;
>>>       >       }
>>>       >
>>>       >
>>>
>>>
>>> Reviewed-by: David Marchand <david.marchand@redhat.com <mailto:david.marchand@redhat.com>>
>>>
>>>
>>> -- 
>>> David Marchand
>>
>> Now that i think of it, maybe it's not that simple.
>>
>> --socket-mem/-m flag with zero is still an invalid value *if* --legacy-mem is involved. However, it is a valid value in non-legacy mode.
>>
>> So maybe the test should reflect this, and the previous fix should have instead added a check for legacy mode rather than disabling the zero check outright.
>>
> 
> I don't think that it's a big deal, because "--socket-mem=0 --legacy-mem"
> quickly fails with clear:
> 
>    EAL: WARNING: Master core has no memory on local socket!
> 
> IMHO, It's actually more informative than previous:
> 
>    EAL: invalid parameters for --socket-limit
> 
> I agree that we could add a test for a legacy-mem cases, but that's a bit
> different task.
> 

Good point. Maybe leave it as is then :)

Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
  
Thomas Monjalon Jan. 26, 2019, 6:20 p.m. UTC | #6
25/01/2019 15:12, Burakov, Anatoly:
> On 25-Jan-19 2:00 PM, Ilya Maximets wrote:
> > On 25.01.2019 16:48, Burakov, Anatoly wrote:
> >> On 25-Jan-19 9:53 AM, David Marchand wrote:
> >>>
> >>> Reviewed-by: David Marchand <david.marchand@redhat.com <mailto:david.marchand@redhat.com>>
> >>
> >> Now that i think of it, maybe it's not that simple.
> >>
> >> --socket-mem/-m flag with zero is still an invalid value *if* --legacy-mem is involved. However, it is a valid value in non-legacy mode.
> >>
> >> So maybe the test should reflect this, and the previous fix should have instead added a check for legacy mode rather than disabling the zero check outright.
> >>
> > 
> > I don't think that it's a big deal, because "--socket-mem=0 --legacy-mem"
> > quickly fails with clear:
> > 
> >    EAL: WARNING: Master core has no memory on local socket!
> > 
> > IMHO, It's actually more informative than previous:
> > 
> >    EAL: invalid parameters for --socket-limit
> > 
> > I agree that we could add a test for a legacy-mem cases, but that's a bit
> > different task.
> 
> Good point. Maybe leave it as is then :)
> 
> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>

Applied, thanks
  

Patch

diff --git a/test/test/test_eal_flags.c b/test/test/test_eal_flags.c
index e3a60c7ae..81e345b87 100644
--- a/test/test/test_eal_flags.c
+++ b/test/test/test_eal_flags.c
@@ -1158,7 +1158,7 @@  test_memory_flags(void)
 	const char *argv1[] = {prgname, "-c", "10", "-n", "2",
 			"--file-prefix=" memtest, "-m", DEFAULT_MEM_SIZE};
 
-	/* invalid (zero) --socket-mem flag */
+	/* valid (zero) --socket-mem flag */
 	const char *argv2[] = {prgname, "-c", "10", "-n", "2",
 			"--file-prefix=" memtest, "--socket-mem=0,0,0,0"};
 
@@ -1256,8 +1256,8 @@  test_memory_flags(void)
 		printf("Error - process failed with valid -m flag!\n");
 		return -1;
 	}
-	if (launch_proc(argv2) == 0) {
-		printf("Error - process run ok with invalid (zero) --socket-mem!\n");
+	if (launch_proc(argv2) != 0) {
+		printf("Error - process failed with valid (zero) --socket-mem!\n");
 		return -1;
 	}