Paolo Bonzini 6b49809c59 cpus: fix deadlock and segfault in qemu_mutex_lock_iothread
When two threads (other than the low-priority TCG VCPU thread)
are competing for the iothread lock, a deadlock can happen.  This
is because iothread_requesting_mutex is set to false by the first
thread that gets the mutex, and then the VCPU thread might never
yield from the execution loop.  If iothread_requesting_mutex is
changed from a bool to a counter, the deadlock is fixed.

However, there is another bug in qemu_mutex_lock_iothread that
can be triggered by the new call_rcu thread.  The bug happens
if qemu_mutex_lock_iothread is called before the CPUs are
created.  In that case, first_cpu is NULL and the caller
segfaults in qemu_mutex_lock_iothread.  To fix this, just
do not do the kick if first_cpu is NULL.

Reported-by: Leon Alrae <leon.alrae@imgtec.com>
Reported-by: Andreas Gustafsson <gson@gson.org>
Tested-by: Leon Alrae <leon.alrae@imgtec.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-03-02 10:57:07 +01:00
2015-02-16 17:30:19 +01:00
2013-04-18 13:50:53 +02:00
2015-02-06 16:11:38 +00:00
2015-02-19 09:33:03 +01:00
2015-02-19 09:33:03 +01:00
2015-02-13 11:44:50 +00:00
2015-02-12 21:21:38 -08:00
2012-09-07 09:02:44 +03:00
2014-06-16 13:24:35 +02:00
2013-09-05 09:40:31 -05:00
2015-02-23 10:56:09 -05:00
2013-10-11 09:34:56 -07:00
2008-10-12 17:54:42 +00:00
2015-02-16 17:30:19 +01:00
2015-01-07 16:16:26 +01:00
2015-02-16 17:31:55 +01:00
2013-07-23 02:41:31 +02:00
2015-02-06 14:35:52 +00:00
2015-02-05 17:16:14 +01:00
2015-02-16 14:36:03 +00:00
2015-01-22 17:41:59 +00:00
2015-02-16 15:07:19 +00:00
2014-05-24 00:07:29 +04:00
2013-10-11 09:34:56 -07:00
2015-01-14 10:38:57 +01:00
2015-02-12 21:21:38 -08:00
2014-06-05 16:10:33 +02:00
2014-12-09 21:48:34 +00:00
2013-10-11 09:34:56 -07:00

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team
Description
A fork of QEMU-Nyx which is better suited for my bachelors thesis
Readme 154 MiB
Languages
C 90.3%
Dylan 2.5%
Python 2.1%
C++ 2%
Shell 1.7%
Other 1.4%