Revision tags: qemu-kvm-0.12.1.2-2.270.el6, qemu-kvm-0.12.1.2-2.269.el6, qemu-kvm-0.12.1.2-2.268.el6, qemu-kvm-0.12.1.2-2.267.el6, qemu-kvm-0.12.1.2-2.266.el6, RHEL-6.3-Alpha-1, RHEL-6.3-Alpha-2, qemu-kvm-0.12.1.2-2.265.el6, qemu-kvm-0.12.1.2-2.264.el6, qemu-kvm-0.12.1.2-2.263.el6, qemu-kvm-0.12.1.2-2.261.el6, qemu-kvm-0.12.1.2-2.260.el6, qemu-kvm-0.12.1.2-2.259.el6, qemu-kvm-0.12.1.2-2.258.el6, qemu-kvm-0.12.1.2-2.257.el6, qemu-kvm-0.12.1.2-2.256.el6, qemu-kvm-0.12.1.2-2.255.el6, qemu-kvm-0.12.1.2-2.254.el6, qemu-kvm-0.12.1.2-2.253.el6, qemu-kvm-0.12.1.2-2.251.el6, qemu-kvm-0.12.1.2-2.250.el6, qemu-kvm-0.12.1.2-2.249.el6, qemu-kvm-0.12.1.2-2.248.el6, qemu-kvm-0.12.1.2-2.247.el6, qemu-kvm-0.12.1.2-2.246.el6, qemu-kvm-0.12.1.2-2.245.el6 |
|
#
29cdb251 |
| 12-Mar-2012 |
Paolo Bonzini <pbonzini@redhat.com> |
block: push recursive flushing up from drivers
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
Revision tags: qemu-kvm-0.12.1.2-2.244.el6, qemu-kvm-0.12.1.2-2.243.el6 |
|
#
dac6b1b2 |
| 09-Mar-2012 |
Anthony Liguori <aliguori@us.ibm.com> |
Merge remote-tracking branch 'stefanha/trivial-patches' into staging
* stefanha/trivial-patches: configure: Quote the configure args printed in config.log osdep: Remove local definition of macro
Merge remote-tracking branch 'stefanha/trivial-patches' into staging
* stefanha/trivial-patches: configure: Quote the configure args printed in config.log osdep: Remove local definition of macro offsetof libcacard: Spelling and grammar fixes in documentation Spelling fixes in comments (it's -> its) vnc: Add break statement libcacard: Use format specifier %u instead of %d for unsigned values Fix sign of sscanf format specifiers block/vmdk: Fix warning from splint (comparision of unsigned value) qmp: Fix spelling fourty -> forty qom: Fix spelling in documentation sh7750: Remove redundant 'struct' from MemoryRegionOps
show more ...
|
Revision tags: qemu-kvm-0.12.1.2-2.242.el6, qemu-kvm-0.12.1.2-2.241.el6, qemu-kvm-0.12.1.2-2.240.el6, qemu-kvm-0.12.1.2-2.239.el6, qemu-kvm-0.12.1.2-2.238.el6, qemu-kvm-0.12.1.2-2.237.el6, qemu-kvm-0.12.1.2-2.236.el6, qemu-kvm-0.12.1.2-2.235.el6, qemu-kvm-0.12.1.2-2.234.el6 |
|
#
75d12341 |
| 25-Feb-2012 |
Stefan Weil <sw@weilnetz.de> |
block/vmdk: Fix warning from splint (comparision of unsigned value)
l1_entry_sectors will never be less than 0.
Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Stefan Hajnoczi <stefanha@
block/vmdk: Fix warning from splint (comparision of unsigned value)
l1_entry_sectors will never be less than 0.
Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
show more ...
|
Revision tags: qemu-kvm-0.12.1.2-2.233.el6, qemu-kvm-0.12.1.2-2.232.el6, qemu-kvm-0.12.1.2-2.231.el6, qemu-kvm-0.12.1.2-2.230.el6, qemu-kvm-0.12.1.2-2.229.el6, qemu-kvm-0.12.1.2-2.228.el6, qemu-kvm-0.12.1.2-2.227.el6, qemu-kvm-0.12.1.2-2.226.el6, qemu-kvm-0.12.1.2-2.225.el6, qemu-kvm-0.12.1.2-2.224.el6, qemu-kvm-0.12.1.2-2.223.el6, v1.0.1, qemu-kvm-0.12.1.2-2.222.el6, qemu-kvm-0.12.1.2-2.221.el6, qemu-kvm-0.12.1.2-2.220.el6, qemu-kvm-0.12.1.2-2.219.el6, qemu-kvm-0.12.1.2-2.209.el6_2.4, qemu-kvm-0.12.1.2-2.218.el6, qemu-kvm-0.12.1.2-2.217.el6, qemu-kvm-0.12.1.2-2.209.el6_2.3, qemu-kvm-0.12.1.2-2.216.el6, qemu-kvm-0.12.1.2-2.215.el6, qemu-kvm-0.12.1.2-2.214.el6, qemu-kvm-0.12.1.2-2.213.el6, qemu-kvm-0.12.1.2-2.212.el6, qemu-kvm-0.12.1.2-2.209.el6_2.2, qemu-kvm-0.12.1.2-2.211.el6 |
|
#
eb5d5bea |
| 05-Dec-2011 |
Anthony Liguori <aliguori@us.ibm.com> |
Merge remote-tracking branch 'kwolf/for-anthony' into staging
|
Revision tags: qemu-kvm-1.0, v1.0, v1.0-rc4, qemu-kvm-0.12.1.2-2.210.el6, v1.0-rc3, qemu-kvm-0.12.1.2-2.209.el6_2.1, v1.0-rc2, qemu-kvm-0.12.1.2-2.160.el6_1.9 |
|
#
f8a2e5e3 |
| 14-Nov-2011 |
Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> |
block: convert qcow2, qcow2, and vmdk to .bdrv_co_is_allocated()
The qcow2, qcow, and vmdk block drivers are based on coroutines. They have a coroutine mutex which protects internal state. We can
block: convert qcow2, qcow2, and vmdk to .bdrv_co_is_allocated()
The qcow2, qcow, and vmdk block drivers are based on coroutines. They have a coroutine mutex which protects internal state. We can convert the .bdrv_is_allocated() function to .bdrv_co_is_allocated() by holding the mutex around the cluster lookup operation.
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
13bd0b50 |
| 28-Nov-2011 |
Anthony Liguori <aliguori@us.ibm.com> |
Merge remote-tracking branch 'kwolf/block-stable' into staging
|
#
2bc3166c |
| 22-Nov-2011 |
Kevin Wolf <kwolf@redhat.com> |
vmdk: Add migration blocker
VMDK caches L2 tables. For migration to work, they would have to be invalidated. Block migration for now.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
#
2923d34f |
| 20-Nov-2011 |
Stefan Weil <sw@weilnetz.de> |
Include zlib.h using #include <>
zlib.h is not a local include file, therefore it should be included using <> instead of "".
Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Anthony Liguo
Include zlib.h using #include <>
zlib.h is not a local include file, therefore it should be included using <> instead of "".
Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
74d33d5c |
| 11-Nov-2011 |
Anthony Liguori <aliguori@us.ibm.com> |
Merge remote-tracking branch 'kwolf/block-stable' into staging
|
#
c68b89ac |
| 10-Nov-2011 |
Kevin Wolf <kwolf@redhat.com> |
block: Rename bdrv_co_flush to bdrv_co_flush_to_disk
There are two different types of flush that you can do: Flushing one level up to the OS (i.e. writing data to the host page cache) or flushing it
block: Rename bdrv_co_flush to bdrv_co_flush_to_disk
There are two different types of flush that you can do: Flushing one level up to the OS (i.e. writing data to the host page cache) or flushing it all the way down to the disk. The existing functions flush to the disk, reflect this in the function name.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
Revision tags: v1.0-rc1, RHEL-6.2, qemu-kvm-0.12.1.2-2.209.el6, v1.0-rc0, qemu-kvm-0.12.1.2-2.208.el6, qemu-kvm-0.12.1.2-2.207.el6 |
|
#
8494a397 |
| 31-Oct-2011 |
Anthony Liguori <aliguori@us.ibm.com> |
Merge remote-tracking branch 'kwolf/for-anthony' into staging
Conflicts: block/vmdk.c
|
#
3a069ff1 |
| 31-Oct-2011 |
Anthony Liguori <aliguori@us.ibm.com> |
Merge remote-tracking branch 'stefanha/trivial-patches' into staging
|
Revision tags: qemu-kvm-0.12.1.2-2.206.el6, qemu-kvm-0.12.1.2-2.205.el6, qemu-kvm-0.12.1.2-2.204.el6, qemu-kvm-0.12.1.2-2.203.el6, qemu-kvm-0.12.1.2-2.202.el6 |
|
#
93897b9f |
| 26-Oct-2011 |
Kevin Wolf <kwolf@redhat.com> |
vmdk: Fix possible segfaults
Data we read from the disk isn't necessarily null terminated and may not contain the string we're looking for. The code needs to be a bit more careful here.
Signed-off-
vmdk: Fix possible segfaults
Data we read from the disk isn't necessarily null terminated and may not contain the string we're looking for. The code needs to be a bit more careful here.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
99f1835d |
| 26-Oct-2011 |
Kevin Wolf <kwolf@redhat.com> |
vmdk: Improve error handling
Return the right error values in some more places.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
#
bac8d7b4 |
| 26-Oct-2011 |
Kevin Wolf <kwolf@redhat.com> |
vmdk: Fix use of uninitialised value
In error cases, cid is never set.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
#
e86d9b12 |
| 26-Oct-2011 |
Anthony Liguori <aliguori@us.ibm.com> |
Merge remote-tracking branch 'kwolf/for-anthony' into staging
|
Revision tags: qemu-kvm-0.12.1.2-2.201.el6, qemu-kvm-0.12.1.2-2.200.el6, qemu-kvm-0.15.1 |
|
#
8379e46d |
| 18-Oct-2011 |
Pavel Borzenkov <pavel.borzenkov@gmail.com> |
vmdk: vmdk_read_cid returns garbage if p_name is NULL
Spotted by Clang Analyzer
Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.co
vmdk: vmdk_read_cid returns garbage if p_name is NULL
Spotted by Clang Analyzer
Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
show more ...
|
#
c18a1c88 |
| 18-Oct-2011 |
Pavel Borzenkov <pavel.borzenkov@gmail.com> |
vmdk: remove unneeded variable assignment
Spotted by Clang Analyzer
Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
|
#
8b94ff85 |
| 20-Oct-2011 |
Paolo Bonzini <pbonzini@redhat.com> |
block: change flush to co_flush
Since coroutine operation is now mandatory, convert all bdrv_flush implementations to coroutines. For qcow2, this means taking the lock. Other implementations are si
block: change flush to co_flush
Since coroutine operation is now mandatory, convert all bdrv_flush implementations to coroutines. For qcow2, this means taking the lock. Other implementations are simpler and just forward bdrv_flush to the underlying protocol, so they can avoid the lock.
The bdrv_flush callback is then unused and can be eliminated.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
e183ef75 |
| 20-Oct-2011 |
Paolo Bonzini <pbonzini@redhat.com> |
block: take lock around bdrv_write implementations
This does the first part of the conversion to coroutines, by wrapping bdrv_write implementations to take the mutex.
Drivers that implement bdrv_wr
block: take lock around bdrv_write implementations
This does the first part of the conversion to coroutines, by wrapping bdrv_write implementations to take the mutex.
Drivers that implement bdrv_write rather than bdrv_co_writev can then benefit from asynchronous operation (at least if the underlying protocol supports it, which is not the case for raw-win32), even though they still operate with a bounce buffer.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
2914caa0 |
| 20-Oct-2011 |
Paolo Bonzini <pbonzini@redhat.com> |
block: take lock around bdrv_read implementations
This does the first part of the conversion to coroutines, by wrapping bdrv_read implementations to take the mutex.
Drivers that implement bdrv_read
block: take lock around bdrv_read implementations
This does the first part of the conversion to coroutines, by wrapping bdrv_read implementations to take the mutex.
Drivers that implement bdrv_read rather than bdrv_co_readv can then benefit from asynchronous operation (at least if the underlying protocol supports it, which is not the case for raw-win32), even though they still operate with a bounce buffer.
raw-win32 does not need the lock, because it cannot yield. nbd also doesn't probably, but better be safe.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
848c66e8 |
| 20-Oct-2011 |
Paolo Bonzini <pbonzini@redhat.com> |
block: add a CoMutex to synchronous read drivers
The big conversion of bdrv_read/write to coroutines caused the two homonymous callbacks in BlockDriver to become reentrant. It goes like this:
1) b
block: add a CoMutex to synchronous read drivers
The big conversion of bdrv_read/write to coroutines caused the two homonymous callbacks in BlockDriver to become reentrant. It goes like this:
1) bdrv_read is now called in a coroutine, and calls bdrv_read or bdrv_pread.
2) the nested bdrv_read goes through the fast path in bdrv_rw_co_entry;
3) in the common case when the protocol is file, bdrv_co_do_readv calls bdrv_co_readv_em (and from here goes to bdrv_co_io_em), which yields until the AIO operation is complete;
4) if bdrv_read had been called from a bottom half, the main loop is free to iterate again: a device model or another bottom half can then come and call bdrv_read again.
This applies to all four of read/write/flush/discard. It would also apply to is_allocated, but it is not used from within coroutines: besides qemu-img.c and qemu-io.c, which operate synchronously, the only user is the monitor. Copy-on-read will introduce a use in the block layer, and will require converting it.
The solution is "simply" to convert all drivers to coroutines! We just need to add a CoMutex that is taken around affected operations.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
bae0a0cc |
| 20-Oct-2011 |
Paolo Bonzini <pbonzini@redhat.com> |
vmdk: clean up open
Move vmdk_parent_open to vmdk_open. There's another path how vmdk_parent_open can be reached:
vmdk_parse_extents() -> vmdk_open_sparse() -> vmdk_open_vmdk4() -> vmdk_open
vmdk: clean up open
Move vmdk_parent_open to vmdk_open. There's another path how vmdk_parent_open can be reached:
vmdk_parse_extents() -> vmdk_open_sparse() -> vmdk_open_vmdk4() -> vmdk_open_desc_file().
If that can happen, however, the code is bogus. vmdk_parent_open reads from bs->file:
if (bdrv_pread(bs->file, s->desc_offset, desc, DESC_SIZE) != DESC_SIZE) {
but it is always called with s->desc_offset == 0 and with the same bs->file. So the data that vmdk_parent_open reads comes always from the same place, and anyway there is only one place where it can write it, namely bs->backing_file.
So, if it cannot happen, the patched code is okay.
It is also possible that the recursive call can happen, but only once. In that case there would still be a bug in vmdk_open_desc_file setting s->desc_offset = 0, but the patched code is okay.
Finally, in the case where multiple recursive calls can happen the code would need to be rewritten anyway. It is likely that this would anyway involve adding several parameters to vmdk_parent_open, and calling it from vmdk_open_vmdk4.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
588b65a3 |
| 20-Oct-2011 |
Paolo Bonzini <pbonzini@redhat.com> |
vmdk: fix return values of vmdk_parent_open
While vmdk_open_desc_file (touched by the patch) correctly changed -1 to -EINVAL, vmdk_open did not. Fix it directly in vmdk_parent_open.
Signed-off-by:
vmdk: fix return values of vmdk_parent_open
While vmdk_open_desc_file (touched by the patch) correctly changed -1 to -EINVAL, vmdk_open did not. Fix it directly in vmdk_parent_open.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
Revision tags: qemu-kvm-0.12.1.2-2.199.el6, qemu-kvm-0.12.1.2-2.198.el6, qemu-kvm-0.12.1.2-2.197.el6, v0.15.1, qemu-kvm-0.12.1.2-2.196.el6, qemu-kvm-0.12.1.2-2.195.el6, qemu-kvm-0.12.1.2-2.194.el6, qemu-kvm-0.12.1.2-2.193.el6 |
|
#
c8af89af |
| 20-Sep-2011 |
Anthony Liguori <aliguori@us.ibm.com> |
Merge remote-tracking branch 'kwolf/for-anthony' into staging
|