All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/3] some fix in tests/migration
@ 2019-09-11  3:31 Mao Zhongyi
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 1/3] tests/migration: mem leak fix Mao Zhongyi
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Mao Zhongyi @ 2019-09-11  3:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru, Mao Zhongyi, laurent

This patchset mainly fixes memory leak, typo and return
value of stress function in stress test.

v2->v1:
- use g_autofree to release memory automatically instead
  of free().                     [Alex Bennée]
                      
Cc: armbru@redhat.com 
Cc: laurent@vivier.eu 
Cc: tony.nguyen@bt.com
Cc: alex.bennee@linaro.org

Mao Zhongyi (3):
  tests/migration: mem leak fix
  tests/migration: fix a typo in comment
  tests/migration:fix unreachable path in stress test

 tests/migration/stress.c | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

-- 
2.17.1





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

* [Qemu-devel] [PATCH v2 1/3] tests/migration: mem leak fix
  2019-09-11  3:31 [Qemu-devel] [PATCH v2 0/3] some fix in tests/migration Mao Zhongyi
@ 2019-09-11  3:31 ` Mao Zhongyi
  2019-09-11  8:21   ` Alex Bennée
  2019-10-01 15:31   ` Laurent Vivier
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 2/3] tests/migration: fix a typo in comment Mao Zhongyi
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 3/3] tests/migration:fix unreachable path in stress test Mao Zhongyi
  2 siblings, 2 replies; 14+ messages in thread
From: Mao Zhongyi @ 2019-09-11  3:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru, Mao Zhongyi, laurent

‘data’ has the possibility of memory leaks, so use the
glic macros g_autofree recommended by CODING_STYLE.rst
to automatically release the memory that returned from
g_malloc().

Cc: armbru@redhat.com
Cc: laurent@vivier.eu
Cc: tony.nguyen@bt.com
Cc: alex.bennee@linaro.org

Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
---
 tests/migration/stress.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/tests/migration/stress.c b/tests/migration/stress.c
index d9aa4afe92..6cbb2d49d3 100644
--- a/tests/migration/stress.c
+++ b/tests/migration/stress.c
@@ -170,10 +170,10 @@ static unsigned long long now(void)
 static int stressone(unsigned long long ramsizeMB)
 {
     size_t pagesPerMB = 1024 * 1024 / PAGE_SIZE;
-    char *ram = malloc(ramsizeMB * 1024 * 1024);
+    g_autofree char *ram = malloc(ramsizeMB * 1024 * 1024);
     char *ramptr;
     size_t i, j, k;
-    char *data = malloc(PAGE_SIZE);
+    g_autofree char *data = malloc(PAGE_SIZE);
     char *dataptr;
     size_t nMB = 0;
     unsigned long long before, after;
@@ -186,7 +186,6 @@ static int stressone(unsigned long long ramsizeMB)
     if (!data) {
         fprintf(stderr, "%s (%d): ERROR: cannot allocate %d bytes of RAM: %s\n",
                 argv0, gettid(), PAGE_SIZE, strerror(errno));
-        free(ram);
         return -1;
     }
 
@@ -198,8 +197,6 @@ static int stressone(unsigned long long ramsizeMB)
     memset(ram, 0xfe, ramsizeMB * 1024 * 1024);
 
     if (random_bytes(data, PAGE_SIZE) < 0) {
-        free(ram);
-        free(data);
         return -1;
     }
 
@@ -227,9 +224,6 @@ static int stressone(unsigned long long ramsizeMB)
             }
         }
     }
-
-    free(data);
-    free(ram);
 }
 
 
-- 
2.17.1





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

* [Qemu-devel] [PATCH v2 2/3] tests/migration: fix a typo in comment
  2019-09-11  3:31 [Qemu-devel] [PATCH v2 0/3] some fix in tests/migration Mao Zhongyi
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 1/3] tests/migration: mem leak fix Mao Zhongyi
@ 2019-09-11  3:31 ` Mao Zhongyi
  2019-10-01 15:31   ` Laurent Vivier
  2019-10-04 14:23   ` [Qemu-devel] " Philippe Mathieu-Daudé
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 3/3] tests/migration:fix unreachable path in stress test Mao Zhongyi
  2 siblings, 2 replies; 14+ messages in thread
From: Mao Zhongyi @ 2019-09-11  3:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru, Mao Zhongyi, laurent

Cc: armbru@redhat.com
Cc: laurent@vivier.eu
Cc: tony.nguyen@bt.com

Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/migration/stress.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/migration/stress.c b/tests/migration/stress.c
index 6cbb2d49d3..19a6eff5fd 100644
--- a/tests/migration/stress.c
+++ b/tests/migration/stress.c
@@ -191,7 +191,7 @@ static int stressone(unsigned long long ramsizeMB)
 
     /* We don't care about initial state, but we do want
      * to fault it all into RAM, otherwise the first iter
-     * of the loop below will be quite slow. We cna't use
+     * of the loop below will be quite slow. We can't use
      * 0x0 as the byte as gcc optimizes that away into a
      * calloc instead :-) */
     memset(ram, 0xfe, ramsizeMB * 1024 * 1024);
-- 
2.17.1





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

* [Qemu-devel] [PATCH v2 3/3] tests/migration:fix unreachable path in stress test
  2019-09-11  3:31 [Qemu-devel] [PATCH v2 0/3] some fix in tests/migration Mao Zhongyi
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 1/3] tests/migration: mem leak fix Mao Zhongyi
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 2/3] tests/migration: fix a typo in comment Mao Zhongyi
@ 2019-09-11  3:31 ` Mao Zhongyi
  2019-10-01 15:22   ` maozy
  2019-10-01 15:46   ` Laurent Vivier
  2 siblings, 2 replies; 14+ messages in thread
From: Mao Zhongyi @ 2019-09-11  3:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru, Mao Zhongyi, laurent

if stress function always return 0, the path
'if (stress(ramsizeGB, ncpus) < 0)' is nerver unreachable,
so fix it to allow the test failed.

Cc: armbru@redhat.com
Cc: laurent@vivier.eu
Cc: tony.nguyen@bt.com

Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
---
 tests/migration/stress.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/tests/migration/stress.c b/tests/migration/stress.c
index 19a6eff5fd..35903d90c4 100644
--- a/tests/migration/stress.c
+++ b/tests/migration/stress.c
@@ -224,6 +224,7 @@ static int stressone(unsigned long long ramsizeMB)
             }
         }
     }
+    return 0;
 }
 
 
@@ -248,9 +249,7 @@ static int stress(unsigned long long ramsizeGB, int ncpus)
                        stressthread,   &ramsizeMB);
     }
 
-    stressone(ramsizeMB);
-
-    return 0;
+    return stressone(ramsizeMB);
 }
 
 
-- 
2.17.1





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

* Re: [Qemu-devel] [PATCH v2 1/3] tests/migration: mem leak fix
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 1/3] tests/migration: mem leak fix Mao Zhongyi
@ 2019-09-11  8:21   ` Alex Bennée
  2019-10-01 15:31   ` Laurent Vivier
  1 sibling, 0 replies; 14+ messages in thread
From: Alex Bennée @ 2019-09-11  8:21 UTC (permalink / raw)
  To: Mao Zhongyi; +Cc: laurent, tony.nguyen, qemu-devel, armbru


Mao Zhongyi <maozhongyi@cmss.chinamobile.com> writes:

> ‘data’ has the possibility of memory leaks, so use the
> glic macros g_autofree recommended by CODING_STYLE.rst

nit: glib

> to automatically release the memory that returned from
> g_malloc().
>
> Cc: armbru@redhat.com
> Cc: laurent@vivier.eu
> Cc: tony.nguyen@bt.com
> Cc: alex.bennee@linaro.org
>
> Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

> ---
>  tests/migration/stress.c | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
> index d9aa4afe92..6cbb2d49d3 100644
> --- a/tests/migration/stress.c
> +++ b/tests/migration/stress.c
> @@ -170,10 +170,10 @@ static unsigned long long now(void)
>  static int stressone(unsigned long long ramsizeMB)
>  {
>      size_t pagesPerMB = 1024 * 1024 / PAGE_SIZE;
> -    char *ram = malloc(ramsizeMB * 1024 * 1024);
> +    g_autofree char *ram = malloc(ramsizeMB * 1024 * 1024);
>      char *ramptr;
>      size_t i, j, k;
> -    char *data = malloc(PAGE_SIZE);
> +    g_autofree char *data = malloc(PAGE_SIZE);
>      char *dataptr;
>      size_t nMB = 0;
>      unsigned long long before, after;
> @@ -186,7 +186,6 @@ static int stressone(unsigned long long ramsizeMB)
>      if (!data) {
>          fprintf(stderr, "%s (%d): ERROR: cannot allocate %d bytes of RAM: %s\n",
>                  argv0, gettid(), PAGE_SIZE, strerror(errno));
> -        free(ram);
>          return -1;
>      }
>
> @@ -198,8 +197,6 @@ static int stressone(unsigned long long ramsizeMB)
>      memset(ram, 0xfe, ramsizeMB * 1024 * 1024);
>
>      if (random_bytes(data, PAGE_SIZE) < 0) {
> -        free(ram);
> -        free(data);
>          return -1;
>      }
>
> @@ -227,9 +224,6 @@ static int stressone(unsigned long long ramsizeMB)
>              }
>          }
>      }
> -
> -    free(data);
> -    free(ram);
>  }


--
Alex Bennée


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

* Re: [PATCH v2 3/3] tests/migration:fix unreachable path in stress test
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 3/3] tests/migration:fix unreachable path in stress test Mao Zhongyi
@ 2019-10-01 15:22   ` maozy
  2019-10-01 15:46   ` Laurent Vivier
  1 sibling, 0 replies; 14+ messages in thread
From: maozy @ 2019-10-01 15:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru, laurent


ping...


On 9/11/19 11:31 AM, Mao Zhongyi wrote:
> if stress function always return 0, the path
> 'if (stress(ramsizeGB, ncpus) < 0)' is nerver unreachable,
> so fix it to allow the test failed.
>
> Cc: armbru@redhat.com
> Cc: laurent@vivier.eu
> Cc: tony.nguyen@bt.com
>
> Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
> ---
>   tests/migration/stress.c | 5 ++---
>   1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
> index 19a6eff5fd..35903d90c4 100644
> --- a/tests/migration/stress.c
> +++ b/tests/migration/stress.c
> @@ -224,6 +224,7 @@ static int stressone(unsigned long long ramsizeMB)
>               }
>           }
>       }
> +    return 0;
>   }
>   
>   
> @@ -248,9 +249,7 @@ static int stress(unsigned long long ramsizeGB, int ncpus)
>                          stressthread,   &ramsizeMB);
>       }
>   
> -    stressone(ramsizeMB);
> -
> -    return 0;
> +    return stressone(ramsizeMB);
>   }
>   
>   




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

* Re: [PATCH v2 1/3] tests/migration: mem leak fix
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 1/3] tests/migration: mem leak fix Mao Zhongyi
  2019-09-11  8:21   ` Alex Bennée
@ 2019-10-01 15:31   ` Laurent Vivier
  2019-10-03  5:34     ` maozy
  1 sibling, 1 reply; 14+ messages in thread
From: Laurent Vivier @ 2019-10-01 15:31 UTC (permalink / raw)
  To: Mao Zhongyi, qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru

Le 11/09/2019 à 05:31, Mao Zhongyi a écrit :
> ‘data’ has the possibility of memory leaks, so use the
> glic macros g_autofree recommended by CODING_STYLE.rst
> to automatically release the memory that returned from
> g_malloc().
> 
> Cc: armbru@redhat.com
> Cc: laurent@vivier.eu
> Cc: tony.nguyen@bt.com
> Cc: alex.bennee@linaro.org
> 
> Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
> ---
>  tests/migration/stress.c | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
> index d9aa4afe92..6cbb2d49d3 100644
> --- a/tests/migration/stress.c
> +++ b/tests/migration/stress.c
> @@ -170,10 +170,10 @@ static unsigned long long now(void)
>  static int stressone(unsigned long long ramsizeMB)
>  {
>      size_t pagesPerMB = 1024 * 1024 / PAGE_SIZE;
> -    char *ram = malloc(ramsizeMB * 1024 * 1024);
> +    g_autofree char *ram = malloc(ramsizeMB * 1024 * 1024);
>      char *ramptr;
>      size_t i, j, k;
> -    char *data = malloc(PAGE_SIZE);
> +    g_autofree char *data = malloc(PAGE_SIZE);

So perhaps g_malloc() could be a better choice as it will exit on
allocation failure?

Thanks,
Laurent



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

* Re: [PATCH v2 2/3] tests/migration: fix a typo in comment
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 2/3] tests/migration: fix a typo in comment Mao Zhongyi
@ 2019-10-01 15:31   ` Laurent Vivier
  2019-10-04 14:23   ` [Qemu-devel] " Philippe Mathieu-Daudé
  1 sibling, 0 replies; 14+ messages in thread
From: Laurent Vivier @ 2019-10-01 15:31 UTC (permalink / raw)
  To: Mao Zhongyi, qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru

Le 11/09/2019 à 05:31, Mao Zhongyi a écrit :
> Cc: armbru@redhat.com
> Cc: laurent@vivier.eu
> Cc: tony.nguyen@bt.com
> 
> Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  tests/migration/stress.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
> index 6cbb2d49d3..19a6eff5fd 100644
> --- a/tests/migration/stress.c
> +++ b/tests/migration/stress.c
> @@ -191,7 +191,7 @@ static int stressone(unsigned long long ramsizeMB)
>  
>      /* We don't care about initial state, but we do want
>       * to fault it all into RAM, otherwise the first iter
> -     * of the loop below will be quite slow. We cna't use
> +     * of the loop below will be quite slow. We can't use
>       * 0x0 as the byte as gcc optimizes that away into a
>       * calloc instead :-) */
>      memset(ram, 0xfe, ramsizeMB * 1024 * 1024);
> 

Reviewed-by: Laurent Vivier <laurent@vivier.eu>


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

* Re: [PATCH v2 3/3] tests/migration:fix unreachable path in stress test
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 3/3] tests/migration:fix unreachable path in stress test Mao Zhongyi
  2019-10-01 15:22   ` maozy
@ 2019-10-01 15:46   ` Laurent Vivier
  2019-10-03  7:17     ` _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test maozy
  1 sibling, 1 reply; 14+ messages in thread
From: Laurent Vivier @ 2019-10-01 15:46 UTC (permalink / raw)
  To: Mao Zhongyi, qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru

Le 11/09/2019 à 05:31, Mao Zhongyi a écrit :
> if stress function always return 0, the path
> 'if (stress(ramsizeGB, ncpus) < 0)' is nerver unreachable,
> so fix it to allow the test failed.
> 
> Cc: armbru@redhat.com
> Cc: laurent@vivier.eu
> Cc: tony.nguyen@bt.com
> 
> Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
> ---
>  tests/migration/stress.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
> index 19a6eff5fd..35903d90c4 100644
> --- a/tests/migration/stress.c
> +++ b/tests/migration/stress.c
> @@ -224,6 +224,7 @@ static int stressone(unsigned long long ramsizeMB)
>              }
>          }
>      }
> +    return 0;
>  }

before the return, we have an infinite loop "while(1) { }".

So this part is dead code.

In fact, if the function exits, it's because it fails, otherwise it
loops infinitely, so I think we should change its type to void and
stress should always return -1.

Thanks,
Laurent


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

* Re: [PATCH v2 1/3] tests/migration: mem leak fix
  2019-10-01 15:31   ` Laurent Vivier
@ 2019-10-03  5:34     ` maozy
  0 siblings, 0 replies; 14+ messages in thread
From: maozy @ 2019-10-03  5:34 UTC (permalink / raw)
  To: Laurent Vivier, qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru


On 10/1/19 11:31 PM, Laurent Vivier wrote:
> Le 11/09/2019 à 05:31, Mao Zhongyi a écrit :
>> ‘data’ has the possibility of memory leaks, so use the
>> glic macros g_autofree recommended by CODING_STYLE.rst
>> to automatically release the memory that returned from
>> g_malloc().
>>
>> Cc: armbru@redhat.com
>> Cc: laurent@vivier.eu
>> Cc: tony.nguyen@bt.com
>> Cc: alex.bennee@linaro.org
>>
>> Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
>> ---
>>   tests/migration/stress.c | 10 ++--------
>>   1 file changed, 2 insertions(+), 8 deletions(-)
>>
>> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
>> index d9aa4afe92..6cbb2d49d3 100644
>> --- a/tests/migration/stress.c
>> +++ b/tests/migration/stress.c
>> @@ -170,10 +170,10 @@ static unsigned long long now(void)
>>   static int stressone(unsigned long long ramsizeMB)
>>   {
>>       size_t pagesPerMB = 1024 * 1024 / PAGE_SIZE;
>> -    char *ram = malloc(ramsizeMB * 1024 * 1024);
>> +    g_autofree char *ram = malloc(ramsizeMB * 1024 * 1024);
>>       char *ramptr;
>>       size_t i, j, k;
>> -    char *data = malloc(PAGE_SIZE);
>> +    g_autofree char *data = malloc(PAGE_SIZE);
> So perhaps g_malloc() could be a better choice as it will exit on
> allocation failure?

right,  will fix it in next.

Thanks,
Mao
>
> Thanks,
> Laurent
>
>




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

* Re: _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test
  2019-10-01 15:46   ` Laurent Vivier
@ 2019-10-03  7:17     ` maozy
  2019-10-03  9:23       ` _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test Laurent Vivier
  0 siblings, 1 reply; 14+ messages in thread
From: maozy @ 2019-10-03  7:17 UTC (permalink / raw)
  To: Laurent Vivier, qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru

Hi,  Laurent

On 10/1/19 11:46 PM, Laurent Vivier wrote:
> Le 11/09/2019 à 05:31, Mao Zhongyi a écrit :
>> if stress function always return 0, the path
>> 'if (stress(ramsizeGB, ncpus) < 0)' is nerver unreachable,
>> so fix it to allow the test failed.
>>
>> Cc: armbru@redhat.com
>> Cc: laurent@vivier.eu
>> Cc: tony.nguyen@bt.com
>>
>> Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
>> ---
>>   tests/migration/stress.c | 5 ++---
>>   1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
>> index 19a6eff5fd..35903d90c4 100644
>> --- a/tests/migration/stress.c
>> +++ b/tests/migration/stress.c
>> @@ -224,6 +224,7 @@ static int stressone(unsigned long long ramsizeMB)
>>               }
>>           }
>>       }
>> +    return 0;
>>   }
> before the return, we have an infinite loop "while(1) { }".
>
> So this part is dead code.
>
> In fact, if the function exits, it's because it fails, otherwise it
> loops infinitely, so I think we should change its type to void and
> stress should always return -1.
Yes, I think it's ok to change stressone typo to void because
no one cares about its return value, but if make stress always
return -1, main will always exited in exit_failure, like this:

...
     if (stress(ramsizeGB, ncpus) < 0)
         exit_failure();

     exit_success();
}

so, perhaps also change stress typo to void may be good. then:

...
     stress(ramsizeGB, ncpus);

     exit_success();
}

Anther way , make stressone return 0 when infinite loop fails to
exit, then main can handle both success and failure case.

what do you think?

Thanks,
Mao
> Thanks,
> Laurent
>




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

* Re: _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test
  2019-10-03  7:17     ` _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test maozy
@ 2019-10-03  9:23       ` Laurent Vivier
  2019-10-04  1:59         ` _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test maozy
  0 siblings, 1 reply; 14+ messages in thread
From: Laurent Vivier @ 2019-10-03  9:23 UTC (permalink / raw)
  To: maozy, qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru

Le 03/10/2019 à 09:17, maozy a écrit :
> Hi,  Laurent
> 
> On 10/1/19 11:46 PM, Laurent Vivier wrote:
>> Le 11/09/2019 à 05:31, Mao Zhongyi a écrit :
>>> if stress function always return 0, the path
>>> 'if (stress(ramsizeGB, ncpus) < 0)' is nerver unreachable,
>>> so fix it to allow the test failed.
>>>
>>> Cc: armbru@redhat.com
>>> Cc: laurent@vivier.eu
>>> Cc: tony.nguyen@bt.com
>>>
>>> Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
>>> ---
>>>   tests/migration/stress.c | 5 ++---
>>>   1 file changed, 2 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
>>> index 19a6eff5fd..35903d90c4 100644
>>> --- a/tests/migration/stress.c
>>> +++ b/tests/migration/stress.c
>>> @@ -224,6 +224,7 @@ static int stressone(unsigned long long ramsizeMB)
>>>               }
>>>           }
>>>       }
>>> +    return 0;
>>>   }
>> before the return, we have an infinite loop "while(1) { }".
>>
>> So this part is dead code.
>>
>> In fact, if the function exits, it's because it fails, otherwise it
>> loops infinitely, so I think we should change its type to void and
>> stress should always return -1.
> Yes, I think it's ok to change stressone typo to void because
> no one cares about its return value, but if make stress always
> return -1, main will always exited in exit_failure, like this:
> 
> ...
>     if (stress(ramsizeGB, ncpus) < 0)
>         exit_failure();
> 
>     exit_success();
> }
> 
> so, perhaps also change stress typo to void may be good. then:
> 
> ...
>     stress(ramsizeGB, ncpus);
> 
>     exit_success();
> }
> 
> Anther way , make stressone return 0 when infinite loop fails to
> exit, then main can handle both success and failure case.
> 
> what do you think?
> 

If stressone() or stress() exits it's because of a failure because the
test runs forever otherwise.

So I think there is no problem to use exit_failure() as the exit
function of main(): it should never be reached if the test runs without
error.

Thanks,
Laurent


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

* Re: _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test
  2019-10-03  9:23       ` _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test Laurent Vivier
@ 2019-10-04  1:59         ` maozy
  0 siblings, 0 replies; 14+ messages in thread
From: maozy @ 2019-10-04  1:59 UTC (permalink / raw)
  To: Laurent Vivier, qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru



On 10/3/19 5:23 PM, Laurent Vivier wrote:
> Le 03/10/2019 à 09:17, maozy a écrit :
>> Hi,  Laurent
>>
>> On 10/1/19 11:46 PM, Laurent Vivier wrote:
>>> Le 11/09/2019 à 05:31, Mao Zhongyi a écrit :
>>>> if stress function always return 0, the path
>>>> 'if (stress(ramsizeGB, ncpus) < 0)' is nerver unreachable,
>>>> so fix it to allow the test failed.
>>>>
>>>> Cc: armbru@redhat.com
>>>> Cc: laurent@vivier.eu
>>>> Cc: tony.nguyen@bt.com
>>>>
>>>> Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
>>>> ---
>>>>    tests/migration/stress.c | 5 ++---
>>>>    1 file changed, 2 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
>>>> index 19a6eff5fd..35903d90c4 100644
>>>> --- a/tests/migration/stress.c
>>>> +++ b/tests/migration/stress.c
>>>> @@ -224,6 +224,7 @@ static int stressone(unsigned long long ramsizeMB)
>>>>                }
>>>>            }
>>>>        }
>>>> +    return 0;
>>>>    }
>>> before the return, we have an infinite loop "while(1) { }".
>>>
>>> So this part is dead code.
>>>
>>> In fact, if the function exits, it's because it fails, otherwise it
>>> loops infinitely, so I think we should change its type to void and
>>> stress should always return -1.
>> Yes, I think it's ok to change stressone typo to void because
>> no one cares about its return value, but if make stress always
>> return -1, main will always exited in exit_failure, like this:
>>
>> ...
>>      if (stress(ramsizeGB, ncpus) < 0)
>>          exit_failure();
>>
>>      exit_success();
>> }
>>
>> so, perhaps also change stress typo to void may be good. then:
>>
>> ...
>>      stress(ramsizeGB, ncpus);
>>
>>      exit_success();
>> }
>>
>> Anther way , make stressone return 0 when infinite loop fails to
>> exit, then main can handle both success and failure case.
>>
>> what do you think?
>>
> 
> If stressone() or stress() exits it's because of a failure because the
> test runs forever otherwise.
> 
> So I think there is no problem to use exit_failure() as the exit
> function of main(): it should never be reached if the test runs without
> error.

OK, I see, thanks a lot.

> 
> Thanks,
> Laurent
> 




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

* Re: [Qemu-devel] [PATCH v2 2/3] tests/migration: fix a typo in comment
  2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 2/3] tests/migration: fix a typo in comment Mao Zhongyi
  2019-10-01 15:31   ` Laurent Vivier
@ 2019-10-04 14:23   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-10-04 14:23 UTC (permalink / raw)
  To: Mao Zhongyi, qemu-devel; +Cc: tony.nguyen, alex.bennee, armbru, laurent

On 9/11/19 5:31 AM, Mao Zhongyi wrote:
> Cc: armbru@redhat.com
> Cc: laurent@vivier.eu
> Cc: tony.nguyen@bt.com
> 
> Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   tests/migration/stress.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
> index 6cbb2d49d3..19a6eff5fd 100644
> --- a/tests/migration/stress.c
> +++ b/tests/migration/stress.c
> @@ -191,7 +191,7 @@ static int stressone(unsigned long long ramsizeMB)
>   
>       /* We don't care about initial state, but we do want
>        * to fault it all into RAM, otherwise the first iter
> -     * of the loop below will be quite slow. We cna't use
> +     * of the loop below will be quite slow. We can't use
>        * 0x0 as the byte as gcc optimizes that away into a
>        * calloc instead :-) */
>       memset(ram, 0xfe, ramsizeMB * 1024 * 1024);
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>


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

end of thread, other threads:[~2019-10-04 14:24 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-11  3:31 [Qemu-devel] [PATCH v2 0/3] some fix in tests/migration Mao Zhongyi
2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 1/3] tests/migration: mem leak fix Mao Zhongyi
2019-09-11  8:21   ` Alex Bennée
2019-10-01 15:31   ` Laurent Vivier
2019-10-03  5:34     ` maozy
2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 2/3] tests/migration: fix a typo in comment Mao Zhongyi
2019-10-01 15:31   ` Laurent Vivier
2019-10-04 14:23   ` [Qemu-devel] " Philippe Mathieu-Daudé
2019-09-11  3:31 ` [Qemu-devel] [PATCH v2 3/3] tests/migration:fix unreachable path in stress test Mao Zhongyi
2019-10-01 15:22   ` maozy
2019-10-01 15:46   ` Laurent Vivier
2019-10-03  7:17     ` _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test maozy
2019-10-03  9:23       ` _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test Laurent Vivier
2019-10-04  1:59         ` _[PATCH_v2_3/3]_tests/migration:fix_unreachable_path_in_stress_test maozy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.