Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
---
migration/rdma.c | 52
1 file changed, 52 insertions(+)
diff --git a/migration/rdma.c b/migration/rdma.c
index e0ea86d..996afb0 100644
--- a/migration/rdma.c
+++ b/migration
Multifd RDMA is need to poll when we send data, record it.
Signed-off-by: Chuan Zheng
---
migration/migration.c | 1 +
migration/migration.h | 1 +
migration/rdma.c | 14 ++
3 files changed, 16 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/qemu-file.c | 5 +
migration/qemu-file.h | 1 +
2 files changed, 6 insertions(+)
diff --git a/migration/qemu-file.c b/migration/qemu-file.c
index be21518..37f6201 100644
--- a/migration/qemu-file.c
+++ b/migration/qemu
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/rdma.c | 65
1 file changed, 61 insertions(+), 4 deletions(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index 2097839..c19a91f 100644
--- a/migration/rdma.c
+++ b
We still don't transmit anything through them, and we only build
the RDMA connections.
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/rdma.c | 69 ++--
1 file changed, 67 insertions(+), 2 deletions(-)
diff --
Add enabled_rdma_migration into MigrationState to judge
whether or not the RDMA is used for migration.
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/migration.c | 13 +
migration/migration.h | 6 ++
2 files changed, 19 insertions(+)
diff --git a
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 3 ++
migration/rdma.c| 92 +++--
2 files changed, 93 insertions(+), 2 deletions(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index 919a414..1186246
Note we do want to export any rdma struct, take void * instead.
Signed-off-by: Chuan Zheng
---
migration/multifd.h | 8
1 file changed, 8 insertions(+)
diff --git a/migration/multifd.h b/migration/multifd.h
index d57756c..b17a2c1 100644
--- a/migration/multifd.h
+++ b/migration
Signed-off-by: Chuan Zheng
---
migration/migration.c | 1 +
migration/migration.h | 3 +++
migration/rdma.c | 3 +++
3 files changed, 7 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index 129c81a..b8f4844 100644
--- a/migration/migration.c
+++ b/migration
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 8
1 file changed, 8 insertions(+)
diff --git a/migration/multifd.c b/migration/multifd.c
index 4820702..5d34950 100644
--- a/migration/multifd.c
+++ b/migration/multifd.c
@@ -583,6 +583,10 @@ void
All data is sent by multifd Channels, so we only register its for
multifd channels and main channel don't register its.
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/rdma.c | 8
1 file changed, 8 insertions(+)
diff --git a/migration/rdma.c b/migration/r
Add the 'qemu_rdma_registration' function, multifd send threads
call it to register memory.
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/rdma.c | 51 +++
1 file changed, 51 insertions(+)
diff --git a/migratio
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 6 ++
migration/multifd.h | 1 +
migration/rdma.c| 16 +++-
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index 1186246..4031648 100644
--- a/migration/multifd.c
Create multifd_setup_ops for TxRx thread, no logic change.
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 44 +++-
migration/multifd.h | 7 +++
2 files changed, 46 insertions(+), 5 deletions(-)
diff --git a/migration/multifd.c b/migration
MultiFDSendParams and MultiFDRecvParams is need for rdma, export it
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 26 ++
migration/multifd.h | 2 ++
2 files changed, 28 insertions(+)
diff --git a/migration/multifd.c b/migration
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 4 ++--
migration/multifd.h | 2 ++
migration/rdma.c| 57 +
3 files changed, 61 insertions(+), 2 deletions(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index ae0b7f0
es
export multifd_rdma_ops instead of a function
fix minior codestyle issues
v2 -> v3:
create multifd ops for both tcp and rdma
do not export rdma to avoid multifd code in mess
fix build issue for non-rdma
fix some codestyle and buggy code
Chuan Zheng (18):
migrati
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 6 +
migration/multifd.h | 5
migration/rdma.c| 71 +
3 files changed, 82 insertions(+)
diff --git a/migration/multifd.c b/migration/multifd.c
index cb1fc01..4820702 100644
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
---
migration/migration.c | 9 +
migration/migration.h | 1 +
2 files changed, 10 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index 1986cb8..447dfb9 100644
--- a
this bug is fixed by commit(a1af605bd5ade1a6dd571f553a6746b97f3d6869),
close the issue as fixed
** Changed in: qemu
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net
When creating new tls client, the tioc->master will be referenced which results
in socket
leaking after multifd_save_cleanup if we cancel migration.
Fix it by do object_unref() after tls client creation.
Suggested-by: Daniel P. Berrangé
Signed-off-by: Chuan Zheng
---
migration/multifd.c
When creating new tls client, the tioc->master will be referenced, we need
dereferenced
it after tls handshake.
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index 68b1
When creating new tls client, the tioc->master will be referred, we need unrefer
it after tls handshake.
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index 68b171f..df76
this commit is sent and may fix this issue, waiting for review.
https://www.mail-archive.com/qemu-devel@nongnu.org/msg758017.html
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1902470
Title:
migrat
** Changed in: qemu
Status: Confirmed => In Progress
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1902470
Title:
migration with TLS-MultiFD is stuck when the dst-libvirtd service
restarts
Since we now support tls multifd, when we cancel migration, the TLS
sockets will be left as CLOSE-WAIT On Src which results in socket
leak.
Fix it by closing TLS channel before socket finalize.
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 14 ++
1 file changed, 14 insertions
Since we now support tls multifd, when we cancel migration, the TLS
sockets will be left as CLOSE-WAIT On Src which results in socket
leak.
Fix it by closing TLS channel before socket finalize.
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 14 ++
1 file changed, 14 insertions
...
...
...
recvmsg (Blocking I/O waiting for response)
recvmsg (Blocking I/O waiting for response)
Fix this by offloadinig handshake work to a background thread.
Reported-by: Yan Jin
Suggested-by: Daniel P. Berrangé
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 23
** Changed in: qemu
Status: New => Confirmed
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1902470
Title:
migration with TLS-MultiFD is stuck when the dst-libvirtd service
restarts
Status
Remove redundant blank line which is left by Commit 662770af7c6e8c,
also take this opportunity to remove redundant includes in dirtyrate.c.
Signed-off-by: Chuan Zheng
---
migration/dirtyrate.c | 5 -
1 file changed, 5 deletions(-)
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
Traverse all migratable ramblocks, calculate sha256 for memory consistency check
Signed-off-by: Chuan Zheng
---
migration/ram.c | 73 +
migration/ram.h | 7 ++
2 files changed, 80 insertions(+)
diff --git a/migration/ram.c b
Signed-off-by: Chuan Zheng
---
migration/ram.c | 16
1 file changed, 16 insertions(+)
diff --git a/migration/ram.c b/migration/ram.c
index 433489d..aa39908 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -166,6 +166,22 @@ bool ramblock_is_ignored(RAMBlock *block
Signed-off-by: Chuan Zheng
---
migration/migration.c | 2 ++
migration/savevm.c| 2 ++
2 files changed, 4 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index f4434c4..fe2bb3a 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1678,7 +1678,9
:
b3e0b1026cd4df920884f7d090b90cfb64b4a3ab407feeb632300aabd9fb28fe
CheckPoint: qemu_loadvm_state, Ramblock: /rom@etc/acpi/rsdp, CheckValue:
7af8a2bc8c5f78db788a47ed60b30bffee50f28783529ee55224f9e3613cc28a
Not for sure if it is valuable, any discussion and comment is welcome.
Chuan Zheng (4):
migration
Signed-off-by: Chuan Zheng
---
migration/migration.c | 1 +
migration/savevm.c| 7 +++
2 files changed, 8 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index 0575ecb..f4434c4 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1678,6 +1678,7
Multifd RDMA is need to poll when we send data, record it.
Signed-off-by: Chuan Zheng
---
migration/migration.c | 1 +
migration/migration.h | 1 +
migration/rdma.c | 14 ++
3 files changed, 16 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 6 ++
migration/multifd.h | 1 +
migration/rdma.c| 16 +++-
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index c4d90ef..f548122 100644
--- a/migration/multifd.c
Create multifd_setup_ops for TxRx thread, no logic change.
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 44 +++-
migration/multifd.h | 7 +++
2 files changed, 46 insertions(+), 5 deletions(-)
diff --git a/migration/multifd.c b/migration
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 8
1 file changed, 8 insertions(+)
diff --git a/migration/multifd.c b/migration/multifd.c
index 0d494df..8ccfd46 100644
--- a/migration/multifd.c
+++ b/migration/multifd.c
@@ -580,6 +580,10 @@ void
Signed-off-by: Chuan Zheng
---
migration/migration.c | 1 +
migration/migration.h | 3 +++
migration/rdma.c | 3 +++
3 files changed, 7 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index be6166a..7061410 100644
--- a/migration/migration.c
+++ b/migration
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 4 ++--
migration/multifd.h | 2 ++
migration/rdma.c| 56 +
3 files changed, 60 insertions(+), 2 deletions(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index 03f3a1e
Add the 'qemu_rdma_registration' function, multifd send threads
call it to register memory.
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/rdma.c | 51 +++
1 file changed, 51 insertions(+)
diff --git a/migratio
Add enabled_rdma_migration into MigrationState to judge
whether or not the RDMA is used for migration.
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/migration.c | 13 +
migration/migration.h | 6 ++
2 files changed, 19 insertions(+)
diff --git a
We still don't transmit anything through them, and we only build
the RDMA connections.
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/rdma.c | 70 ++--
1 file changed, 68 insertions(+), 2 deletions(-)
diff --
Signed-off-by: Chuan Zheng
---
migration/rdma.c | 52
1 file changed, 52 insertions(+)
diff --git a/migration/rdma.c b/migration/rdma.c
index ad4e4ba..2baa933 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -4010,6 +4010,48 @@ static
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/rdma.c | 67 +++-
1 file changed, 62 insertions(+), 5 deletions(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index 327f80f..519fa7a 100644
--- a/migration/rdma.c
+++ b
both tcp and rdma
do not export rdma to avoid multifd code in mess
fix build issue for non-rdma
fix some codestyle and buggy code
Chuan Zheng (18):
migration/rdma: add the 'migrate_use_rdma_pin_all' function
migration/rdma: judge whether or not the RDMA is used for migrat
All data is sent by multifd Channels, so we only register its for
multifd channels and main channel don't register its.
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/rdma.c | 8
1 file changed, 8 insertions(+)
diff --git a/migration/rdma.c b/migration/r
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/qemu-file.c | 5 +
migration/qemu-file.h | 1 +
2 files changed, 6 insertions(+)
diff --git a/migration/qemu-file.c b/migration/qemu-file.c
index be21518..37f6201 100644
--- a/migration/qemu-file.c
+++ b/migration/qemu
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 3 ++
migration/rdma.c| 94 +++--
2 files changed, 95 insertions(+), 2 deletions(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index 9439b3c..c4d90ef
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/migration.c | 9 +
migration/migration.h | 1 +
2 files changed, 10 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index 0575ecb..64ae417 100644
--- a/migration/migration.c
+++ b/migration
MultiFDSendParams and MultiFDRecvParams is need for rdma, export it
Signed-off-by: Zhimin Feng
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 26 ++
migration/multifd.h | 2 ++
2 files changed, 28 insertions(+)
diff --git a/migration/multifd.c b/migration
Signed-off-by: Chuan Zheng
---
migration/multifd.c | 6
migration/multifd.h | 4 +++
migration/rdma.c| 82 +
3 files changed, 92 insertions(+)
diff --git a/migration/multifd.c b/migration/multifd.c
index 1f82307..0d494df 100644
Note we do want to export any rdma struct, take void * instead.
Signed-off-by: Chuan Zheng
---
migration/multifd.h | 8
1 file changed, 8 insertions(+)
diff --git a/migration/multifd.h b/migration/multifd.h
index 2f4e585..ff80bd5 100644
--- a/migration/multifd.h
+++ b/migration
This series include two optimizations showing of dirtyrate against v1
1) show start_time and calc_time when query while at the measuring state
2) do not show dirtyrate when measuring is not finished
Chuan Zheng (2):
migration/dirtyrate: record start_time and calc_time while at the
measuring
suring:
{"return":{"status":"measuring","start-time":102931,"calc-time":1},"id":"libvirt-85"}
@measured:
{"return":{"status":"measured","dirty-rate":4,"start-time":150146,"calc
Querying could include both the start-time and the calc-time while at the
measuring
state, allowing a caller to determine when they should expect to come back
looking
for a result.
Signed-off-by: Chuan Zheng
---
migration/dirtyrate.c | 13 +
1 file changed, 9 insertions(+), 4
easuring:
{"return":{"status":"measuring","start-time":0,"calc-time":0},"id":"libvirt-14"}
@measured:
{"return":{"status":"measured","dirty-rate":4,"start-time":150146,"ca
{"return":{"status":"measured","dirty-rate":374,"start-time":3718293,"calc-time":1},"id":"libvirt-15"}
Further test dirtyrate by libvirt api like this:
virsh getdirtyrate [vmname] [sleep-time]
Chuan Zheng (12):
migration/dir
In order to sample real RAM, skip ramblock with size below MIN_RAMBLOCK_SIZE
which is set as 128M.
Signed-off-by: Chuan Zheng
Reviewed-by: David Edmondson
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: Li Qiang
---
migration/dirtyrate.c | 21 +
migration/dirtyrate.h
Compare page hash results for recorded sampled page.
Signed-off-by: Chuan Zheng
Signed-off-by: YanYing Zhuang
Reviewed-by: Dr. David Alan Gilbert
---
migration/dirtyrate.c | 63 +++
1 file changed, 63 insertions(+)
diff --git a/migration
Record hash results for each sampled page, crc32 is taken to calculate
hash results for each sampled length in TARGET_PAGE_SIZE.
Signed-off-by: Chuan Zheng
Signed-off-by: YanYing Zhuang
Reviewed-by: David Edmondson
Reviewed-by: Li Qiang
---
migration/dirtyrate.c | 109
Implement qmp_cal_dirty_rate()/qmp_get_dirty_rate() function which could be
called
Signed-off-by: Chuan Zheng
---
migration/dirtyrate.c | 62 +++
qapi/migration.json | 50 +
2 files changed, 112
Add get_dirtyrate_thread() functions to setup query-dirtyrate
framework.
Signed-off-by: Chuan Zheng
Signed-off-by: YanYing Zhuang
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
Reviewed-by: Li Qiang
---
migration/dirtyrate.c | 38
Implement calculate_dirtyrate() function.
Signed-off-by: Chuan Zheng
Signed-off-by: YanYing Zhuang
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: Li Qiang
---
migration/dirtyrate.c | 45 +++--
1 file changed, 43 insertions(+), 2 deletions(-)
diff
Add dirtyrate statistics functions to record/update dirtyrate info.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: Li Qiang
---
migration/dirtyrate.c | 32
migration/dirtyrate.h | 12
2 files changed, 44 insertions
add DirtyRateStatus to denote calculating status.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: Li Qiang
---
migration/dirtyrate.c | 26 ++
qapi/migration.json | 17 +
2 files changed, 43 insertions(+)
diff --git a
Implement is_sample_period_valid() to check if the sample period is vaild and
do set_sample_page_period() to sleep specific time between sample actions.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
Reviewed-by: Li Qiang
---
migration/dirtyrate.c
Add trace_calls to make it easier to debug
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
---
migration/dirtyrate.c | 9 +
migration/trace-events | 8
2 files changed, 17 insertions(+)
diff --git a/migration/dirtyrate.c b
RAMBLOCK_FOREACH_MIGRATABLE is need in dirtyrate measure,
move the existing definition up into migration/ram.h
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
Reviewed-by: Li Qiang
---
migration/dirtyrate.c | 1 +
migration/ram.c | 11
Add RamblockDirtyInfo to store sampled page info of each ramblock.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
Reviewed-by: Li Qiang
---
migration/dirtyrate.h | 18 ++
1 file changed, 18 insertions(+)
diff --git a/migration
multifd channel cleanup is need if multifd handshake failed,
let's extract it.
Signed-off-by: Chuan Zheng
Signed-off-by: Yan Jin
Reviewed-by: Daniel P. Berrangé
---
migration/multifd.c | 34 ++
1 file changed, 22 insertions(+), 12 deletions(-)
diff --
| 15.067s
|
| mempress 1024 200| 48.798s | 25.334s
|
++++++++
Chuan Zheng (6):
migration/tls: save hostname into Migrati
Similar like migration main thread, we need to do handshake
for each multifd thread.
Signed-off-by: Chuan Zheng
Signed-off-by: Yan Jin
Reviewed-by: Daniel P. Berrangé
---
migration/multifd.c | 77 +++--
1 file changed, 75 insertions(+), 2
Since multifd creation is async with migration_channel_connect, we should
pass the hostname from MigrationState to MultiFDSendParams.
Signed-off-by: Chuan Zheng
Signed-off-by: Yan Jin
---
migration/multifd.c | 5 +
migration/multifd.h | 2 ++
2 files changed, 7 insertions(+)
diff --git a
add trace points for multifd-tls for debug.
Signed-off-by: Chuan Zheng
Signed-off-by: Yan Jin
Reviewed-by: Daniel P. Berrangé
---
migration/multifd.c| 10 +-
migration/trace-events | 4
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/migration/multifd.c b
hostname is need in multifd-tls, save hostname into MigrationState.
Signed-off-by: Chuan Zheng
Signed-off-by: Yan Jin
---
migration/channel.c | 1 +
migration/migration.c | 1 +
migration/migration.h | 5 +
migration/tls.c | 2 ++
4 files changed, 9 insertions(+)
diff --git a
migration_tls_client_create will be used in multifd-tls, let's
extract it.
Signed-off-by: Chuan Zheng
Signed-off-by: Yan Jin
Reviewed-by: Daniel P. Berrangé
---
migration/tls.c | 26 ++
migration/tls.h | 6 ++
2 files changed, 24 insertions(+), 8 dele
RAMBLOCK_FOREACH_MIGRATABLE is need in dirtyrate measure,
move the existing definition up into migration/ram.h
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
---
migration/dirtyrate.c | 1 +
migration/ram.c | 11 +--
migration/ram.h
Add trace_calls to make it easier to debug
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
---
migration/dirtyrate.c | 9 +
migration/trace-events | 8
2 files changed, 17 insertions(+)
diff --git a/migration/dirtyrate.c b
In order to sample real RAM, skip ramblock with size below MIN_RAMBLOCK_SIZE
which is set as 128M.
Signed-off-by: Chuan Zheng
Reviewed-by: David Edmondson
Reviewed-by: Dr. David Alan Gilbert
---
migration/dirtyrate.c | 21 +
migration/dirtyrate.h | 5 +
2 files
Implement qmp_cal_dirty_rate()/qmp_get_dirty_rate() function which could be
called
Signed-off-by: Chuan Zheng
---
migration/dirtyrate.c | 62 +++
qapi/migration.json | 50 +
2 files changed, 112
Add dirtyrate statistics functions to record/update dirtyrate info.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
---
migration/dirtyrate.c | 32
migration/dirtyrate.h | 12
2 files changed, 44 insertions(+)
diff --git a/migration
Compare page hash results for recorded sampled page.
Signed-off-by: Chuan Zheng
Signed-off-by: YanYing Zhuang
Reviewed-by: Dr. David Alan Gilbert
---
migration/dirtyrate.c | 63 +++
1 file changed, 63 insertions(+)
diff --git a/migration
Implement is_sample_period_valid() to check if the sample period is vaild and
do set_sample_page_period() to sleep specific time between sample actions.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
---
migration/dirtyrate.c | 24
Record hash results for each sampled page, crc32 is taken to calculate
hash results for each sampled length in TARGET_PAGE_SIZE.
Signed-off-by: Chuan Zheng
Signed-off-by: YanYing Zhuang
Reviewed-by: David Edmondson
---
migration/dirtyrate.c | 109
add DirtyRateStatus to denote calculating status.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
---
migration/dirtyrate.c | 26 ++
qapi/migration.json | 17 +
2 files changed, 43 insertions(+)
diff --git a/migration/dirtyrate.c b
Add get_dirtyrate_thread() functions to setup query-dirtyrate
framework.
Signed-off-by: Chuan Zheng
Signed-off-by: YanYing Zhuang
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
---
migration/dirtyrate.c | 38 ++
migration/dirtyrate.h | 29
Implement calculate_dirtyrate() function.
Signed-off-by: Chuan Zheng
Signed-off-by: YanYing Zhuang
Reviewed-by: Dr. David Alan Gilbert
---
migration/dirtyrate.c | 45 +++--
1 file changed, 43 insertions(+), 2 deletions(-)
diff --git a/migration
me
3. virsh qemu-monitor-command [vmname] '{"execute":"query-dirty-rate"}'
The qmp command returns like this:
{"return":{"status":"measured","dirty-rate":374,"start-time":3718293,"calc-time":1},"id&qu
Add RamblockDirtyInfo to store sampled page info of each ramblock.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
---
migration/dirtyrate.h | 18 ++
1 file changed, 18 insertions(+)
diff --git a/migration/dirtyrate.h b/migration
Add trace_calls to make it easier to debug
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
---
migration/dirtyrate.c | 9 +
migration/trace-events | 8
2 files changed, 17 insertions(+)
diff --git a/migration/dirtyrate.c b
In order to sample real RAM, skip ramblock with size below MIN_RAMBLOCK_SIZE
which is set as 128M.
Signed-off-by: Chuan Zheng
Reviewed-by: David Edmondson
Reviewed-by: Dr. David Alan Gilbert
---
migration/dirtyrate.c | 21 +
migration/dirtyrate.h | 5 +
2 files
Implement qmp_cal_dirty_rate()/qmp_get_dirty_rate() function which could be
called
Signed-off-by: Chuan Zheng
---
migration/dirtyrate.c | 62 +++
qapi/migration.json | 50 +
2 files changed, 112
Record hash results for each sampled page, crc32 is taken to calculate
hash results for each sampled length in TARGET_PAGE_SIZE.
Signed-off-by: Chuan Zheng
Signed-off-by: YanYing Zhuang
Reviewed-by: David Edmondson
---
migration/dirtyrate.c | 111
Add dirtyrate statistics functions to record/update dirtyrate info.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
---
migration/dirtyrate.c | 32
migration/dirtyrate.h | 12
2 files changed, 44 insertions(+)
diff --git a/migration
easured","dirty-rate":374,"start-time":3718293,"calc-time":1},"id":"libvirt-15"}
Further test dirtyrate by libvirt api like this:
virsh getdirtyrate [vmname] [sleep-time]
Chuan Zheng (12):
migration/dirtyrate: setup up query-dirtyrate framwork
migra
Implement is_sample_period_valid() to check if the sample period is vaild and
do set_sample_page_period() to sleep specific time between sample actions.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
Reviewed-by: David Edmondson
---
migration/dirtyrate.c | 24
Compare page hash results for recorded sampled page.
Signed-off-by: Chuan Zheng
Signed-off-by: YanYing Zhuang
Reviewed-by: Dr. David Alan Gilbert
---
migration/dirtyrate.c | 63 +++
1 file changed, 63 insertions(+)
diff --git a/migration
add DirtyRateStatus to denote calculating status.
Signed-off-by: Chuan Zheng
Reviewed-by: Dr. David Alan Gilbert
---
migration/dirtyrate.c | 26 ++
qapi/migration.json | 17 +
2 files changed, 43 insertions(+)
diff --git a/migration/dirtyrate.c b
1 - 100 of 234 matches
Mail list logo