[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] linux-user: missing synchronization in CPU object reali
From: |
Max Filippov |
Subject: |
Re: [Qemu-devel] linux-user: missing synchronization in CPU object realization |
Date: |
Thu, 29 Mar 2018 10:59:17 -0700 |
On Thu, Mar 29, 2018 at 7:15 AM, Max Filippov <address@hidden> wrote:
> I'm running xtensa linux-user application that rapidly creates
> a lot of threads and I observe the following assertion failure:
>
> (process:26953): GLib-CRITICAL **: g_hash_table_iter_next: assertion
> 'ri->version == ri->hash_table->version' failed
> **
> ERROR:qemu/qom/object.c:1663:object_get_canonical_path_component: code
> should not be reached
[...]
> This happens because multiple threads concurrently call
> object_property_set_bool to realize cpu object in cpu_create,
> which results in the following call chain:
> device_set_realized -> object_property_add_child ->
> object_property_add -> g_hash_table_insert
> inserting newly created CPUs as children to /unattached without
> any locking.
Looking at it some more I wonder why do we build this object tree
n linux-user in the first place? It doesn't seem to be used anywhere.
--
Thanks.
-- Max