[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] ae2990: osdep: initialize glib threads in all
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] ae2990: osdep: initialize glib threads in all QEMU tools |
Date: |
Tue, 25 Mar 2014 09:00:07 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: ae2990c259abec198879c362dc13f7047f26c2cf
https://github.com/qemu/qemu/commit/ae2990c259abec198879c362dc13f7047f26c2cf
Author: Stefan Hajnoczi <address@hidden>
Date: 2014-03-25 (Tue, 25 Mar 2014)
Changed paths:
M trace/simple.c
M util/osdep.c
M vl.c
Log Message:
-----------
osdep: initialize glib threads in all QEMU tools
glib versions prior to 2.31.0 require an explicit g_thread_init() call
to enable multi-threading.
Failure to initialize threading causes glib to take single-threaded code
paths without synchronization. For example, the g_slice allocator will
crash due to race conditions.
Fix this for all QEMU tool programs (qemu-nbd, qemu-io, qemu-img) by
moving the g_thread_init() call from vl.c:main() into a new
osdep.c:thread_init() constructor function.
thread_init() has __attribute__((constructor)) and is automatically
invoked by the runtime during startup.
We can now drop the "simple" trace backend's g_thread_init() call since
thread_init() already called it.
Note that we must keep coroutine-gthread.c's g_thread_init() call which
is located in a constructor function. There is no guarantee for
constructor function ordering so thread_init() may only be called later.
Reported-by: Mario de Chenno <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: 4fd6a984b93701fcb40a0053098ae5c2c4ee27f4
https://github.com/qemu/qemu/commit/4fd6a984b93701fcb40a0053098ae5c2c4ee27f4
Author: Prasad Joshi <address@hidden>
Date: 2014-03-25 (Tue, 25 Mar 2014)
Changed paths:
M qemu-img.c
Log Message:
-----------
qemu-img: mandate argument to 'qemu-img check --repair'
qemu-img check --repair option accepts an argument. The argument to
--repair switch can either be 'all' or 'leak'. Fix the long option to
mandate argument with --repair switch.
The patch fixes following segmentation fault
Core was generated by `qemu-img check -f qcow2 --repair all t.qcow2'.
Program terminated with signal 11, Segmentation fault.
0 in img_check (argc=6, argv=0x7fffab9b8a10) at qemu-img.c:588
588 if (!strcmp(optarg, "leaks")) {
(gdb) bt
0 img_check (argc=6, argv=0x7fffab9b8a10) at qemu-img.c:588
1 __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
2 _start ()
(gdb)
Signed-off-by: Prasad Joshi <address@hidden>
Reviewed-by: Leandro Dorileo <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: dc6fb73d219472e011d93867f5e7eebfffde0319
https://github.com/qemu/qemu/commit/dc6fb73d219472e011d93867f5e7eebfffde0319
Author: Deepak Kathayat <address@hidden>
Date: 2014-03-25 (Tue, 25 Mar 2014)
Changed paths:
M block/gluster.c
M block/qcow.c
M block/sheepdog.c
M block/vdi.c
M block/vhdx-log.c
M slirp/tftp.c
Log Message:
-----------
Fixed various typos
Signed-off-by: Deepak Kathayat <address@hidden>
Reviewed-by: Andreas Färber <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: cc8c9d6c6f28e4e376a6561a2a31524fd069bc2d
https://github.com/qemu/qemu/commit/cc8c9d6c6f28e4e376a6561a2a31524fd069bc2d
Author: Paolo Bonzini <address@hidden>
Date: 2014-03-25 (Tue, 25 Mar 2014)
Changed paths:
M block/mirror.c
M trace-events
Log Message:
-----------
mirror: fix throttling delay calculation
The throttling delay calculation was using an inaccurate sector count to
calculate the time to sleep. This broke rate-limiting for the block
mirror job.
Move the delay calculation into mirror_iteration() where we know how
many sectors were transferred. This lets us calculate an accurate delay
time.
Reported-by: Joaquim Barrera <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: 7b770c720b28b8ac5b82ae431f2f354b7f8add91
https://github.com/qemu/qemu/commit/7b770c720b28b8ac5b82ae431f2f354b7f8add91
Author: Stefan Hajnoczi <address@hidden>
Date: 2014-03-25 (Tue, 25 Mar 2014)
Changed paths:
M block/mirror.c
Log Message:
-----------
mirror: fix early wake from sleep due to aio
The mirror blockjob coroutine rate-limits itself by sleeping. The
coroutine also performs I/O asynchronously so it's important that the
aio callback doesn't wake the coroutine early as that breaks
rate-limiting.
Reported-by: Joaquim Barrera <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: d4cc1a213f8cb22fa0861ae2a907c60cf00796ff
https://github.com/qemu/qemu/commit/d4cc1a213f8cb22fa0861ae2a907c60cf00796ff
Author: Peter Maydell <address@hidden>
Date: 2014-03-25 (Tue, 25 Mar 2014)
Changed paths:
M block/gluster.c
M block/mirror.c
M block/qcow.c
M block/sheepdog.c
M block/vdi.c
M block/vhdx-log.c
M qemu-img.c
M slirp/tftp.c
M trace-events
M trace/simple.c
M util/osdep.c
M vl.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into
staging
Block pull request
# gpg: Signature made Tue 25 Mar 2014 14:34:45 GMT using RSA key ID 81AB73C8
# gpg: Good signature from "Stefan Hajnoczi <address@hidden>"
# gpg: aka "Stefan Hajnoczi <address@hidden>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8
* remotes/stefanha/tags/block-pull-request:
mirror: fix early wake from sleep due to aio
mirror: fix throttling delay calculation
Fixed various typos
qemu-img: mandate argument to 'qemu-img check --repair'
osdep: initialize glib threads in all QEMU tools
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/839a5547574e...d4cc1a213f8c
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] ae2990: osdep: initialize glib threads in all QEMU tools,
GitHub <=