qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] hw/virtio: Add a protection against duplicate vu_scmi_stop c


From: Thomas Huth
Subject: Re: [PATCH] hw/virtio: Add a protection against duplicate vu_scmi_stop calls
Date: Thu, 3 Aug 2023 09:38:20 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

On 03/08/2023 09.10, Milan Zamazal wrote:
Fabiano Rosas <farosas@suse.de> writes:

Milan Zamazal <mzamazal@redhat.com> writes:

The QEMU CI fails in virtio-scmi test occasionally.  As reported by
Thomas Huth, this happens most likely when the system is loaded and it
fails with the following error:

   qemu-system-aarch64: ../../devel/qemu/hw/pci/msix.c:659:
   msix_unset_vector_notifiers: Assertion
`dev->msix_vector_use_notifier && dev->msix_vector_release_notifier'
failed.
   ../../devel/qemu/tests/qtest/libqtest.c:200: kill_qemu() detected
QEMU death from signal 6 (Aborted) (core dumped)

As discovered by Fabiano Rosas, the cause is a duplicate invocation of
msix_unset_vector_notifiers via duplicate vu_scmi_stop calls:

   msix_unset_vector_notifiers
   virtio_pci_set_guest_notifiers
   vu_scmi_stop
   vu_scmi_disconnect
   ...
   qemu_chr_write_buffer

   msix_unset_vector_notifiers
   virtio_pci_set_guest_notifiers
   vu_scmi_stop
   vu_scmi_set_status
   ...
   qemu_cleanup

While vu_scmi_stop calls are protected by vhost_dev_is_started()
check, it's apparently not enough.  vhost-user-blk and vhost-user-gpio
use an extra protection, see f5b22d06fb (vhost: recheck dev state in
the vhost_migration_log routine) for the motivation.  Let's use the
same in vhost-user-scmi, which fixes the failure above.

Fixes: a5dab090e142 ("hw/virtio: Add boilerplate for vhost-user-scmi device")
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>

Reviewed-by: Fabiano Rosas <farosas@suse.de>

Please note that this bug fix should IMO definitely go to 8.1, to not
have a bug in vhost-user-scmi and to not have broken tests.  Any chance
to get it merged?

If nobody else is planning a pull request with this patch included, I can take it for my next PR (since it is fixing the CI, I just saw another failure here:
https://gitlab.com/qemu-project/qemu/-/jobs/4790457938#L4784 )

 Thomas





reply via email to

[Prev in Thread] Current Thread [Next in Thread]