On Mon, 08/08 21:13, Fam Zheng wrote:
> v7: - Rebase.
> - Address comments from Kevin and Max.
> - Option rename: "exclusive" -> "auto". [Kevin]
> - Option placement: "root BDS" -> "node".
> It's still a bit controversy where the option should go, but so far it
> seems per n
From: Peter Lieven
evaluation with the recently introduced maximum stack usage monitoring revealed
that the actual used stack size was never above 4kB so allocating 1MB stack
for each coroutine is a lot of wasted memory. So reduce the stack size to
64kB which should still give enough head room. T
From: Peter Lieven
this adds a knob to track the maximum stack usage of stacks
created by qemu_alloc_stack.
Signed-off-by: Peter Lieven
Reviewed-by: Paolo Bonzini
Signed-off-by: Kevin Wolf
---
configure | 19 +++
util/oslib-posix.c | 36 ++
From: Peter Lieven
Signed-off-by: Peter Lieven
Reviewed-by: Paolo Bonzini
Reviewed-by: Richard Henderson
Signed-off-by: Kevin Wolf
---
util/coroutine-sigaltstack.c | 7 +++
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/util/coroutine-sigaltstack.c b/util/coroutine-sigalts
Python tests are already annoying enough to debug. With QMP traffic
available it's a little bit easier at least.
Signed-off-by: Kevin Wolf
Reviewed-by: Eric Blake
---
tests/qemu-iotests/iotests.py | 5 +
1 file changed, 5 insertions(+)
diff --git a/tests/qemu-iotests/iotests.py b/tests/qem
A coroutine that takes a lock must also release it again. If the
coroutine terminates without having released all its locks, it's buggy
and we'll probably run into a deadlock sooner or later. Make sure that
we don't get such cases.
Signed-off-by: Kevin Wolf
Reviewed-by: Paolo Bonzini
Reviewed-by
From: Peter Lieven
Signed-off-by: Peter Lieven
Reviewed-by: Paolo Bonzini
Reviewed-by: Richard Henderson
Signed-off-by: Kevin Wolf
---
util/coroutine-ucontext.c | 9 -
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/util/coroutine-ucontext.c b/util/coroutine-ucontext.c
From: Peter Lieven
Signed-off-by: Peter Lieven
Reviewed-by: Paolo Bonzini
Reviewed-by: Richard Henderson
Signed-off-by: Kevin Wolf
---
include/qemu/coroutine_int.h | 2 ++
util/coroutine-sigaltstack.c | 2 +-
util/coroutine-ucontext.c| 2 +-
util/coroutine-win32.c | 2 +-
4 files c
From: Peter Lieven
the allocated stack will be adjusted to the minimum supported stack size
by the OS and rounded up to be a multiple of the system pagesize.
Additionally an architecture dependent guard page is added to the stack
to catch stack overflows. The memory for the guard page is deductat
In cases of deadlocks, knowing who holds a given CoMutex is really
helpful for debugging. Keeping the information around doesn't cost much
and allows us to add another assertion to keep the code correct, so
let's just add it.
Signed-off-by: Kevin Wolf
Reviewed-by: Paolo Bonzini
Reviewed-by: Stef
From: Pavel Butsykin
Use bytes as the size would be more exact than s->cluster_size. Although
qemu_iovec_to_buf() will not allow to go beyond the qiov.
Signed-off-by: Pavel Butsykin
Signed-off-by: Kevin Wolf
---
block/qcow2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
If a block job is started with a node name rather than a device name and
no explicit job ID is passed, it was reported that '' isn't a
well-formed ID. Which is correct, but we can make the message a little
bit nicer.
Signed-off-by: Kevin Wolf
Reviewed-by: Jeff Cody
Reviewed-by: Alberto Garcia
R
From: Pavel Butsykin
The idea is simple - backup is "written-once" data. It is written block
by block and it is large enough. It would be nice to save storage
space and compress it.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Signed-off-by: Denis V. Lunev
CC: Jeff Cody
CC: Mar
When using a node name, create a temporary BlockBackend that is used to
run the qemu-io command.
Signed-off-by: Kevin Wolf
Reviewed-by: Eric Blake
---
hmp.c | 13 +
1 file changed, 13 insertions(+)
diff --git a/hmp.c b/hmp.c
index a7dfe6f..ad33b44 100644
--- a/hmp.c
+++ b/hmp.c
@@
The test case overwrites the Coroutine object with 0xff as a way to
assert that the coroutine isn't used any more. However, this means that
the coroutine pool now contains a corrupted object and later test cases
may get this corrupted object and crash.
This patch saves the real content of the obje
From: Pavel Butsykin
The idea is simple - backup is "written-once" data. It is written block
by block and it is large enough. It would be nice to save storage
space and compress it.
The patch adds a flag to the qmp/hmp drive-backup command which enables
block compression. Compression should be i
From: Pavel Butsykin
Previously was added the assert:
commit 1755da16e32c15b22a521e8a38539e4b5cf367f3
Author: Paolo Bonzini
Date: Thu Oct 18 16:49:18 2012 +0200
block: introduce new dirty bitmap functionality
Now the compressed write is always in coroutine and setting the bits is
don
From: Pavel Butsykin
Now that we can support boxed commands, use it to greatly reduce the
number of parameters (and likelihood of getting out of sync) when
adjusting blockdev-backup parameters.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Signed-off-by: Denis V. Lunev
CC: Jeff C
From: Pavel Butsykin
Now that we can support boxed commands, use it to greatly reduce the
number of parameters (and likelihood of getting out of sync) when
adjusting drive-backup parameters.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Reviewed-by: Eric Blake
Signed-off-by: Deni
From: Pavel Butsykin
Added cases to check the backup compression out of qcow2, raw in qcow2
on drive-backup and blockdev-backup.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Signed-off-by: Denis V. Lunev
CC: Jeff Cody
CC: Markus Armbruster
CC: Eric Blake
CC: John Snow
CC: St
From: Pavel Butsykin
The vmdk format has support for compression, it would be fine to add it for
the test backup compression
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Signed-off-by: Denis V. Lunev
CC: Jeff Cody
CC: Markus Armbruster
CC: Eric Blake
CC: John Snow
CC: Stefan
From: Pavel Butsykin
There are no block drivers left that implement the old
.bdrv_write_compressed interface, so it can be removed. Also now we have
no need to use the bdrv_pwrite_compressed function and we can remove it
entirely.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Sign
From: Pavel Butsykin
Added implementation of the qcow2_co_pwritev_compressed function that
will allow us to safely use compressed writes for the qcow2 from running
VMs.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Signed-off-by: Denis V. Lunev
CC: Jeff Cody
CC: Markus Armbruste
There is no reason why an NBD server couldn't be started for any node,
even if it's not on the top level. This converts nbd-server-add to
accept a node-name.
Note that there is a semantic difference between using a BlockBackend
name and the node name of its root: In the former case, the NBD server
From: Pavel Butsykin
Now that the function uses a vector instead of a buffer, there is no
need to use recursive code.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Signed-off-by: Denis V. Lunev
CC: Jeff Cody
CC: Markus Armbruster
CC: Eric Blake
CC: John Snow
CC: Stefan Hajnoc
From: Pavel Butsykin
Added implementation of the qcow_co_pwritev_compressed function that
will allow us to safely use compressed writes for the qcow from running
VMs.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Signed-off-by: Denis V. Lunev
CC: Jeff Cody
CC: Markus Armbruster
In order to remove the necessity to use BlockBackend names in the
external API, we want to allow node-names everywhere. This converts
drive-backup and the corresponding transaction action to accept a
node-name without lifting the restriction that we're operating at a root
node.
In case of an inval
From: Pavel Butsykin
For bdrv_pwrite_compressed() it looks like most of the code creating
coroutine is duplicated in bdrv_prwv_co(). So we can just add a flag
(BDRV_REQ_WRITE_COMPRESSED) and use bdrv_prwv_co() as a generic one.
In the end we get coroutine oriented function for write compressed by
In order to remove the necessity to use BlockBackend names in the
external API, we want to allow node-names everywhere. This converts
drive-mirror to accept a node-name without lifting the restriction that
we're operating at a root node.
In case of an invalid device name, the command returns the G
From: Pavel Butsykin
Signed-off-by: Pavel Butsykin
Signed-off-by: Denis V. Lunev
Reviewed-by: Eric Blake
CC: Jeff Cody
CC: Markus Armbruster
CC: Eric Blake
CC: John Snow
CC: Stefan Hajnoczi
CC: Kevin Wolf
Signed-off-by: Kevin Wolf
---
block/block-backend.c | 2 +-
block/io.c
In order to remove the necessity to use BlockBackend names in the
external API, we want to allow node-names everywhere. This converts
blockdev-mirror to accept a node-name without lifting the restriction
that we're operating at a root node.
Signed-off-by: Kevin Wolf
Reviewed-by: Eric Blake
Revie
In order to remove the necessity to use BlockBackend names in the
external API, we want to allow node-names everywhere. This converts
blockdev-snapshot-delete-internal-sync to accept a node-name without
lifting the restriction that we're operating at a root node.
In case of an invalid device name,
In order to remove the necessity to use BlockBackend names in the
external API, we want to allow node-names everywhere. This converts
blockdev-backup and the corresponding transaction action to accept a
node-name without lifting the restriction that we're operating at a root
node.
In case of an in
From: Pavel Butsykin
Now that the function uses a vector instead of a buffer, there is no
need to use recursive code.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Signed-off-by: Denis V. Lunev
CC: Jeff Cody
CC: Markus Armbruster
CC: Eric Blake
CC: John Snow
CC: Stefan Hajnoc
From: Pavel Butsykin
Added implementation of the vmdk_co_pwritev_compressed function that
will allow us to safely use compressed writes for the vmdk from running
VMs.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Signed-off-by: Denis V. Lunev
CC: Jeff Cody
CC: Markus Armbruster
The builtin NBD server uses its own BlockBackend now instead of reusing
the monitor/guest device one.
This means that it has its own writethrough setting now. The builtin
NBD server always uses writeback caching now regardless of whether the
guest device has WCE enabled. qemu-nbd respects the cach
From: Pavel Butsykin
This is a preparatory patch, which continues the general trend of the
transition to the byte-based interfaces. bdrv_check_request() and
blk_check_request() are no longer used, thus we can remove them.
Signed-off-by: Pavel Butsykin
Reviewed-by: Stefan Hajnoczi
Reviewed-by:
In order to remove the necessity to use BlockBackend names in the
external API, we want to allow node-names everywhere. This converts
blockdev-snapshot-internal-sync to accept a node-name without lifting
the restriction that we're operating at a root node.
In case of an invalid device name, the co
In order to remove the necessity to use BlockBackend names in the
external API, we want to allow node-names everywhere. This converts
block-commit to accept a node-name without lifting the restriction that
we're operating at a root node.
As libvirt makes use of the DeviceNotFound error class, we m
In order to remove the necessity to use BlockBackend names in the
external API, we want to allow node-names everywhere. This converts
change-backing-file to accept a node-name without lifting the
restriction that we're operating at a root node.
In case of an invalid device name, the command return
In order to remove the necessity to use BlockBackend names in the
external API, we want to allow node-names everywhere. This converts
block-stream to accept a node-name without lifting the restriction that
we're operating at a root node.
In case of an invalid device name, the command returns the G
This allows the creation of an empty ide-cd device without manually
creating a BlockBackend.
Signed-off-by: Kevin Wolf
Acked-by: Eric Blake
---
hw/ide/qdev.c | 20 +++-
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
index 67c76bf..2e
The following changes since commit e87d397e5ef66276ccc49b829527d605ca07d0ad:
Open 2.8 development tree (2016-09-05 11:38:54 +0100)
are available in the git repository at:
git://repo.or.cz/qemu/kevin.git tags/for-upstream
for you to fetch changes up to 1585512ba88324844c2722fd977b126fc274860
This allows the creation of an empty scsi-cd device without manually
creating a BlockBackend.
Signed-off-by: Kevin Wolf
Reviewed-by: Eric Blake
---
hw/scsi/scsi-disk.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 836a155..99c9d61 10064
Am 19.08.2016 um 18:50 hat Kevin Wolf geschrieben:
> In order to remove the necessity to use BlockBackend names in the external
> API,
> we already converted all block layer QMP commands on the node level to accept
> node names instead of BlockBackend names. This series converts the second
> part
This makes the FloppyDrive qdev object actually useful: Now that it has
all properties that don't belong to the controller, you can actually
use '-device floppy' and get a working result.
Command line semantics is consistent with CD-ROM drives: By default you
get a single empty floppy drive. You c
This adds a qbus to the floppy controller that should contain the floppy
drives eventually. At the moment it just exists and is empty.
Signed-off-by: Kevin Wolf
---
hw/block/fdc.c | 40 +++-
1 file changed, 35 insertions(+), 5 deletions(-)
diff --git a/hw/blo
Floppy controllers automatically create two floppy drive devices in qdev
now. (They always created two drives, but managed them only internally.)
Signed-off-by: Kevin Wolf
---
hw/block/fdc.c | 152 +++--
1 file changed, 115 insertions(+), 37 de
We have been complaining for a long time about how the floppy controller and
floppy drives are combined in a single qdev device and how this makes the
device awkward to work with because it behaves different from all other block
devices.
The latest reason to complain was when I noticed that using
On 2016年08月30日 11:06, Jason Wang wrote:
@@ -1587,6 +1595,11 @@ static void virtio_pci_device_plugged(DeviceState *d,
Error **errp)
}
if (legacy) {
+if (virtio_host_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM)) {
+error_setg(errp, "VIRTIO_F_IOMMU_PLATFORM was suppor
Thomas Huth writes:
> On 05.09.2016 13:05, Markus Armbruster wrote:
[...]
>> Let's fix all this. You or I?
>
> I don't mind. I'm currently busy hunting some bugs ... So feel free to
> send the patches for these issues. (and in case you also don't have time
> for that now, I've also put an entry
On 05.09.2016 13:05, Markus Armbruster wrote:
> Thomas Huth writes:
>
>> On 05.09.2016 10:22, Markus Armbruster wrote:
>>> Thomas Huth writes:
>>>
The folder does not exist anymore, thus should be removed from the
MAINTAINERS file, too.
Signed-off-by: Thomas Huth
---
>>
Thomas Huth writes:
> On 05.09.2016 10:22, Markus Armbruster wrote:
>> Thomas Huth writes:
>>
>>> The folder does not exist anymore, thus should be removed from the
>>> MAINTAINERS file, too.
>>>
>>> Signed-off-by: Thomas Huth
>>> ---
>>> MAINTAINERS | 1 -
>>> 1 file changed, 1 deletion(-)
>
John Snow writes:
> On 09/02/2016 01:44 AM, Markus Armbruster wrote:
>> John Snow writes:
>>
>>> If a device still has an attached BDS because the medium has not yet
>>> been removed, we will be unable to migrate to a new host because
>>> blk_flush will return an error for that backend.
>>>
>>>
Am 01.09.2016 um 22:21 hat Holger Schranz geschrieben:
> Hello,
>
> we need help for an issue we have sice QEMU 2.7.
> May be we use the wrong mailing list. If so please let me know which
> mail list we have to use to report problems in QEMU.
>
> Best regards
>
> Holger
Eric, a quick look sugge
On 05.09.2016 10:22, Markus Armbruster wrote:
> Thomas Huth writes:
>
>> The folder does not exist anymore, thus should be removed from the
>> MAINTAINERS file, too.
>>
>> Signed-off-by: Thomas Huth
>> ---
>> MAINTAINERS | 1 -
>> 1 file changed, 1 deletion(-)
>>
>> diff --git a/MAINTAINERS b/M
Thomas Huth writes:
> The folder does not exist anymore, thus should be removed from the
> MAINTAINERS file, too.
>
> Signed-off-by: Thomas Huth
> ---
> MAINTAINERS | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index b6fb84e..ff45f8c 100644
> --- a/MAINTAIN
57 matches
Mail list logo