diff mbox series

failover: Silence warning messages during qtest

Message ID 20211220145314.390697-1-lvivier@redhat.com (mailing list archive)
State New, archived
Headers show
Series failover: Silence warning messages during qtest | expand

Commit Message

Laurent Vivier Dec. 20, 2021, 2:53 p.m. UTC
virtio-net-failover test tries several device combinations that produces
some expected warnings.
These warning can be confusing, so we disable them during the qtest
sequence.

Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
---
 hw/net/virtio-net.c   | 3 ++-
 migration/migration.c | 4 +++-
 2 files changed, 5 insertions(+), 2 deletions(-)

Comments

Philippe Mathieu-Daudé Dec. 20, 2021, 4:40 p.m. UTC | #1
On 12/20/21 15:53, Laurent Vivier wrote:
> virtio-net-failover test tries several device combinations that produces
> some expected warnings.
> These warning can be confusing, so we disable them during the qtest

Typo "warnings".

> sequence.
> 
> Reported-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---
>  hw/net/virtio-net.c   | 3 ++-
>  migration/migration.c | 4 +++-
>  2 files changed, 5 insertions(+), 2 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Jason Wang Dec. 21, 2021, 5:45 a.m. UTC | #2
On Mon, Dec 20, 2021 at 10:53 PM Laurent Vivier <lvivier@redhat.com> wrote:
>
> virtio-net-failover test tries several device combinations that produces
> some expected warnings.
> These warning can be confusing, so we disable them during the qtest
> sequence.
>
> Reported-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---

Acked-by: Jason Wang <jasowang@redhat.com>

>  hw/net/virtio-net.c   | 3 ++-
>  migration/migration.c | 4 +++-
>  2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
> index f2014d5ea0b3..c64a6b9d1745 100644
> --- a/hw/net/virtio-net.c
> +++ b/hw/net/virtio-net.c
> @@ -44,6 +44,7 @@
>  #include "hw/pci/pci.h"
>  #include "net_rx_pkt.h"
>  #include "hw/virtio/vhost.h"
> +#include "sysemu/qtest.h"
>
>  #define VIRTIO_NET_VM_VERSION    11
>
> @@ -925,7 +926,7 @@ static void virtio_net_set_features(VirtIODevice *vdev, uint64_t features)
>          qapi_event_send_failover_negotiated(n->netclient_name);
>          qatomic_set(&n->failover_primary_hidden, false);
>          failover_add_primary(n, &err);
> -        if (err) {
> +        if (err && !qtest_enabled()) {
>              warn_report_err(err);
>          }
>      }
> diff --git a/migration/migration.c b/migration/migration.c
> index 3de11ae921e0..065216561063 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -60,6 +60,7 @@
>  #include "qemu/yank.h"
>  #include "sysemu/cpus.h"
>  #include "yank_functions.h"
> +#include "sysemu/qtest.h"
>
>  #define MAX_THROTTLE  (128 << 20)      /* Migration transfer speed throttling */
>
> @@ -3766,7 +3767,8 @@ static void qemu_savevm_wait_unplug(MigrationState *s, int old_state,
>              while (timeout-- && qemu_savevm_state_guest_unplug_pending()) {
>                  qemu_sem_timedwait(&s->wait_unplug_sem, 250);
>              }
> -            if (qemu_savevm_state_guest_unplug_pending()) {
> +            if (qemu_savevm_state_guest_unplug_pending() &&
> +                !qtest_enabled()) {
>                  warn_report("migration: partially unplugged device on "
>                              "failure");
>              }
> --
> 2.33.1
>
Thomas Huth Dec. 21, 2021, 12:30 p.m. UTC | #3
On 20/12/2021 15.53, Laurent Vivier wrote:
> virtio-net-failover test tries several device combinations that produces
> some expected warnings.
> These warning can be confusing, so we disable them during the qtest
> sequence.
> 
> Reported-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---
>   hw/net/virtio-net.c   | 3 ++-
>   migration/migration.c | 4 +++-
>   2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
> index f2014d5ea0b3..c64a6b9d1745 100644
> --- a/hw/net/virtio-net.c
> +++ b/hw/net/virtio-net.c
> @@ -44,6 +44,7 @@
>   #include "hw/pci/pci.h"
>   #include "net_rx_pkt.h"
>   #include "hw/virtio/vhost.h"
> +#include "sysemu/qtest.h"
>   
>   #define VIRTIO_NET_VM_VERSION    11
>   
> @@ -925,7 +926,7 @@ static void virtio_net_set_features(VirtIODevice *vdev, uint64_t features)
>           qapi_event_send_failover_negotiated(n->netclient_name);
>           qatomic_set(&n->failover_primary_hidden, false);
>           failover_add_primary(n, &err);
> -        if (err) {
> +        if (err && !qtest_enabled()) {
>               warn_report_err(err);
>           }

This trips the sanitizer build now:

  https://gitlab.com/thuth/qemu/-/jobs/1907374419

I think you have to error_free(err) in case qtest_enabled() ?

  Thomas
Philippe Mathieu-Daudé Dec. 21, 2021, 1:26 p.m. UTC | #4
On 12/21/21 13:30, Thomas Huth wrote:
> On 20/12/2021 15.53, Laurent Vivier wrote:
>> virtio-net-failover test tries several device combinations that produces
>> some expected warnings.
>> These warning can be confusing, so we disable them during the qtest
>> sequence.
>>
>> Reported-by: Thomas Huth <thuth@redhat.com>
>> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
>> ---
>>   hw/net/virtio-net.c   | 3 ++-
>>   migration/migration.c | 4 +++-
>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
>> index f2014d5ea0b3..c64a6b9d1745 100644
>> --- a/hw/net/virtio-net.c
>> +++ b/hw/net/virtio-net.c
>> @@ -44,6 +44,7 @@
>>   #include "hw/pci/pci.h"
>>   #include "net_rx_pkt.h"
>>   #include "hw/virtio/vhost.h"
>> +#include "sysemu/qtest.h"
>>     #define VIRTIO_NET_VM_VERSION    11
>>   @@ -925,7 +926,7 @@ static void virtio_net_set_features(VirtIODevice
>> *vdev, uint64_t features)
>>           qapi_event_send_failover_negotiated(n->netclient_name);
>>           qatomic_set(&n->failover_primary_hidden, false);
>>           failover_add_primary(n, &err);
>> -        if (err) {
>> +        if (err && !qtest_enabled()) {
>>               warn_report_err(err);
>>           }
> 
> This trips the sanitizer build now:
> 
>  https://gitlab.com/thuth/qemu/-/jobs/1907374419
> 
> I think you have to error_free(err) in case qtest_enabled() ?

Indeed. In that case it might be better to add a
warn_report_err_except_qtest() helper...
diff mbox series

Patch

diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index f2014d5ea0b3..c64a6b9d1745 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -44,6 +44,7 @@ 
 #include "hw/pci/pci.h"
 #include "net_rx_pkt.h"
 #include "hw/virtio/vhost.h"
+#include "sysemu/qtest.h"
 
 #define VIRTIO_NET_VM_VERSION    11
 
@@ -925,7 +926,7 @@  static void virtio_net_set_features(VirtIODevice *vdev, uint64_t features)
         qapi_event_send_failover_negotiated(n->netclient_name);
         qatomic_set(&n->failover_primary_hidden, false);
         failover_add_primary(n, &err);
-        if (err) {
+        if (err && !qtest_enabled()) {
             warn_report_err(err);
         }
     }
diff --git a/migration/migration.c b/migration/migration.c
index 3de11ae921e0..065216561063 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -60,6 +60,7 @@ 
 #include "qemu/yank.h"
 #include "sysemu/cpus.h"
 #include "yank_functions.h"
+#include "sysemu/qtest.h"
 
 #define MAX_THROTTLE  (128 << 20)      /* Migration transfer speed throttling */
 
@@ -3766,7 +3767,8 @@  static void qemu_savevm_wait_unplug(MigrationState *s, int old_state,
             while (timeout-- && qemu_savevm_state_guest_unplug_pending()) {
                 qemu_sem_timedwait(&s->wait_unplug_sem, 250);
             }
-            if (qemu_savevm_state_guest_unplug_pending()) {
+            if (qemu_savevm_state_guest_unplug_pending() &&
+                !qtest_enabled()) {
                 warn_report("migration: partially unplugged device on "
                             "failure");
             }