Move RAM_SAVE_FLAG_xxx defines from migration/ram.c to migration/ram.h
Signed-off-by: Andrey Gruzdev
---
migration/ram.c | 16
migration/ram.h | 16
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c
index
This commit enables asynchronous block layer I/O for qemu-snapshot tool.
Implementation provides in-order request completion delivery to simplify
migration code.
Several file utility routines are introduced as well.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snapshot.h | 30
Added missing qemu_fflush() on buffer file holding precopy device state.
Increased initial QIOChannelBuffer allocation to 512KB to avoid reallocs.
Typical configurations often require >200KB for device state and VMDESC.
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 4 +++-
1 f
state
Andrey Gruzdev (3):
migration: Fix missing qemu_fflush() on buffer file in
bg_migration_thread
migration: Inhibit virtio-balloon for the duration of background
snapshot
migration: Pre-fault memory before starting background snasphot
hw/virtio/virtio-balloon.c | 8 --
include
block to be protected
before making a userfault_fd wr-protect ioctl().
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 6 +
migration/ram.c | 51 +++
migration/ram.h | 1 +
3 files changed, 58 insertions(+)
diff --git a/migration
The same thing as for incoming postcopy - we cannot deal with concurrent
RAM discards when using background snapshot feature in outgoing migration.
Signed-off-by: Andrey Gruzdev
---
hw/virtio/virtio-balloon.c | 8 ++--
include/migration/misc.h | 2 ++
migration/migration.c | 8
On 18.03.2021 21:16, David Hildenbrand wrote:
On 18.03.21 18:46, Andrey Gruzdev wrote:
The same thing as for incoming postcopy - we cannot deal with concurrent
RAM discards when using background snapshot feature in outgoing
migration.
Signed-off-by: Andrey Gruzdev
---
hw/virtio/virtio
the RamDiscardManager patches are still stuck waiting for
acks ... and now we're in soft-freeze.
RamDiscardManager patches - do they also modify migration code?
I mean which part is responsible of not migrating discarded ranges.
--
Andrey Gruzdev, Principal Engineer
Virtuozzo GmbH +7-903-247-6397
virtuzzo.com
char tmp = *(volatile char *)(ptr + offset)
I wanted to do a "= *(ptr + offset)" here.
Yep
/* Don't optimize the read out. */
asm volatile ("" : "+r" (tmp));
So this is the only volatile thing that the compiler must guarantee to
not optimize awa
On 19.03.2021 14:27, David Hildenbrand wrote:
On 19.03.21 12:05, Andrey Gruzdev wrote:
On 19.03.2021 12:28, David Hildenbrand wrote:
+/*
+ * ram_block_populate_pages: populate memory in the RAM block by
reading
+ * an integer from the beginning of each page.
+ *
+ * Since it's solely
On 19.03.2021 15:39, David Hildenbrand wrote:
On 18.03.21 18:46, Andrey Gruzdev wrote:
Added missing qemu_fflush() on buffer file holding precopy device state.
Increased initial QIOChannelBuffer allocation to 512KB to avoid
reallocs.
Typical configurations often require >200KB for dev
Added missing qemu_fflush() on buffer file holding precopy device state.
Increased initial QIOChannelBuffer allocation to 512KB to avoid reallocs.
Typical configurations often require >200KB for device state and VMDESC.
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 4 +++-
1 f
block to be protected
before making a userfault_fd wr-protect ioctl().
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 6 ++
migration/ram.c | 48 +++
migration/ram.h | 1 +
3 files changed, 55 insertions(+)
diff --git a/migration
The same thing as for incoming postcopy - we cannot deal with concurrent
RAM discards when using background snapshot feature in outgoing migration.
Signed-off-by: Andrey Gruzdev
Reviewed-by: David Hildenbrand
---
hw/virtio/virtio-balloon.c | 8 ++--
include/migration/misc.h | 2
ate
* Solution to compatibility issues with virtio-balloon device
* Fix to the issue when discarded or never populated pages miss UFFD
write protection and get into migration stream in dirty state
Andrey Gruzdev (3):
migration: Fix missing qemu_fflush() on buffer file in
bg_migration_thr
On 22.03.2021 23:17, Peter Xu wrote:
On Fri, Mar 19, 2021 at 05:52:47PM +0300, Andrey Gruzdev wrote:
Added missing qemu_fflush() on buffer file holding precopy device state.
Increased initial QIOChannelBuffer allocation to 512KB to avoid reallocs.
Typical configurations often require >200KB
On 23.03.2021 17:54, Peter Xu wrote:
On Tue, Mar 23, 2021 at 10:51:57AM +0300, Andrey Gruzdev wrote:
On 22.03.2021 23:17, Peter Xu wrote:
On Fri, Mar 19, 2021 at 05:52:47PM +0300, Andrey Gruzdev wrote:
Added missing qemu_fflush() on buffer file holding precopy device state.
Increased initial
On 23.03.2021 21:35, Peter Xu wrote:
On Tue, Mar 23, 2021 at 08:21:43PM +0300, Andrey Gruzdev wrote:
For the long term I think we'd better have a helper:
qemu_put_qio_channel_buffer(QEMUFile *file, QIOChannelBuffer *bioc)
So as to hide this flush operation, which is tricky.
On 24.03.2021 01:21, Peter Xu wrote:
On Fri, Mar 19, 2021 at 05:52:46PM +0300, Andrey Gruzdev wrote:
Changes v0->v1:
* Using qemu_real_host_page_size instead of TARGET_PAGE_SIZE for host
page size in ram_block_populate_pages()
* More elegant implementation of ram_block_populate_pa
On 24.03.2021 18:41, Peter Xu wrote:
On Wed, Mar 24, 2021 at 11:09:27AM +0300, Andrey Gruzdev wrote:
I'm also looking into introducing UFFD_FEATURE_WP_UNALLOCATED so as to
wr-protect page holes too for a uffd-wp region when the feature bit is set.
With that feature we should be able to
Ping
On 17.03.2021 19:32, Andrey Gruzdev wrote:
This series is a kind of PoC for asynchronous snapshot reverting. This is
about external snapshots only and doesn't involve block devices. Thus, it's
mainly intended to be used with the new 'background-snapshot' migr
The same thing as for incoming postcopy - we cannot deal with concurrent
RAM discards when using background snapshot feature in outgoing migration.
Signed-off-by: Andrey Gruzdev
Reviewed-by: David Hildenbrand
---
hw/virtio/virtio-balloon.c | 8 ++--
include/migration/misc.h | 2
Added missing qemu_fflush() on buffer file holding precopy device state.
Increased initial QIOChannelBuffer allocation to 512KB to avoid reallocs.
Typical configurations often require >200KB for device state and VMDESC.
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 8 +++-
patch series contains:
* Fix to the issue with occasionally truncated non-iterable device state
* Solution to compatibility issues with virtio-balloon device
* Fix to the issue when discarded or never populated pages miss UFFD
write protection and get into migration stream in dirty state
Andrey G
block to be protected
before making a userfault_fd wr-protect ioctl().
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 6 ++
migration/ram.c | 48 +++
migration/ram.h | 1 +
3 files changed, 55 insertions(+)
diff --git a/migration
On 31.03.2021 19:02, Peter Xu wrote:
On Wed, Mar 31, 2021 at 06:48:06PM +0300, Andrey Gruzdev wrote:
Changes v1->v2:
* Added comment over the overlooked qemu_flush() in bg_migration_thread
Changes v0->v1:
* Using qemu_real_host_page_size instead of TARGET_PAGE_SIZE for host
pag
The same thing as for incoming postcopy - we cannot deal with concurrent
RAM discards when using background snapshot feature in outgoing migration.
Signed-off-by: Andrey Gruzdev
Reviewed-by: David Hildenbrand
---
hw/virtio/virtio-balloon.c | 8 ++--
include/migration/misc.h | 2
block to be protected
before making a userfault_fd wr-protect ioctl().
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 6 ++
migration/ram.c | 48 +++
migration/ram.h | 1 +
3 files changed, 55 insertions(+)
diff --git a/migration
state
Andrey Gruzdev (3):
migration: Fix missing qemu_fflush() on buffer file in
bg_migration_thread
migration: Inhibit virtio-balloon for the duration of background
snapshot
migration: Pre-fault memory before starting background snasphot
hw/virtio/virtio-balloon.c | 8 +--
include
Added missing qemu_fflush() on buffer file holding precopy device state.
Increased initial QIOChannelBuffer allocation to 512KB to avoid reallocs.
Typical configurations often require >200KB for device state and VMDESC.
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 8 +++-
On 31.03.2021 20:33, David Hildenbrand wrote:
On 31.03.21 19:28, Andrey Gruzdev wrote:
This commit solves the issue with userfault_fd WP feature that
background snapshot is based on. For any never poluated or discarded
memory page, the UFFDIO_WRITEPROTECT ioctl() would skip updating
PTE for
On 31.03.2021 20:37, David Hildenbrand wrote:
On 31.03.21 19:33, David Hildenbrand wrote:
On 31.03.21 19:28, Andrey Gruzdev wrote:
This commit solves the issue with userfault_fd WP feature that
background snapshot is based on. For any never poluated or discarded
memory page, the
The same thing as for incoming postcopy - we cannot deal with concurrent
RAM discards when using background snapshot feature in outgoing migration.
Fixes: 8518278a6af589ccc401f06e35f171b1e6fae800 (migration: implementation
of background snapshot thread)
Signed-off-by: Andrey Gruzdev
Reported
ion
of background snapshot thread)
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/migration/migration.c b/migration/migration.c
index ca8b97baa5..00e13f9d58 100644
--- a/migration/migration.c
+++ b/migrat
Rename 'bs' to commonly used 'block' in migration/ram.c background
snapshot code.
Signed-off-by: Andrey Gruzdev
Reported-by: David Hildenbrand
---
migration/ram.c | 86 +
1 file changed, 44 insertions(+), 42 deletions(-)
di
block to be protected
before making a userfault_fd wr-protect ioctl().
Fixes: 278e2f551a095b234de74dca9c214d5502a1f72c (migration: support
UFFD write fault processing in ram_save_iterate())
Signed-off-by: Andrey Gruzdev
Reported-by: David Hildenbrand
Reviewed-by: David Hildenbrand
---
migration
h virtio-balloon device
* Fix to the issue when discarded or never populated pages miss UFFD
write protection and get into migration stream in dirty state
* Renaming of 'bs' to commonly used 'block' in migration/ram.c background
snapshot code
Andrey Gruzdev (4):
mig
On 06.04.2021 15:29, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
Added missing qemu_fflush() on buffer file holding precopy device state.
Increased initial QIOChannelBuffer allocation to 512KB to avoid reallocs.
Typical configurations often require
On 06.04.2021 19:53, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
Changes v0->v1:
* Fixes to coding style and commit messages
* Renamed 'bs' to 'block' in migration/ram.c background snapshot code
This patch series contains:
4
The definition of ram_write_tracking_prepare() is inside an
#if defined(__linux__), but the callsite is not, I think.
OK, reproduced here. Let me see.
Dave
Seems that non-linux stub is missing, I'll respin.
thanks
-- PMM
--
Andrey Gruzdev, Principal Engineer
Virtuozzo GmbH +7-903-247-6397
virtuzzo.com
On 08.04.2021 13:50, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
On 07.04.2021 19:50, Dr. David Alan Gilbert wrote:
* Peter Maydell (peter.mayd...@linaro.org) wrote:
On Wed, 7 Apr 2021 at 11:22, Dr. David Alan Gilbert (git)
wrote:
From: "Dr.
Initial commit with code to set up execution environment, parse
command-line arguments, show usage/version info and so on.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snap.h | 35
meson.build | 2 +
qemu-snap.c | 414
3
Move RAM_SAVE_FLAG_xxx defines from migration/ram.c to migration/ram.h
Signed-off-by: Andrey Gruzdev
---
migration/ram.c | 16
migration/ram.h | 16
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c
index
asynchronous revert works well only with SSD, not with rotational
disk..
Some performance stats:
* SATA SSD drive with ~500/450 MB/s sequantial read/write and ~60K IOPS max.
* 220 MB/s average save rate (depends on workload)
* 440 MB/s average load rate in precopy
* 260 MB/s average load rate in p
: Andrey Gruzdev
---
migration/qemu-file.c | 6 ++
migration/qemu-file.h | 1 +
2 files changed, 7 insertions(+)
diff --git a/migration/qemu-file.c b/migration/qemu-file.c
index d6e03dbc0e..66be5e6460 100644
--- a/migration/qemu-file.c
+++ b/migration/qemu-file.c
@@ -657,6 +657,12 @@ int64_t
Major part of code is using QEMUFile and block layer routines, thus to
take advantage from concurrent I/O operations we need to use coroutines
and run in the the main loop context.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snap.h | 3 +++
meson.build | 2 +-
qemu-snap
ev/null
+++ b/qemu-snap-io.c
@@ -0,0 +1,325 @@
+/*
+ * QEMU External Snapshot Utility
+ *
+ * Copyright Virtuozzo GmbH, 2021
+ *
+ * Authors:
+ * Andrey Gruzdev
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * later. See the COPYING file in the top-level directory.
Implementation of asynchronous snapshot loading using standard
postcopy migration mechanism on destination VM.
The point of switchover to postcopy is trivially selected based on
percentage of non-zero pages loaded in precopy.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snap.h | 11 +
qemu
: Andrey Gruzdev
---
qemu-snap.c | 94 ++---
1 file changed, 90 insertions(+), 4 deletions(-)
diff --git a/qemu-snap.c b/qemu-snap.c
index c7118927f7..c9f8d7166a 100644
--- a/qemu-snap.c
+++ b/qemu-snap.c
@@ -31,6 +31,16 @@
#include "migration
Includes code to parse incoming migration stream, dispatch data to
section handlers and deal with complications of open-coded migration
format without introducing strong dependencies on QEMU migration code.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snap.h | 42 +++
qemu-snap-handlers.c
This part implements snapshot loading in precopy mode.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snap.h | 24 ++
qemu-snap-handlers.c | 586 ++-
qemu-snap.c | 44 +++-
3 files changed, 649 insertions(+), 5 deletions(-)
diff --git a
In qemu-snapshot it is needed to retrieve current QEMUFile offset as a
number of bytes read by qemu_get_byte()/qemu_get_buffer().
The existing qemu_ftell() routine would give read position as a number
of bytes fetched from underlying IOChannel which is not the same.
Signed-off-by: Andrey Gruzdev
ility postcopy-ram on
* qemu> migrate_incoming "exec:qemu-snapshot --revert --postcopy=60
,cache.direct=on,file.aio=native"
And yes, asynchronous revert works well only with SSD, not with rotational
disk..
Some performance stats:
* SATA SSD drive with ~500/450 MB/s sequan
The commit enables asynchronous snapshot loading using standard postcopy
migration mechanism on destination VM.
The point of switchover to postcopy is trivially selected based on
percentage of non-zero pages loaded in precopy.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snapshot.h | 12
Execution environment, command-line argument parsing, usage/version info etc.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snapshot.h | 59 ++
meson.build | 2 +
qemu-snapshot-vm.c | 57 ++
qemu-snapshot.c | 439
4
This part implements snapshot loading in precopy mode.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snapshot.h | 24 +-
qemu-snapshot-vm.c | 588 +++-
qemu-snapshot.c | 47 +++-
3 files changed, 654 insertions(+), 5 deletions(-)
diff --git a
Includes code to parse incoming migration stream, dispatch data to
section handlers and deal with complications of open-coded migration
format without introducing strong dependencies on QEMU migration code.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snapshot.h | 34 +-
qemu-snapshot-vm.c
fer'
* qemu> migrate_set_capability postcopy-ram on
* qemu> migrate_incoming "exec:qemu-snapshot --revert --postcopy=60
,cache.direct=on,file.aio=native"
And yes, asynchronous revert works well only with SSD, not with rotational
disk..
Some performance stats:
* SA
In qemu-snapshot it is needed to retrieve current QEMUFile offset as a
number of bytes read by qemu_get_byte()/qemu_get_buffer().
The existing qemu_ftell() routine would give read position as a number
of bytes fetched from underlying IOChannel which is not the same.
Signed-off-by: Andrey Gruzdev
This part implements snapshot loading in precopy mode.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snapshot.h | 24 +-
qemu-snapshot-vm.c | 588 +++-
qemu-snapshot.c | 47 +++-
3 files changed, 654 insertions(+), 5 deletions(-)
diff --git a
This commit enables asynchronous block layer I/O for qemu-snapshot tool.
Implementation provides in-order request completion delivery to simplify
migration code.
Several file utility routines are introduced as well.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snapshot.h | 30
Execution environment, command-line argument parsing, usage/version info etc.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snapshot.h | 59 ++
meson.build | 2 +
qemu-snapshot-vm.c | 57 ++
qemu-snapshot.c | 439
4
The commit enables asynchronous snapshot loading using standard postcopy
migration mechanism on destination VM.
The point of switchover to postcopy is trivially selected based on
percentage of non-zero pages loaded in precopy.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snapshot.h | 12
Includes code to parse incoming migration stream, dispatch data to
section handlers and deal with complications of open-coded migration
format without introducing strong dependencies on QEMU migration code.
Signed-off-by: Andrey Gruzdev
---
include/qemu-snapshot.h | 34 +-
qemu-snapshot-vm.c
Move RAM_SAVE_FLAG_xxx defines from migration/ram.c to migration/ram.h
Signed-off-by: Andrey Gruzdev
---
migration/ram.c | 16
migration/ram.h | 16
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c
index
On 16.04.2021 02:50, Peter Xu wrote:
On Wed, Mar 17, 2021 at 07:32:13PM +0300, Andrey Gruzdev wrote:
This series is a kind of PoC for asynchronous snapshot reverting. This is
about external snapshots only and doesn't involve block devices. Thus, it's
mainly intended to be used wi
having to go over the dirty bitmap to cross off
"discarded" parts and later having to find bits to migrate.
At least find_next_bit() can skip whole longs (8 bytes) and is fairly
efficient. There is certainly room for improvement (the current guest
free page hinting API is certainly a
be as you said UFFDIO_ZEROCOPY is not the only route.
Thanks,
Just to add: one of the good options is too keep track of
virtio-baloon discarded pages and
pre-fault them before migration starts. What do you think?
Just pre-fault everything and inhibit the balloon. That should work.
Yep.
On 19.02.2021 23:50, Peter Xu wrote:
Andrey,
On Fri, Feb 19, 2021 at 09:57:37AM +0300, Andrey Gruzdev wrote:
For the discards that happen before snapshot is started, I need to dig into
Linux and QEMU virtio-baloon
code more to get clear with it.
Yes it's very tricky on how the error
On 24.02.2021 20:01, David Hildenbrand wrote:
On 24.02.21 17:56, Andrey Gruzdev wrote:
On 22.02.2021 21:11, David Hildenbrand wrote:
On 22.02.21 18:54, Peter Xu wrote:
On Mon, Feb 22, 2021 at 06:33:27PM +0100, David Hildenbrand wrote:
On 22.02.21 18:29, Peter Xu wrote:
On Sat, Feb 20, 2021
On 20.01.2021 00:01, Peter Xu wrote:
On Wed, Jan 06, 2021 at 06:21:20PM +0300, Andrey Gruzdev wrote:
Add BCC/eBPF script to analyze userfaultfd write fault latency distribution.
Signed-off-by: Andrey Gruzdev
Acked-by: Peter Xu
(This seems to be the last patch that lacks a r-b ... Let'
On 21.01.2021 18:37, Peter Xu wrote:
On Thu, Jan 21, 2021 at 04:12:23PM +0300, Andrey Gruzdev wrote:
+/* KRETPROBE for handle_userfault(). */
+int retprobe_handle_userfault(struct pt_regs *ctx)
+{
+u64 pid = (u32) bpf_get_current_pid_tgid();
+u64 *addr_p;
+
+/*
+ * Here we just
On 21.01.2021 19:11, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
On 21.01.2021 12:56, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
On 19.01.2021 21:49, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz
On 21.01.2021 20:48, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
On 21.01.2021 19:11, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
On 21.01.2021 12:56, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz
On 28.01.2021 21:29, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
Introducing implementation of 'background' snapshot thread
which in overall follows the logic of precopy migration
while internally utilizes completely different mechanism
On 04.02.2021 18:01, Dr. David Alan Gilbert wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
This patch series is a kind of 'rethinking' of Denis Plotnikov's ideas he's
implemented in his series '[PATCH v0 0/4] migration: add background snapshot'.
On 04.02.2021 19:53, Dr. David Alan Gilbert wrote:
* Dr. David Alan Gilbert (dgilb...@redhat.com) wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
This patch series is a kind of 'rethinking' of Denis Plotnikov's ideas he's
implemented in his series '[PAT
On 04.02.2021 19:53, Dr. David Alan Gilbert wrote:
* Dr. David Alan Gilbert (dgilb...@redhat.com) wrote:
* Andrey Gruzdev (andrey.gruz...@virtuozzo.com) wrote:
This patch series is a kind of 'rethinking' of Denis Plotnikov's ideas he's
implemented in his series '[PAT
a problem exists.. If we are talking about a
write to an unpopulated page, we should get first page fault on
non-present page and populate it with protection bits from respective vma.
For UFFD_WP vma's page will be populated non-writable. So we'll get
another page fault on present but re
On 08.12.2020 21:24, Peter Xu wrote:
On Fri, Dec 04, 2020 at 12:30:59PM +0300, Andrey Gruzdev wrote:
This patch series is a kind of 'rethinking' of Denis Plotnikov's ideas he's
implemented in his series '[PATCH v0 0/4] migration: add background snapshot'.
On 08.12.2020 18:47, Peter Xu wrote:
On Fri, Dec 04, 2020 at 12:31:00PM +0300, Andrey Gruzdev wrote:
+static
+WriteTrackingSupport migrate_query_write_tracking(void)
+{
+static WriteTrackingSupport wt_support = WT_SUPPORT_UNKNOWN;
Better to be non-static - consider uncompatible memory can
On 09.12.2020 13:08, Andrey Gruzdev wrote:
This patch series is a kind of 'rethinking' of Denis Plotnikov's ideas he's
implemented in his series '[PATCH v0 0/4] migration: add background snapshot'.
Currently the only way to make (external) live VM snapshot is usi
apshot we've got
- Guest: (should still be in the state of waiting for cmd) this time we enter
"check"
Thanks,
Hi David, Peter,
A little unexpected behavior, from my point of view, for UFFD write-protection.
So, that means that UFFD_WP protection/e
page, so we'll have a lot of additional UFFD events, much
more MISSING events then WP-faults.
And the main problem is that adding MISSING handler is impossible in
current single-threaded snapshot code. We'll get an immediate deadlock
on iterative page read.
--
Andrey Gruz
On 11.02.2021 20:18, Peter Xu wrote:
On Thu, Feb 11, 2021 at 12:21:51PM +0300, Andrey Gruzdev wrote:
On 09.02.2021 23:31, Peter Xu wrote:
On Tue, Feb 09, 2021 at 03:09:28PM -0500, Peter Xu wrote:
Hi, David, Andrey,
On Tue, Feb 09, 2021 at 08:06:58PM +0100, David Hildenbrand wrote:
Hi,
just
On 11.02.2021 20:32, Peter Xu wrote:
On Thu, Feb 11, 2021 at 07:19:47PM +0300, Andrey Gruzdev wrote:
On 09.02.2021 22:06, David Hildenbrand wrote:
Hi,
just stumbled over this, quick question:
I recently played with UFFD_WP and notices that write protection is
only effective on pages/ranges
ocument this specific behaviour but also clarify that the
saved state remains
consistent and secure, off course if you agree with my arguments.
--
Andrey Gruzdev, Principal Engineer
Virtuozzo GmbH +7-903-247-6397
virtuzzo.com
On 17.02.2021 02:35, Peter Xu wrote:
Hi, Andrey,
On Sat, Feb 13, 2021 at 12:34:07PM +0300, Andrey Gruzdev wrote:
On 12.02.2021 19:11, Peter Xu wrote:
On Fri, Feb 12, 2021 at 09:52:52AM +0100, David Hildenbrand wrote:
On 12.02.21 04:06, Peter Xu wrote:
On Thu, Feb 11, 2021 at 10:09:58PM
On 19.11.2020 21:25, Peter Xu wrote:
On Thu, Nov 19, 2020 at 03:59:36PM +0300, Andrey Gruzdev via wrote:
[...]
+/**
+ * ram_find_block_by_host_address: find RAM block containing host page
+ *
+ * Returns true if RAM block is found and pss->block/page are
+ * pointing to the given host p
On 19.11.2020 21:39, Peter Xu wrote:
On Thu, Nov 19, 2020 at 03:59:35PM +0300, Andrey Gruzdev via wrote:
+/**
+ * uffd_register_memory: register memory range with UFFD
+ *
+ * Returns 0 in case of success, negative value on error
+ *
+ * @uffd: UFFD file descriptor
+ * @start: starting virtual
On 19.11.2020 21:46, Peter Xu wrote:
On Thu, Nov 19, 2020 at 03:59:38PM +0300, Andrey Gruzdev wrote:
To avoid saving updated versions of memory pages we need
to start tracking RAM writes before we resume operation of
vCPUs. This sequence is especially critical for virtio device
backends whos
On 19.11.2020 21:51, Peter Xu wrote:
On Thu, Nov 19, 2020 at 03:59:34PM +0300, Andrey Gruzdev via wrote:
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 96 +++
migration/migration.h | 1 +
qapi/migration.json | 7 +++-
3 files changed
On 19.11.2020 22:07, Peter Xu wrote:
On Thu, Nov 19, 2020 at 01:51:50PM -0500, Peter Xu wrote:
On Thu, Nov 19, 2020 at 03:59:34PM +0300, Andrey Gruzdev via wrote:
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 96 +++
migration/migration.h
On 19.11.2020 21:47, Peter Xu wrote:
On Thu, Nov 19, 2020 at 03:59:37PM +0300, Andrey Gruzdev via wrote:
Signed-off-by: Andrey Gruzdev
Some commit message would always be appreciated... Thanks,
Yep, missed it..
--
Andrey Gruzdev, Principal Engineer
Virtuozzo GmbH +7-903-247-6397
On 19.11.2020 23:02, Peter Xu wrote:
On Thu, Nov 19, 2020 at 03:59:40PM +0300, Andrey Gruzdev wrote:
Since reading UFFD events and saving paged data are performed
from the same thread, write fault latencies are sensitive to
migration stream stalls. Limiting total page saving rate is a
method to
On 20.11.2020 18:07, Peter Xu wrote:
On Fri, Nov 20, 2020 at 01:44:53PM +0300, Andrey Gruzdev wrote:
On 19.11.2020 21:25, Peter Xu wrote:
On Thu, Nov 19, 2020 at 03:59:36PM +0300, Andrey Gruzdev via wrote:
[...]
+/**
+ * ram_find_block_by_host_address: find RAM block containing host page
On 20.11.2020 18:01, Peter Xu wrote:
On Fri, Nov 20, 2020 at 02:04:46PM +0300, Andrey Gruzdev wrote:
+RAMBLOCK_FOREACH_NOT_IGNORED(bs) {
+/* Nothing to do with read-only and MMIO-writable regions */
+if (bs->mr->readonly || bs->mr->rom_device) {
+
On 20.11.2020 19:43, Peter Xu wrote:
On Fri, Nov 20, 2020 at 07:15:07PM +0300, Andrey Gruzdev wrote:
Yeah, I think we can re-use the postcopy queue code for faulting pages. I'm
worring a little about some additional overhead dealing with urgent request
semaphore. Also, the code won'
On 24.11.2020 00:34, Peter Xu wrote:
On Fri, Nov 20, 2020 at 07:53:34PM +0300, Andrey Gruzdev wrote:
On 20.11.2020 19:43, Peter Xu wrote:
On Fri, Nov 20, 2020 at 07:15:07PM +0300, Andrey Gruzdev wrote:
Yeah, I think we can re-use the postcopy queue code for faulting pages. I'm
worr
On 24.11.2020 19:55, Dr. David Alan Gilbert wrote:
* Peter Xu (pet...@redhat.com) wrote:
On Thu, Nov 19, 2020 at 01:51:50PM -0500, Peter Xu wrote:
On Thu, Nov 19, 2020 at 03:59:34PM +0300, Andrey Gruzdev via wrote:
Signed-off-by: Andrey Gruzdev
---
migration/migration.c | 96
1 - 100 of 242 matches
Mail list logo