qemu-commits
[Top][All Lists]
Advanced

[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

reply via email to

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