Migration always uses a TCP socket for NBD servers, because we don't
support same-host migration. But upcoming pull-mode incremental backup
needs to also support a Unix socket, for retrieving the backup from
the same host. Support this by plumbing virStorageNetHostDef through
the monitor calls,
The upcoming virDomainBackup() API needs to take advantage of various
qcow2 bitmap manipulations as the basis to virDomainCheckpoints and
incremental backups. Add four functions to expose
block-dirty-bitmap-{add,enable,disable,merge} (this is the
recently-added QEMU_CAPS_BITMAP_MERGE capability).
I'm trying to break my incremental backup work into smaller pieces so
I can make progress and actually get some code committed, while I
continue to hammer away at preparing a v9 series that addresses even
more review comments and things learned during testing. These few
patches represent the bulk
Add two capabilities for testing features required for the upcoming
virDomainBackupBegin: use block-dirty-bitmap-merge as the generic
witness of bitmap support needed for checkpoints (since all of the
bitmap management functionalities were finalized in the same qemu 4.0
release), and the bitmap
The upcoming virDomainBackup() API needs to take advantage of the
ability to expose a bitmap as part of nbd-server-add for a pull-mode
backup (this is the recently-added QEMU_CAPS_NBD_BITMAP capability).
Signed-off-by: Eric Blake
---
src/qemu/qemu_monitor.h | 4 +++-
On Wed, Jun 05, 2019 at 06:33:11PM +0100, Daniel P. Berrangé wrote:
[...]
> I wonder if there's a way to close the testing gap somehow ? Random idea
> would be a non-versioned "pc-no-deprecated" machine type, which blocks
> all use of deprecated features and does not promise any migration compat.
To summarize implications on libvirt...
This patch currently doesn't change the deprecation status of any machine
type, so it is effectively no-op metadata addition right now.
Libvirt version N can implement support for this today, and nothing would
change from a functional POV with QEMU 4.1.
On 5/23/19 11:32 AM, Daniel P. Berrangé wrote:
The domain conf actual network def stores a element
separately from the . The class ID should really just be
an attribute on the element. We can't change existing
XML, and this isn't visible to users since it is internal XML only.
When we expose
On 6/5/19 6:23 AM, Peter Krempa wrote:
> The flag causes undefine to fail if trying to remove a non-RBD disk. Add
> a warning about that.
>
> Signed-off-by: Peter Krempa
> ---
> tools/virsh.pod | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tools/virsh.pod
On 6/5/19 6:23 AM, Peter Krempa wrote:
> Peter Krempa (3):
> virsh: undefine: Clarify help string for --snapshots-metadata
> virsh: undefine: Rename --delete-snapshots to
> --delete-storage-volume-snapshots
> virsh: undefine: Clarify that --delete-storage-volume-snapshots causes
>
Skip actual snapshot creation code if we have 0 disks to snapshot.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 5b6d3bb795..b7f5142605 100644
--- a/src/qemu/qemu_driver.c
Introduce 'rc' for collecting state from monitor commands so that we can
initialize 'ret' to -1. This also fixes few cases which could return 0
from the fucntion despite an error condition.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 23 ---
1 file changed, 12
After getting rid of pre-transaction qemu support the cleanup section is
unused.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 13 -
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index fad96053db..97f7ad16bf
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 6 ++
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 65b54b7511..fad96053db 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15358,14 +15358,14 @@
If there's a offline config definition save it unconditionally even if
it was not modified.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 12
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index
Now that we never get to the actual snapshot code if there's nothing to
do we can remove the variable and surrounding logic.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 31 +--
1 file changed, 13 insertions(+), 18 deletions(-)
diff --git
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 8093b27656..65b54b7511 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15301,7 +15301,7 @@
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 9c6221d3b2..8093b27656 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15235,7 +15235,7 @@
The caller has it so there's no point in getting it again.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 13 -
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 42b1ce2521..9c6221d3b2 100644
---
All cases taking the 'cleanup' path can take the original 'error' path.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 7 +++
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 17270d5f83..5b6d3bb795 100644
---
Few cleanups to the snapshot code extracted from my blockdev branch.
Peter Krempa (13):
qemu: snapshot: Pass 'cfg' to external snapshot functions
qemu: Use VIR_AUTOPTR in qemuDomainSnapshotCreateDiskActive
qemu: Use virErrorPreserveLast in qemuDomainSnapshotCreateDiskActive
qemu: Use
qemuDomainSnapshotDiskDataFree also removes the resources associated
with the disk data. Move the unlinking of the just-created file so that
we can unify the cleanup paths.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 14 ++
1 file changed, 6 insertions(+), 8
The error path is unlikely thus saving the status XML even if we didn't
modify it does not add much burden.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_driver.c | 10 --
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index
The function skips disks which are not selected for snapshot. Rather
than creating a sparse array and check whether the given field is filled
compress the entries.
Note that this does not allocate a smaller array, but the memory
allocation is short-lived.
Signed-off-by: Peter Krempa
---
On Wed, Jun 5, 2019 at 1:27 PM Peter Krempa wrote:
>
> Peter Krempa (3):
> virsh: undefine: Clarify help string for --snapshots-metadata
> virsh: undefine: Rename --delete-snapshots to
> --delete-storage-volume-snapshots
> virsh: undefine: Clarify that --delete-storage-volume-snapshots
On Tue, Jun 04, 2019 at 08:38:24AM +0200, Markus Armbruster wrote:
> We've discussed possible solutions. Is anyone working or intending to
> work on patches?
I'm not actively working on it now, nor any plans in the near future.
I would like to see it fixed sooner rather than later though.
The old flag name confused some users into thinking it's the correct way
to undefine a VM with libvirt (not storage volume) snapshots.
The correct flag in that case is way less obvious: --snapshots-metadata.
Rename the flag (by adding an alias) to something which will promote
looking up the
Reword the end of the help string to make it more obvious that the VM
must be inactive.
Signed-off-by: Peter Krempa
---
tools/virsh-domain.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 82140feb57..a6e4469160 100644
---
Peter Krempa (3):
virsh: undefine: Clarify help string for --snapshots-metadata
virsh: undefine: Rename --delete-snapshots to
--delete-storage-volume-snapshots
virsh: undefine: Clarify that --delete-storage-volume-snapshots causes
failures
tools/virsh-domain.c | 6 +-
The flag causes undefine to fail if trying to remove a non-RBD disk. Add
a warning about that.
Signed-off-by: Peter Krempa
---
tools/virsh.pod | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/virsh.pod b/tools/virsh.pod
index fd9ba00d1f..11e853deea 100644
---
From: Marc-André Lureau
Signed-off-by: Marc-André Lureau
---
.../vhost-user-gpu-secondary.args | 35 +++
.../vhost-user-gpu-secondary.xml | 44 +++
tests/qemuxml2argvdata/vhost-user-vga.args| 32 ++
From: Marc-André Lureau
Each vhost-user-gpu needs its own helper gpu process.
Start/stop them, and apply the emulator cgroup controller.
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_extdevice.c | 49 +++
1 file changed, 44 insertions(+), 5
From: Marc-André Lureau
Check qemu capability, and accept 3d acceleration. 3d acceleration
support is checked when looking for a suitable vhost-user helper.
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_process.c | 14 --
1 file changed, 12 insertions(+), 2 deletions(-)
diff
From: Marc-André Lureau
To support virtio VGA with vhost-user, vhost-user-vga device is necessary.
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_domain.c | 10 +++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index
From: Marc-André Lureau
Those new devices are merged for QEMU 4.1.
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_capabilities.c | 6 ++
src/qemu/qemu_capabilities.h | 4
2 files changed, 10 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
From: Marc-André Lureau
vhost-user device doesn't have a virgl option, it is passed to the
vhost-user-gpu helper process instead.
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_command.c | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_command.c
From: Marc-André Lureau
See function documentation. Used in a following patch.
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_security.c | 48
src/qemu/qemu_security.h | 6 +
2 files changed, 54 insertions(+)
diff --git
From: Marc-André Lureau
For each vhost-user GPUs,
- build a socket chardev, and pass the vhost-user socket to it
- build a vhost-user video device and associate it with the chardev
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_command.c | 46 +++--
1
From: Marc-André Lureau
Learn to override the paths to the program to execute (vhost-user
helpers are executed to check for runtime capabilities).
Signed-off-by: Marc-André Lureau
---
tests/virfilewrapper.c | 22 ++
1 file changed, 22 insertions(+)
diff --git
From: Marc-André Lureau
vhost-user-gpu helper may accept --render-node option to specify on
which GPU should the renderning be done.
(by comparison rendernode is the target/display rendering)
Signed-off-by: Marc-André Lureau
---
docs/formatdomain.html.in | 5 +
From: Marc-André Lureau
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_cgroup.c | 24
1 file changed, 24 insertions(+)
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index ca76c4fdfa..1627b5ef5d 100644
--- a/src/qemu/qemu_cgroup.c
+++
From: Marc-André Lureau
Call qemuExtVhostUserGPUPrepareDomain() to fill the domain with the
location of the vhost-user binary to start.
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_extdevice.c | 30 ++
src/qemu/qemu_extdevice.h | 5 +
From: Marc-André Lureau
Similar to the qemu_tpm.c, add a unit with a few functions to
start/stop and setup the cgroup of the external vhost-user-gpu
process. See function documentation.
Since the vhost-user connection fd isn't necessarily specific to QEMU,
it was easier to add it to
From: Marc-André Lureau
The same config files disovery & priority rules are used for
vhost-user backends.
Signed-off-by: Marc-André Lureau
---
src/qemu/Makefile.inc.am | 2 +
src/qemu/qemu_configs.c | 183 +++
src/qemu/qemu_configs.h | 31 +++
From: Marc-André Lureau
Signed-off-by: Marc-André Lureau
---
src/conf/device_conf.c | 21 -
src/conf/device_conf.h | 2 --
src/libvirt_private.syms | 1 -
3 files changed, 24 deletions(-)
diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c
index
From: Marc-André Lureau
Add qemuVhostUserFetchConfigs() to discover vhost-user helpers.
qemuVhostUserFillDomainGPU() will find the first matching GPU helper
with the required capabilities and set the associated
vhost_user_binary.
Signed-off-by: Marc-André Lureau
---
src/conf/device_conf.c
From: Marc-André Lureau
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_tpm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c
index 835a9caf46..41fef1f8f5 100644
--- a/src/qemu/qemu_tpm.c
+++ b/src/qemu/qemu_tpm.c
@@ -745,7
From: Marc-André Lureau
The field is set just before returning on success.
Signed-off-by: Marc-André Lureau
---
src/qemu/qemu_firmware.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c
index f3d89d000d..bf29b10b9a 100644
---
From: Marc-André Lureau
Hi,
This series of patches adds support for running virtio GPUs in
seperate processes, thanks to vhost-user backend.
The QEMU support landed for 4.1. There are several benefits of running
the GPU/virgl in an external process, since Mesa is rather heavy on
the qemu main
From: Marc-André Lureau
Accept a new attribute to specify usage of helper process, ex:
Signed-off-by: Marc-André Lureau
---
docs/formatdomain.html.in | 6 ++
docs/schemas/domaincommon.rng | 11 ++-
src/conf/domain_conf.c| 14 ++
On 6/5/19 11:32 AM, Peter Krempa wrote:
On Wed, Jun 05, 2019 at 11:09:14 +0200, Michal Privoznik wrote:
Changing domain definition must be guarded with acquiring modify
job. The problem is if there is a thread executing say
qemuDomainSetMemoryStatsPeriod() which is an API that acquires
modify
On Wed, Jun 05, 2019 at 11:09:14 +0200, Michal Privoznik wrote:
> Changing domain definition must be guarded with acquiring modify
> job. The problem is if there is a thread executing say
> qemuDomainSetMemoryStatsPeriod() which is an API that acquires
> modify job and then possibly unlock the
In some cases, caller of lxcDomainObjListAdd() tries to acquire
MODIFY job after the call. Let's adjust lxcDomainObjListAdd() so
that it will keep the job set upon return (if requested by
caller).
Signed-off-by: Michal Privoznik
---
src/lxc/lxc_domain.c | 17 ++---
In some cases, caller of libxlDomainObjListAdd() tries to acquire
MODIFY job after the call. Let's adjust libxlDomainObjListAdd() so
that it will keep the job set upon return (if requested by
caller).
Signed-off-by: Michal Privoznik
---
src/libxl/libxl_domain.c| 17 ++---
In some cases, caller of qemuDomainObjListAdd() tries to acquire
MODIFY job after the call. Let's adjust qemuDomainObjListAdd() so
that it will keep the job set upon return (if requested by
caller).
Signed-off-by: Michal Privoznik
---
src/qemu/qemu_domain.c| 17 ++---
The reasoning here is the same as in qemu driver fixed in
previous commit. Long story short, changing an XML of a domain
requires modify job to be acquired.
Signed-off-by: Michal Privoznik
---
src/lxc/lxc_domain.c | 57
src/lxc/lxc_domain.h | 7
The reasoning here is the same as in qemu driver fixed in
previous commit. Long story short, changing an XML of a domain
requires modify job to be acquired.
Signed-off-by: Michal Privoznik
---
src/libxl/libxl_domain.c| 57 +
src/libxl/libxl_domain.h|
Changing domain definition must be guarded with acquiring modify
job. The problem is if there is a thread executing say
qemuDomainSetMemoryStatsPeriod() which is an API that acquires
modify job and then possibly unlock the domain object and locks
it again. However, becasue virDomainObjAssignDef()
Because of past limitation of virDomainObjListAddObjLocked() we
had to set vm->def even before the object was on the domains
list.
Signed-off-by: Michal Privoznik
Reviewed-by: Nikolay Shirokovskiy
---
src/conf/virdomainobjlist.c | 9 -
1 file changed, 4 insertions(+), 5 deletions(-)
After the previous commit the VIR_DOMAIN_OBJ_LIST_ADD_LIVE flag
is not used anymore. Let's remove it.
Signed-off-by: Michal Privoznik
---
src/conf/virdomainobjlist.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/conf/virdomainobjlist.h b/src/conf/virdomainobjlist.h
Signed-off-by: Michal Privoznik
Reviewed-by: Nikolay Shirokovskiy
---
src/conf/domain_conf.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 4c3ab07062..92c734e13d 100644
--- a/src/conf/domain_conf.h
+++
v2 of:
https://www.redhat.com/archives/libvir-list/2019-May/msg00858.html
diff to v1:
- 1/9 from the original series is pushed now. It's independent from the
feature.
- Acquiring job is done in a way suggested by Nikolay in review of v1.
Michal Prívozník (11):
virDomainObjListAddObjLocked:
In near future vm->def might be not set when calling this
function. Therefore, have caller explicitly state what UUID and
name the domain object should be stored under.
Signed-off-by: Michal Privoznik
Reviewed-by: Nikolay Shirokovskiy
---
src/conf/virdomainobjlist.c | 14 +-
1 file
Some driver have concept of jobs (e.g. qemu, lxc, libxl and vz).
This means that whenever something wants to modify a domain
object it needs to acquire job (to mutually exclude with other
threads trying to modify the same object). And aforementioned
drivers do that more or less successfully.
64 matches
Mail list logo