qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] a8c574: qcow2: call CoQueue APIs under CoMute


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] a8c574: qcow2: call CoQueue APIs under CoMutex
Date: Mon, 17 Jul 2017 04:52:08 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: a8c57408cd5443186c5b1c7a393702b316d4722b
      
https://github.com/qemu/qemu/commit/a8c57408cd5443186c5b1c7a393702b316d4722b
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M block/qcow2.c

  Log Message:
  -----------
  qcow2: call CoQueue APIs under CoMutex

Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 667221c10d05a22573dae1928880bca525f8cd20
      
https://github.com/qemu/qemu/commit/667221c10d05a22573dae1928880bca525f8cd20
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M include/qemu/coroutine.h
    M util/qemu-coroutine-lock.c

  Log Message:
  -----------
  coroutine-lock: add qemu_co_rwlock_downgrade and qemu_co_rwlock_upgrade

These functions are more efficient in the presence of contention.
qemu_co_rwlock_downgrade also guarantees not to block, which may
be useful in some algorithms too.

Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 1e886639791762e89b51aa0507f523c6a1448831
      
https://github.com/qemu/qemu/commit/1e886639791762e89b51aa0507f523c6a1448831
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M block/vdi.c

  Log Message:
  -----------
  vdi: make it thread-safe

The VirtualBox driver is using a mutex to order all allocating writes,
but it is not protecting accesses to the bitmap because they implicitly
happen under the AioContext mutex.  Change this to use a CoRwlock
explicitly.

Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 778b087e513ea6fdc525c5a194ff7c9b8d3f53cb
      
https://github.com/qemu/qemu/commit/778b087e513ea6fdc525c5a194ff7c9b8d3f53cb
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M block/vpc.c

  Log Message:
  -----------
  vpc: make it thread-safe

Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 254aee4dbbec1b8ab0de23c435e927d1501bae34
      
https://github.com/qemu/qemu/commit/254aee4dbbec1b8ab0de23c435e927d1501bae34
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M block/vvfat.c

  Log Message:
  -----------
  vvfat: make it thread-safe

Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: e7569c18292e1e17004d88a4543e2dfcdb2f6d90
      
https://github.com/qemu/qemu/commit/e7569c18292e1e17004d88a4543e2dfcdb2f6d90
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: move tail of qed_aio_write_main to qed_aio_write_{cow, alloc}

This part is never called for in-place writes, move it away to avoid
the "backwards" coding style typical of callback-based code.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 61124f03ab7e71d269417aafddbc2501d0379bc6
      
https://github.com/qemu/qemu/commit/61124f03ab7e71d269417aafddbc2501d0379bc6
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M block/io.c
    M block/qed.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: invoke .bdrv_drain callback in coroutine context and from AioContext

This will let the callback take a CoMutex in the next patch.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 61c7887e0f3dcfa9c4ccdfe43374243a4a5c0e8d
      
https://github.com/qemu/qemu/commit/61c7887e0f3dcfa9c4ccdfe43374243a4a5c0e8d
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: introduce bdrv_qed_init_state

This will be used in the next patch, which will call bdrv_qed_do_open
with a CoMutex taken.  bdrv_qed_init_state provides a nice place to
initialize it.

Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 1f01e50b8330c24714ddca5841fdbb703076b121
      
https://github.com/qemu/qemu/commit/1f01e50b8330c24714ddca5841fdbb703076b121
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M block/qed-cluster.c
    M block/qed-l2-cache.c
    M block/qed-table.c
    M block/qed.c
    M block/qed.h

  Log Message:
  -----------
  qed: protect table cache with CoMutex

This makes the driver thread-safe.  The CoMutex is dropped temporarily
while accessing the data clusters or the backing file.

Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: f1af3251f885f3b8adf73ba078500f2eeefbedae
      
https://github.com/qemu/qemu/commit/f1af3251f885f3b8adf73ba078500f2eeefbedae
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M block/sheepdog.c

  Log Message:
  -----------
  sheepdog: add queue_lock

Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 5aca18a4ff7950ac9f57cafd62476a626d713452
      
https://github.com/qemu/qemu/commit/5aca18a4ff7950ac9f57cafd62476a626d713452
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M block/ssh.c

  Log Message:
  -----------
  ssh: support I/O from any AioContext

The coroutine may run in a different AioContext, causing the
fd handler to busy wait.  Fix this by resetting the handler
in restart_coroutine, before the coroutine is restarted.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 8a2390a4f4743f700da1d07c3bc04d6661ce1487
      
https://github.com/qemu/qemu/commit/8a2390a4f4743f700da1d07c3bc04d6661ce1487
  Author: Daniel P. Berrange <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M tests/docker/Makefile.include

  Log Message:
  -----------
  docker: Don't enable networking as a side-effect of DEBUG=1

When trying to debug problems with tests it is natural to set
DEBUG=1 when starting the docker environment. Unfortunately
this has a side-effect of enabling an eth0 network interface
in the container, which changes the operating environment of
the test suite. IOW tests with fail may suddenly start
working again if DEBUG=1 is set, due to changed network setup.

Add a separate NETWORK variable to allow enablement of
networking separately from DEBUG=1. This can be used in two
ways. To enable the default docker network backend

  make address@hidden NETWORK=1

while to enable a specific network backend, eg join the network
associated with the container 'wibble':

  make address@hidden NETWORK=container:wibble

Signed-off-by: Daniel P. Berrange <address@hidden>
Message-Id: <address@hidden>
[Drop the superfluous second $(subst ...). - Fam]
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 58bf7b6d8ccc469d8c001b8cf2b632d3f9e7fa38
      
https://github.com/qemu/qemu/commit/58bf7b6d8ccc469d8c001b8cf2b632d3f9e7fa38
  Author: Fam Zheng <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M tests/docker/docker.py

  Log Message:
  -----------
  docker.py: Drop infile parameter

The **kwargs can do this just well.

Signed-off-by: Fam Zheng <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 0b95ff72cb42567dd71685bfdafbcdcd9784ea83
      
https://github.com/qemu/qemu/commit/0b95ff72cb42567dd71685bfdafbcdcd9784ea83
  Author: Fam Zheng <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M tests/docker/docker.py

  Log Message:
  -----------
  docker.py: Improve subprocess exit code handling

A few error handlings are missing because we ignore the subprocess exit
code, for example "docker build" errors are currently ignored.

Introduce _do_check() aside the existing _do() method and use it in a
few places.

Signed-off-by: Fam Zheng <address@hidden>
Message-Id: <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 978373143cf9965a6ae1dec73b046fbf3d9f9689
      
https://github.com/qemu/qemu/commit/978373143cf9965a6ae1dec73b046fbf3d9f9689
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  travis: add no-TCG build

It's fairly easy for --disable-tcg to bitrot.  Test it in our CI.

Signed-off-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>


  Commit: 6632f6ff96f0537fc34cdc00c760656fc62e23c5
      
https://github.com/qemu/qemu/commit/6632f6ff96f0537fc34cdc00c760656fc62e23c5
  Author: Peter Maydell <address@hidden>
  Date:   2017-07-17 (Mon, 17 Jul 2017)

  Changed paths:
    M .travis.yml
    M block/io.c
    M block/qcow2.c
    M block/qed-cluster.c
    M block/qed-l2-cache.c
    M block/qed-table.c
    M block/qed.c
    M block/qed.h
    M block/sheepdog.c
    M block/ssh.c
    M block/vdi.c
    M block/vpc.c
    M block/vvfat.c
    M include/block/block_int.h
    M include/qemu/coroutine.h
    M tests/docker/Makefile.include
    M tests/docker/docker.py
    M util/qemu-coroutine-lock.c

  Log Message:
  -----------
  Merge remote-tracking branch 
'remotes/famz/tags/block-and-testing-pull-request' into staging

# gpg: Signature made Mon 17 Jul 2017 04:47:05 BST
# gpg:                using RSA key 0xCA35624C6A9171C6
# gpg: Good signature from "Fam Zheng <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: 5003 7CB7 9706 0F76 F021  AD56 CA35 624C 6A91 71C6

* remotes/famz/tags/block-and-testing-pull-request:
  travis: add no-TCG build
  docker.py: Improve subprocess exit code handling
  docker.py: Drop infile parameter
  docker: Don't enable networking as a side-effect of DEBUG=1
  ssh: support I/O from any AioContext
  sheepdog: add queue_lock
  qed: protect table cache with CoMutex
  qed: introduce bdrv_qed_init_state
  block: invoke .bdrv_drain callback in coroutine context and from AioContext
  qed: move tail of qed_aio_write_main to qed_aio_write_{cow, alloc}
  vvfat: make it thread-safe
  vpc: make it thread-safe
  vdi: make it thread-safe
  coroutine-lock: add qemu_co_rwlock_downgrade and qemu_co_rwlock_upgrade
  qcow2: call CoQueue APIs under CoMutex

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/acbaa0f4fd04...6632f6ff96f0

reply via email to

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