[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 08/21] rcu: run RCU callbacks under the BQL
From: |
Leon Alrae |
Subject: |
Re: [Qemu-devel] [PULL 08/21] rcu: run RCU callbacks under the BQL |
Date: |
Thu, 26 Feb 2015 13:40:26 +0000 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
On 26/02/2015 11:35, Paolo Bonzini wrote:
>
>
> On 25/02/2015 18:16, Leon Alrae wrote:
>> Hi,
>>
>> On 16/02/2015 18:17, Paolo Bonzini wrote:
>>> This needs to go away sooner or later, but one complication is the
>>> complex VFIO data structures that are modified in instance_finalize.
>>> Take a shortcut for now.
>>
>> It looks like this commit introduced a race condition. QEMU segfaults
>> very early in one of my tests where I boot Linux, and on one of my
>> machines it's easier to reproduce than on the others.
>
> This should be enough to fix it. If it works for you I'll send a pull
> request as soon as possible.
>
> diff --git a/cpus.c b/cpus.c
> index 1cd9867..7bed67b 100644
> --- a/cpus.c
> +++ b/cpus.c
> @@ -1115,7 +1115,7 @@ bool qemu_in_vcpu_thread(void)
>
> void qemu_mutex_lock_iothread(void)
> {
> - if (!tcg_enabled()) {
> + if (!tcg_enabled() || !first_cpu) {
> qemu_mutex_lock(&qemu_global_mutex);
> } else {
> iothread_requesting_mutex = true;
It works for me -- it fixes the crash, thanks.
FYI I hit some other problem where QEMU stops responding (deadlock?)
during a stress test quite randomly. The issue is most likely introduced
by this commit (and above fix doesn't seem to be related). I'm going to
look into that.
Leon
- [Qemu-devel] [PULL 02/21] qdev: support to get a device firmware path directly, (continued)
- [Qemu-devel] [PULL 02/21] qdev: support to get a device firmware path directly, Paolo Bonzini, 2015/02/16
- [Qemu-devel] [PULL 03/21] vhost-scsi: add bootindex property, Paolo Bonzini, 2015/02/16
- [Qemu-devel] [PULL 04/21] vhost-scsi: expose the TYPE_FW_PATH_PROVIDER interface, Paolo Bonzini, 2015/02/16
- [Qemu-devel] [PULL 06/21] vhost-scsi: set the bootable value of channel/target/lun, Paolo Bonzini, 2015/02/16
- [Qemu-devel] [PULL 07/21] rcu: do not let RCU callbacks pile up indefinitely, Paolo Bonzini, 2015/02/16
- [Qemu-devel] [PULL 05/21] vhost-scsi: add a property for booting, Paolo Bonzini, 2015/02/16
- [Qemu-devel] [PULL 01/21] kvm_stat: Add kvm_exit reasons for aarch64, Paolo Bonzini, 2015/02/16
- [Qemu-devel] [PULL 08/21] rcu: run RCU callbacks under the BQL, Paolo Bonzini, 2015/02/16
[Qemu-devel] [PULL 10/21] pcie: remove mmconfig memory leak and wrap mmconfig update with transaction, Paolo Bonzini, 2015/02/16
[Qemu-devel] [PULL 11/21] pci: split shpc_cleanup and shpc_free, Paolo Bonzini, 2015/02/16
[Qemu-devel] [PULL 12/21] docs: clarify memory region lifecycle, Paolo Bonzini, 2015/02/16
[Qemu-devel] [PULL 14/21] exec: make iotlb RCU-friendly, Paolo Bonzini, 2015/02/16
[Qemu-devel] [PULL 15/21] exec: RCUify AddressSpaceDispatch, Paolo Bonzini, 2015/02/16
[Qemu-devel] [PULL 09/21] memory: keep the owner of the AddressSpace alive until do_address_space_destroy, Paolo Bonzini, 2015/02/16
[Qemu-devel] [PULL 13/21] exec: introduce cpu_reload_memory_map, Paolo Bonzini, 2015/02/16
[Qemu-devel] [PULL 16/21] rcu: introduce RCU-enabled QLIST, Paolo Bonzini, 2015/02/16