From: Stefan Hajnoczi stefa...@redhat.com
It is not clear from the code how a 0 parameter should be handled by the
hardware. Keep the same behavior as ffs(0) - 1 == -1.
Cc: Andrzej Zaborowski bal...@zabor.org
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Message-id:
From: Alberto Garcia be...@igalia.com
Signed-off-by: Alberto Garcia be...@igalia.com
Message-id: 1426522925-1-1-git-send-email-be...@igalia.com
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by: Kevin Wolf kw...@redhat.com
---
MAINTAINERS | 6 ++
1 file changed, 6
From: Alberto Garcia be...@igalia.com
The image field in BlockDeviceInfo is supposed to contain an ImageInfo
object. However that is being filled in by bdrv_query_info(), not by
bdrv_block_device_info(), which is where BlockDeviceInfo is actually
created.
Anyone calling bdrv_block_device_info()
From: John Snow js...@redhat.com
As a convenience: between incremental backups, bitmap migrations
and bitmap persistence we seem to need to recalculate these a lot.
Because the lengths are a little bit-twiddly, let's just solidly
cache them and be done with it.
Reviewed-by: Max Reitz
From: John Snow js...@redhat.com
A bitmap successor is an anonymous BdrvDirtyBitmap that is intended to
be created just prior to a sensitive operation (e.g. Incremental Backup)
that can either succeed or fail, but during the course of which we still
want a bitmap tracking writes.
On creating a
From: Stefan Hajnoczi stefa...@redhat.com
This commit was generated mechanically by coccinelle from the following
semantic patch:
@@
expression val;
@@
- (ffs(val) - 1)
+ ctz32(val)
The call sites have been audited to ensure the ffs(0) - 1 == -1 case
never occurs (due to input validation,
From: Paolo Bonzini pbonz...@redhat.com
This is the first step towards having fine-grained critical sections in
dataplane threads, which resolves lock ordering problems between
address_space_* functions (which need the BQL when doing MMIO, even
after we complete RCU-based dispatch) and the
From: Fam Zheng f...@redhat.com
This is necessary to suppress more IO requests from being generated from
block job coroutines.
Signed-off-by: Fam Zheng f...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Reviewed-by: Paolo Bonzini pbonz...@redhat.com
Reviewed-by: Alberto Garcia
From: Fam Zheng f...@redhat.com
This patch changes block_job_pause to increase the pause counter and
block_job_resume to decrease it.
The counter will allow calling block_job_pause/block_job_resume
unconditionally on a job when we need to suspend the IO temporarily.
From now on, each
From: Paolo Bonzini pbonz...@redhat.com
bdrv_aio_* APIs can use coroutines to achieve asynchronicity. However,
the coroutine may terminate without having yielded back to the caller
(for example because of something that invokes a nested event loop,
or because the coroutine is doing nothing at
From: Fam Zheng f...@redhat.com
Signed-off-by: Fam Zheng f...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Reviewed-by: Paolo Bonzini pbonz...@redhat.com
Reviewed-by: Alberto Garcia be...@igalia.com
Message-id: 1428069921-2957-4-git-send-email-f...@redhat.com
Signed-off-by: Stefan
From: John Snow js...@redhat.com
Signed-off-by: John Snow js...@redhat.com
Reviewed-by: Max Reitz mre...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Message-id: 1429314609-29776-14-git-send-email-js...@redhat.com
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by:
From: Fam Zheng f...@redhat.com
Signed-off-by: Fam Zheng f...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Reviewed-by: Paolo Bonzini pbonz...@redhat.com
Reviewed-by: Alberto Garcia be...@igalia.com
Message-id: 1428069921-2957-5-git-send-email-f...@redhat.com
Signed-off-by: Stefan
From: Peter Lieven p...@kamp.de
Signed-off-by: Peter Lieven p...@kamp.de
Message-id: 1429193313-4263-9-git-send-email...@kamp.de
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by: Kevin Wolf kw...@redhat.com
---
block/iscsi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
From: John Snow js...@redhat.com
Add the frozen status booleans, to inform clients
when a bitmap is occupied doing a task.
Signed-off-by: Fam Zheng f...@redhat.com
Signed-off-by: John Snow js...@redhat.com
Reviewed-by: Max Reitz mre...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
From: John Snow js...@redhat.com
Signed-off-by: John Snow js...@redhat.com
Reviewed-by: Max Reitz mre...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Message-id: 1429314609-29776-18-git-send-email-js...@redhat.com
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by:
From: Peter Lieven p...@kamp.de
Signed-off-by: Peter Lieven p...@kamp.de
Message-id: 1429193313-4263-5-git-send-email...@kamp.de
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by: Kevin Wolf kw...@redhat.com
---
block/iscsi.c | 3 +++
1 file changed, 3 insertions(+)
diff --git
From: Peter Lieven p...@kamp.de
a target may issue a SCSI_STATUS_TASK_SET_FULL status
if there is more than one BUSY command queued already.
Signed-off-by: Peter Lieven p...@kamp.de
Message-id: 1429193313-4263-8-git-send-email...@kamp.de
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
From: Stefan Hajnoczi stefa...@redhat.com
Move the code to install coroutine and aio emulation function pointers
in a BlockDriver to its own function.
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by: Kevin Wolf kw...@redhat.com
---
block.c | 7 ++-
From: John Snow js...@redhat.com
A filter is added to allow callers to request very specific
events to be pulled from the event queue, while leaving undesired
events still in the stream.
This allows us to poll for completion data for multiple asynchronous
events in any arbitrary order.
A new
The implementation of qemu-img convert is (a) messy, (b) buggy, and
(c) less efficient than possible. The changes required to beat some
sense into it are massive enough that incremental changes would only
make my and the reviewers' life harder. So throw it away and reimplement
it from scratch.
This is, amongst others, required for qemu-iotests 033 to run as
intended on VHDX, which uses explicit bdrv_truncate() calls to bs-file
when allocating new blocks.
Signed-off-by: Kevin Wolf kw...@redhat.com
Reviewed-by: Jeff Cody jc...@redhat.com
---
block/blkdebug.c | 6 ++
1 file changed,
From: Paolo Bonzini pbonz...@redhat.com
Rewrite the loop using level = level - 1 to clear the least significant
bit after each iteration. This simplifies the loop and makes it easy to
replace ffs(3) with ctz32().
Cc: Peter Maydell peter.mayd...@linaro.org
Signed-off-by: Paolo Bonzini
From: Peter Lieven p...@kamp.de
the allocationmap has only a hint character. The driver always
double checks that blocks marked unallocated in the cache are
still unallocated before taking the fast path and return zeroes.
So using the allocationmap is migration safe and can
also be enabled with
From: Stefan Hajnoczi stefa...@redhat.com
It is not clear from the code how a 0 parameter should be handled by the
hardware. Keep the same behavior as ffs(0) - 1 == -1.
Cc: Alexander Graf ag...@suse.de
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Message-id:
Fix the length of the zero-fill for the back, which was accidentally
using the same value as for the front. This is caught by qemu-iotests
033.
For consistency, change the code for the front as well to use the length
stored in the iov (it is the same value, copied four lines above).
From: Stefan Hajnoczi stefa...@redhat.com
This patch simplifies thread_pool_completion_bh().
The function first checks elem-state:
if (elem-state != THREAD_DONE) {
continue;
}
It then goes on to check elem-state == THREAD_DONE although we already
know this must be the case.
The
From: Stefan Hajnoczi stefa...@redhat.com
The 'qemu coroutine coroutine-address' GDB command prints the
backtrace for a CoroutineUContext. This is useful for peeking inside
yielded coroutines that are waiting for file descriptor events, timers,
etc.
For example:
$ gdb tests/test-coroutine
From: Fam Zheng f...@redhat.com
This field will be set for user created dirty bitmap. Also pass in an
error pointer to bdrv_create_dirty_bitmap, so when a name is already
taken on this BDS, it can report an error message. This is not global
check, two BDSes can have dirty bitmap with a common
From: Peter Lieven p...@kamp.de
SCSI allowes to tell the target to not return from a write command
if the date is not written to the disk. Use this so called FUA
bit if it is supported to optimize WRITE commands if writeback is
not allowed.
In this case qemu always issues a WRITE followed by a
From: Fam Zheng f...@redhat.com
Coverity spotted this.
The field is 32 bits, but if it's possible to overflow in 32 bit
left shift.
Signed-off-by: Fam Zheng f...@redhat.com
Reviewed-by: John Snow js...@redhat.com
Signed-off-by: Kevin Wolf kw...@redhat.com
---
block/vmdk.c | 2 +-
1 file
From: Michael Tokarev m...@tls.msk.ru
dmg can optionally utilize libbz2, make it modular
Signed-off-by: Michael Tokarev m...@tls.msk.ru
Reviewed-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Kevin Wolf kw...@redhat.com
---
block/Makefile.objs | 3 ++-
1 file changed, 2 insertions(+), 1
From: Stefan Hajnoczi stefa...@redhat.com
The dirty bitmap functions are called from the block I/O processing
code. Make them visible to block_int.h users so they can be used
outside block.c.
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by: Kevin Wolf kw...@redhat.com
---
From: Paolo Bonzini pbonz...@redhat.com
This is the first step in pushing down acquire/release, and will let
rfifolock drop the contention callback feature.
Signed-off-by: Paolo Bonzini pbonz...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Message-id:
From: Stefan Hajnoczi stefa...@redhat.com
The lack of ffs(3) in the MinGW headers is a hint that we shouldn't rely
on it. MinGW 4.9.2 does not make it available for linking when QEMU's
./configure --enable-debug is used (release builds are fine though).
Now that all QEMU code has been switched
From: Fam Zheng f...@redhat.com
Signed-off-by: Fam Zheng f...@redhat.com
Reviewed-by: Eric Blake ebl...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Message-id: 1427852740-24315-4-git-send-email-f...@redhat.com
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by: Kevin
From: Alberto Garcia be...@igalia.com
This function gets the device name associated with a BlockDriverState,
or its node name if the device name is empty.
Signed-off-by: Alberto Garcia be...@igalia.com
Reviewed-by: Max Reitz mre...@redhat.com
Reviewed-by: Eric Blake ebl...@redhat.com
Message-id:
From: Fam Zheng f...@redhat.com
Reopen is used in block-commit. With this always-succeed operation, it
is now possible to test committing to a null drive, by specifying
null-aio:// or null-co:// as the backing image when creating the
qcow2 image.
Signed-off-by: Fam Zheng f...@redhat.com
From: Stefan Hajnoczi stefa...@redhat.com
The 'block-stream' QMP command is documented in block-core.json but not
qmp-commands.hx. Add a summary of the command to qmp-commands.hx
(similar to the documentation for 'block-commit').
Reported-by: Kashyap Chamarthy kcham...@redhat.com
Signed-off-by:
From: John Snow js...@redhat.com
Test the failure case for incremental backups.
Signed-off-by: John Snow js...@redhat.com
Reviewed-by: Max Reitz mre...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Message-id: 1429314609-29776-21-git-send-email-js...@redhat.com
Signed-off-by:
From: Stefan Hajnoczi stefa...@redhat.com
The bdrv_states list is a static variable in block.c.
bdrv_drain_all() and bdrv_flush_all() use this variable to iterate over
all drives.
The next patch will move bdrv_drain_all() and bdrv_flush_all() out of
block.c so it's necessary to switch to the
From: John Snow js...@redhat.com
Signed-off-by: John Snow js...@redhat.com
Reviewed-by: Max Reitz mre...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Message-id: 1429314609-29776-16-git-send-email-js...@redhat.com
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by:
From: Max Reitz mre...@redhat.com
The mirror block job is trying to take a clever shortcut if delay_ns is
0 and skips block_job_sleep_ns() in that case. But that function must be
called in every block job iteration, because otherwise it is for example
impossible to pause the job.
Signed-off-by:
From: John Snow js...@redhat.com
We often don't need the BlockDriverState for functions
that operate on bitmaps. Remove it.
Signed-off-by: John Snow js...@redhat.com
Reviewed-by: Max Reitz mre...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Message-id:
From: John Snow js...@redhat.com
Test what happens if you fiddle with the granularity.
Reviewed-by: Max Reitz mre...@redhat.com
Signed-off-by: John Snow js...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Message-id: 1429314609-29776-22-git-send-email-js...@redhat.com
On 28 April 2015 at 15:59, Kevin Wolf kw...@redhat.com wrote:
The following changes since commit 84cbd63f87c1d246f51ec8eee5367a5588f367fd:
Merge remote-tracking branch 'remotes/ehabkost/tags/x86-pull-request' into
staging (2015-04-28 12:22:20 +0100)
are available in the git repository at:
Signed-off-by: Kevin Wolf kw...@redhat.com
Reviewed-by: Max Reitz mre...@redhat.com
---
block/block-backend.c | 11 +++
include/sysemu/block-backend.h | 2 ++
2 files changed, 13 insertions(+)
diff --git a/block/block-backend.c b/block/block-backend.c
index 48b6e4c..93e46f3
From: Stefan Hajnoczi stefa...@redhat.com
ffs() cannot be replaced with ctz32() when the argument might be zero,
because ffs(0) returns 0 while ctz32(0) returns 32.
The ffs(3) call in sd_normal_command() is a special case though. It can
be converted to ctz32() + 1 because the argument is never
From: Fam Zheng f...@redhat.com
Currently, throttle timers won't make any progress when VCPU is not
running, which would stall the request queue in utils, qtest, vm
suspending, and live migration, without special handling.
Block jobs are confusingly inconsistent between with and without
From: Alberto Garcia be...@igalia.com
There are several error messages that identify a BlockDriverState by
its device name. However those errors can be produced in nodes that
don't have a device name associated.
In those cases we should use bdrv_get_device_or_node_name() to fall
back to the node
From: John Snow js...@redhat.com
Signed-off-by: John Snow js...@redhat.com
Reviewed-by: Max Reitz mre...@redhat.com
Reviewed-by: Eric Blake ebl...@redhat.com
Message-id: 1429314609-29776-2-git-send-email-js...@redhat.com
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by: Kevin Wolf
From: Alberto Garcia be...@igalia.com
Since this event can occur in nodes that cannot have a device name
associated, include also a field with the node name.
Signed-off-by: Alberto Garcia be...@igalia.com
Reviewed-by: Eric Blake ebl...@redhat.com
Reviewed-by: Max Reitz mre...@redhat.com
From: John Snow js...@redhat.com
Signed-off-by: John Snow js...@redhat.com
Reviewed-by: Max Reitz mre...@redhat.com
Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Message-id: 1429314609-29776-20-git-send-email-js...@redhat.com
Signed-off-by: Stefan Hajnoczi stefa...@redhat.com
Signed-off-by:
53 matches
Mail list logo