* [Qemu-devel] [PULL 0/8] migration queue
@ 2014-02-04 15:19 Juan Quintela
2014-02-04 15:54 ` Juan Quintela
0 siblings, 1 reply; 12+ messages in thread
From: Juan Quintela @ 2014-02-04 15:19 UTC (permalink / raw)
To: qemu-devel; +Cc: anthony
Hi
This includes:
- Peter changes to make VMSTATE_STRUCT_POINTER more consistent
- Fix migration with hpratio (ppc on ppc64 basically)
- Orit/Arei cleanups/fixes to xbzrle
Thanks, please apply.
The following changes since commit 8cfc114a2f293c40077d1bdb7500b29db359ca22:
linux-user: Fix trampoline code for CRIS (2014-02-03 14:04:00 +0000)
are available in the git repository at:
git://github.com/juanquintela/qemu.git tags/migration/20140204
for you to fetch changes up to 2c429c2e4540ff74f2396b41e34371bd97c9337f:
exec: fix ram_list dirty map optimization (2014-02-04 15:52:31 +0100)
----------------------------------------------------------------
migration/next for 20140204
----------------------------------------------------------------
Alexey Kardashevskiy (1):
exec: fix ram_list dirty map optimization
Gonglei (Arei) (1):
migration:fix free XBZRLE decoded_buf wrong
Orit Wasserman (5):
Set xbzrle buffers to NULL after freeing them to avoid double free errors
Add check for cache size smaller than page size
XBZRLE cache size should not be larger than guest memory size
Don't abort on out of memory when creating page cache
Don't abort on memory allocation error
Peter Maydell (1):
vmstate: Make VMSTATE_STRUCT_POINTER take type, not ptr-to-type
arch_init.c | 47 +++++++++++++++++++++++++++++++-----------
hw/arm/pxa2xx.c | 2 +-
include/exec/ram_addr.h | 3 ++-
include/hw/ptimer.h | 10 ++-------
include/migration/migration.h | 1 +
include/migration/page_cache.h | 4 +++-
include/migration/vmstate.h | 8 +++----
migration.c | 18 +++++++++++++++-
page_cache.c | 34 ++++++++++++++++++++++--------
9 files changed, 90 insertions(+), 37 deletions(-)
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] migration queue
2014-02-04 15:19 Juan Quintela
@ 2014-02-04 15:54 ` Juan Quintela
0 siblings, 0 replies; 12+ messages in thread
From: Juan Quintela @ 2014-02-04 15:54 UTC (permalink / raw)
To: qemu-devel; +Cc: anthony
Juan Quintela <quintela@redhat.com> wrote:
> Hi
>
> This includes:
> - Peter changes to make VMSTATE_STRUCT_POINTER more consistent
> - Fix migration with hpratio (ppc on ppc64 basically)
> - Orit/Arei cleanups/fixes to xbzrle
>
> Thanks, please apply.
NACK myself. It has the wrong patch series from Orit.
Sorry, and resending a new one.
Later, Juan.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Qemu-devel] [PULL 0/8] migration queue
@ 2017-09-06 18:41 Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 1/8] migration: Report when bdrv_inactivate_all fails Dr. David Alan Gilbert (git)
` (8 more replies)
0 siblings, 9 replies; 12+ messages in thread
From: Dr. David Alan Gilbert (git) @ 2017-09-06 18:41 UTC (permalink / raw)
To: qemu-devel; +Cc: quintela, peterx, armbru, kwolf
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
The following changes since commit b07d1c2f5607489d4d4a6a65ce36a3e896ac065e:
Revert "kvm: use DIV_ROUND_UP" (2017-09-05 18:55:40 +0100)
are available in the git repository at:
git://github.com/dagrh/qemu.git tags/pull-migration-20170906a
for you to fetch changes up to a31fedeed764ce0b0d6097d4334c5770e74641a0:
migration: dump str in migrate_set_state trace (2017-09-06 16:36:38 +0100)
----------------------------------------------------------------
migration pull 2017-09-06
----------------------------------------------------------------
Dr. David Alan Gilbert (4):
migration: Report when bdrv_inactivate_all fails
runstate/migrate: Two more transitions
migration: Reset rather than destroy main_thread_load_event
snapshot/tests: Try loadvm twice
Markus Armbruster (3):
xbzrle: Drop unused cache_resize()
host-utils: Proactively fix pow2floor(), switch to unsigned
host-utils: Simplify pow2ceil()
Peter Xu (1):
migration: dump str in migrate_set_state trace
include/qemu/host-utils.h | 36 +++++++++++++++++------------
migration/migration.c | 5 +++--
migration/page_cache.c | 56 ----------------------------------------------
migration/page_cache.h | 11 ---------
migration/savevm.c | 2 ++
migration/trace-events | 2 +-
tests/qemu-iotests/068 | 2 +-
tests/qemu-iotests/068.out | 4 ++++
vl.c | 2 ++
9 files changed, 35 insertions(+), 85 deletions(-)
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Qemu-devel] [PULL 1/8] migration: Report when bdrv_inactivate_all fails
2017-09-06 18:41 [Qemu-devel] [PULL 0/8] migration queue Dr. David Alan Gilbert (git)
@ 2017-09-06 18:41 ` Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 2/8] xbzrle: Drop unused cache_resize() Dr. David Alan Gilbert (git)
` (7 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Dr. David Alan Gilbert (git) @ 2017-09-06 18:41 UTC (permalink / raw)
To: qemu-devel; +Cc: quintela, peterx, armbru, kwolf
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
If the bdrv_inactivate_all fails near the end of the migration,
the migration will fail and often the only diagnostics in the log
are an I/O error which you can't distinguish from an error on
the socket connection.
Add an error so we know when it's actually a block problem.
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20170822170212.27347-1-dgilbert@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
migration/savevm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/migration/savevm.c b/migration/savevm.c
index fdd15fa0a7..7a55023d1a 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1157,6 +1157,8 @@ int qemu_savevm_state_complete_precopy(QEMUFile *f, bool iterable_only,
* bdrv_invalidate_cache_all() on the other end won't fail. */
ret = bdrv_inactivate_all();
if (ret) {
+ error_report("%s: bdrv_inactivate_all() failed (%d)",
+ __func__, ret);
qemu_file_set_error(f, ret);
return ret;
}
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PULL 2/8] xbzrle: Drop unused cache_resize()
2017-09-06 18:41 [Qemu-devel] [PULL 0/8] migration queue Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 1/8] migration: Report when bdrv_inactivate_all fails Dr. David Alan Gilbert (git)
@ 2017-09-06 18:41 ` Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 3/8] host-utils: Proactively fix pow2floor(), switch to unsigned Dr. David Alan Gilbert (git)
` (6 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Dr. David Alan Gilbert (git) @ 2017-09-06 18:41 UTC (permalink / raw)
To: qemu-devel; +Cc: quintela, peterx, armbru, kwolf
From: Markus Armbruster <armbru@redhat.com>
Unused since commit fd8cec XBZRLE: Fix qemu crash when resize the
xbzrle cache.
Cc: Juan Quintela <quintela@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Amit Shah <amit.shah@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <1501148776-16890-2-git-send-email-armbru@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
migration/page_cache.c | 56 --------------------------------------------------
migration/page_cache.h | 11 ----------
2 files changed, 67 deletions(-)
diff --git a/migration/page_cache.c b/migration/page_cache.c
index 5f8578736e..ba984c4858 100644
--- a/migration/page_cache.c
+++ b/migration/page_cache.c
@@ -178,59 +178,3 @@ int cache_insert(PageCache *cache, uint64_t addr, const uint8_t *pdata,
return 0;
}
-
-int64_t cache_resize(PageCache *cache, int64_t new_num_pages)
-{
- PageCache *new_cache;
- int64_t i;
-
- CacheItem *old_it, *new_it;
-
- g_assert(cache);
-
- /* cache was not inited */
- if (cache->page_cache == NULL) {
- return -1;
- }
-
- /* same size */
- if (pow2floor(new_num_pages) == cache->max_num_items) {
- return cache->max_num_items;
- }
-
- new_cache = cache_init(new_num_pages, cache->page_size);
- if (!(new_cache)) {
- DPRINTF("Error creating new cache\n");
- return -1;
- }
-
- /* move all data from old cache */
- for (i = 0; i < cache->max_num_items; i++) {
- old_it = &cache->page_cache[i];
- if (old_it->it_addr != -1) {
- /* check for collision, if there is, keep MRU page */
- new_it = cache_get_by_addr(new_cache, old_it->it_addr);
- if (new_it->it_data && new_it->it_age >= old_it->it_age) {
- /* keep the MRU page */
- g_free(old_it->it_data);
- } else {
- if (!new_it->it_data) {
- new_cache->num_items++;
- }
- g_free(new_it->it_data);
- new_it->it_data = old_it->it_data;
- new_it->it_age = old_it->it_age;
- new_it->it_addr = old_it->it_addr;
- }
- }
- }
-
- g_free(cache->page_cache);
- cache->page_cache = new_cache->page_cache;
- cache->max_num_items = new_cache->max_num_items;
- cache->num_items = new_cache->num_items;
-
- g_free(new_cache);
-
- return cache->max_num_items;
-}
diff --git a/migration/page_cache.h b/migration/page_cache.h
index 10ed53274c..4fadd0c501 100644
--- a/migration/page_cache.h
+++ b/migration/page_cache.h
@@ -72,15 +72,4 @@ uint8_t *get_cached_data(const PageCache *cache, uint64_t addr);
int cache_insert(PageCache *cache, uint64_t addr, const uint8_t *pdata,
uint64_t current_age);
-/**
- * cache_resize: resize the page cache. In case of size reduction the extra
- * pages will be freed
- *
- * Returns -1 on error new cache size on success
- *
- * @cache pointer to the PageCache struct
- * @num_pages: new page cache size (in pages)
- */
-int64_t cache_resize(PageCache *cache, int64_t num_pages);
-
#endif
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PULL 3/8] host-utils: Proactively fix pow2floor(), switch to unsigned
2017-09-06 18:41 [Qemu-devel] [PULL 0/8] migration queue Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 1/8] migration: Report when bdrv_inactivate_all fails Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 2/8] xbzrle: Drop unused cache_resize() Dr. David Alan Gilbert (git)
@ 2017-09-06 18:41 ` Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 4/8] host-utils: Simplify pow2ceil() Dr. David Alan Gilbert (git)
` (5 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Dr. David Alan Gilbert (git) @ 2017-09-06 18:41 UTC (permalink / raw)
To: qemu-devel; +Cc: quintela, peterx, armbru, kwolf
From: Markus Armbruster <armbru@redhat.com>
The function's stated contract is simple enough: "round down to the
nearest power of 2". Suggests the domain is the representable numbers
>= 1, because that's the smallest power of two.
The implementation doesn't check for domain errors, but returns
garbage instead:
* For negative arguments, pow2floor() returns -2^63, which is not even
a power of two, let alone the nearest one.
What sort of works is passing *unsigned* arguments >= 2^63. The
implicit conversion to signed is implementation defined, but
commonly yields the (negative) two's complement. pow2floor() then
returns -2^63. Callers that convert that back to unsigned get the
correct value 2^63.
* For a zero argument, pow2floor() shifts right by 64. Undefined
behavior. Common actual behavior is to shift by 0, yielding -2^63.
Fix by switching from int64_t to uint64_t and amending the contract to
map zero to zero.
Callers are fine with that:
* memory_access_size()
This function makes no sense unless the argument is positive and the
return value fits into int.
* raw_refresh_limits()
Passes an int between 1 and BDRV_REQUEST_MAX_BYTES.
* iscsi_refresh_limits()
Passes an integer between 0 and INT_MAX, converts the result to
uint32_t. Passing zero would be undefined behavior, but commonly
yield zero. The patch gives us the zero without the undefined
behavior.
* cache_init()
Passes a positive int64_t argument.
* xbzrle_cache_resize()
Passes a positive int64_t argument (>= TARGET_PAGE_SIZE, actually).
* spapr_node0_size()
Passes a positive uint64_t argument, and converts the result to
hwaddr, i.e. uint64_t.
* spapr_populate_memory()
Passes a positive hwaddr argument, and converts the result to
hwaddr.
Cc: Juan Quintela <quintela@redhat.com>
Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <1501148776-16890-3-git-send-email-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
include/qemu/host-utils.h | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
index 95cf4f4163..6c6005f5cf 100644
--- a/include/qemu/host-utils.h
+++ b/include/qemu/host-utils.h
@@ -369,13 +369,16 @@ static inline bool is_power_of_2(uint64_t value)
return !(value & (value - 1));
}
-/* round down to the nearest power of 2*/
-static inline int64_t pow2floor(int64_t value)
+/**
+ * Return @value rounded down to the nearest power of two or zero.
+ */
+static inline uint64_t pow2floor(uint64_t value)
{
- if (!is_power_of_2(value)) {
- value = 0x8000000000000000ULL >> clz64(value);
+ if (!value) {
+ /* Avoid undefined shift by 64 */
+ return 0;
}
- return value;
+ return 0x8000000000000000ull >> clz64(value);
}
/* round up to the nearest power of 2 (0 if overflow) */
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PULL 4/8] host-utils: Simplify pow2ceil()
2017-09-06 18:41 [Qemu-devel] [PULL 0/8] migration queue Dr. David Alan Gilbert (git)
` (2 preceding siblings ...)
2017-09-06 18:41 ` [Qemu-devel] [PULL 3/8] host-utils: Proactively fix pow2floor(), switch to unsigned Dr. David Alan Gilbert (git)
@ 2017-09-06 18:41 ` Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 5/8] runstate/migrate: Two more transitions Dr. David Alan Gilbert (git)
` (4 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Dr. David Alan Gilbert (git) @ 2017-09-06 18:41 UTC (permalink / raw)
To: qemu-devel; +Cc: quintela, peterx, armbru, kwolf
From: Markus Armbruster <armbru@redhat.com>
Cc: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <1501148776-16890-4-git-send-email-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
include/qemu/host-utils.h | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
index 6c6005f5cf..5ac621cf1f 100644
--- a/include/qemu/host-utils.h
+++ b/include/qemu/host-utils.h
@@ -381,18 +381,23 @@ static inline uint64_t pow2floor(uint64_t value)
return 0x8000000000000000ull >> clz64(value);
}
-/* round up to the nearest power of 2 (0 if overflow) */
+/*
+ * Return @value rounded up to the nearest power of two modulo 2^64.
+ * This is *zero* for @value > 2^63, so be careful.
+ */
static inline uint64_t pow2ceil(uint64_t value)
{
- uint8_t nlz = clz64(value);
-
- if (is_power_of_2(value)) {
- return value;
- }
- if (!nlz) {
- return 0;
+ int n = clz64(value - 1);
+
+ if (!n) {
+ /*
+ * @value - 1 has no leading zeroes, thus @value - 1 >= 2^63
+ * Therefore, either @value == 0 or @value > 2^63.
+ * If it's 0, return 1, else return 0.
+ */
+ return !value;
}
- return 1ULL << (64 - nlz);
+ return 0x8000000000000000ull >> (n - 1);
}
/**
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PULL 5/8] runstate/migrate: Two more transitions
2017-09-06 18:41 [Qemu-devel] [PULL 0/8] migration queue Dr. David Alan Gilbert (git)
` (3 preceding siblings ...)
2017-09-06 18:41 ` [Qemu-devel] [PULL 4/8] host-utils: Simplify pow2ceil() Dr. David Alan Gilbert (git)
@ 2017-09-06 18:41 ` Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 6/8] migration: Reset rather than destroy main_thread_load_event Dr. David Alan Gilbert (git)
` (3 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Dr. David Alan Gilbert (git) @ 2017-09-06 18:41 UTC (permalink / raw)
To: qemu-devel; +Cc: quintela, peterx, armbru, kwolf
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
There's a race if someone does a 'stop' near the end of migrate;
the migration process goes through two runstates:
'finish migrate'
'postmigrate'
If the user issues a 'stop' between the two we end up with invalid
state transitions.
Add the transitions as valid.
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20170804175011.21944-1-dgilbert@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
vl.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/vl.c b/vl.c
index e75757f977..fb1f05b937 100644
--- a/vl.c
+++ b/vl.c
@@ -621,6 +621,7 @@ static const RunStateTransition runstate_transitions_def[] = {
{ RUN_STATE_PAUSED, RUN_STATE_RUNNING },
{ RUN_STATE_PAUSED, RUN_STATE_FINISH_MIGRATE },
+ { RUN_STATE_PAUSED, RUN_STATE_POSTMIGRATE },
{ RUN_STATE_PAUSED, RUN_STATE_PRELAUNCH },
{ RUN_STATE_PAUSED, RUN_STATE_COLO},
@@ -633,6 +634,7 @@ static const RunStateTransition runstate_transitions_def[] = {
{ RUN_STATE_PRELAUNCH, RUN_STATE_INMIGRATE },
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_RUNNING },
+ { RUN_STATE_FINISH_MIGRATE, RUN_STATE_PAUSED },
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_POSTMIGRATE },
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_PRELAUNCH },
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_COLO},
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PULL 6/8] migration: Reset rather than destroy main_thread_load_event
2017-09-06 18:41 [Qemu-devel] [PULL 0/8] migration queue Dr. David Alan Gilbert (git)
` (4 preceding siblings ...)
2017-09-06 18:41 ` [Qemu-devel] [PULL 5/8] runstate/migrate: Two more transitions Dr. David Alan Gilbert (git)
@ 2017-09-06 18:41 ` Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 7/8] snapshot/tests: Try loadvm twice Dr. David Alan Gilbert (git)
` (2 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Dr. David Alan Gilbert (git) @ 2017-09-06 18:41 UTC (permalink / raw)
To: qemu-devel; +Cc: quintela, peterx, armbru, kwolf
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
migration_incoming_state_destroy doesn't really destroy, it cleans up.
After a loadvm it's called, but the loadvm command can be run twice,
and so destroying an init-once mutex breaks on the second loadvm.
Reported-by: Stafford Horne <shorne@gmail.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20170825141940.20740-2-dgilbert@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Tested-by: Stafford Horne <shorne@gmail.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
migration/migration.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/migration/migration.c b/migration/migration.c
index 1a2b3ebd1a..9838ccc885 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -166,7 +166,7 @@ void migration_incoming_state_destroy(void)
mis->from_src_file = NULL;
}
- qemu_event_destroy(&mis->main_thread_load_event);
+ qemu_event_reset(&mis->main_thread_load_event);
}
static void migrate_generate_event(int new_state)
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PULL 7/8] snapshot/tests: Try loadvm twice
2017-09-06 18:41 [Qemu-devel] [PULL 0/8] migration queue Dr. David Alan Gilbert (git)
` (5 preceding siblings ...)
2017-09-06 18:41 ` [Qemu-devel] [PULL 6/8] migration: Reset rather than destroy main_thread_load_event Dr. David Alan Gilbert (git)
@ 2017-09-06 18:41 ` Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 8/8] migration: dump str in migrate_set_state trace Dr. David Alan Gilbert (git)
2017-09-07 15:38 ` [Qemu-devel] [PULL 0/8] migration queue Peter Maydell
8 siblings, 0 replies; 12+ messages in thread
From: Dr. David Alan Gilbert (git) @ 2017-09-06 18:41 UTC (permalink / raw)
To: qemu-devel; +Cc: quintela, peterx, armbru, kwolf
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
It's legal to loadvm twice, modify the existing save/loadvm test
to do it twice.
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20170825141940.20740-3-dgilbert@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
tests/qemu-iotests/068 | 2 +-
tests/qemu-iotests/068.out | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/tests/qemu-iotests/068 b/tests/qemu-iotests/068
index cfa0f2aed5..e7fca6a494 100755
--- a/tests/qemu-iotests/068
+++ b/tests/qemu-iotests/068
@@ -78,7 +78,7 @@ for extra_args in \
# Give qemu some time to boot before saving the VM state
{ sleep 1; printf "savevm 0\nquit\n"; } | _qemu $extra_args
# Now try to continue from that VM state (this should just work)
- echo quit | _qemu $extra_args -loadvm 0
+ { sleep 1; printf "loadvm 0\nloadvm 0\nquit\n"; } | _qemu $extra_args -S
done
# success, all done
diff --git a/tests/qemu-iotests/068.out b/tests/qemu-iotests/068.out
index aa063cf711..f07a938a38 100644
--- a/tests/qemu-iotests/068.out
+++ b/tests/qemu-iotests/068.out
@@ -7,6 +7,8 @@ QEMU X.Y.Z monitor - type 'help' for more information
(qemu) savevm 0
(qemu) quit
QEMU X.Y.Z monitor - type 'help' for more information
+(qemu) loadvm 0
+(qemu) loadvm 0
(qemu) quit
=== Saving and reloading a VM state to/from a qcow2 image (-object iothread,id=iothread0 -set device.hba0.iothread=iothread0) ===
@@ -16,5 +18,7 @@ QEMU X.Y.Z monitor - type 'help' for more information
(qemu) savevm 0
(qemu) quit
QEMU X.Y.Z monitor - type 'help' for more information
+(qemu) loadvm 0
+(qemu) loadvm 0
(qemu) quit
*** done
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PULL 8/8] migration: dump str in migrate_set_state trace
2017-09-06 18:41 [Qemu-devel] [PULL 0/8] migration queue Dr. David Alan Gilbert (git)
` (6 preceding siblings ...)
2017-09-06 18:41 ` [Qemu-devel] [PULL 7/8] snapshot/tests: Try loadvm twice Dr. David Alan Gilbert (git)
@ 2017-09-06 18:41 ` Dr. David Alan Gilbert (git)
2017-09-07 15:38 ` [Qemu-devel] [PULL 0/8] migration queue Peter Maydell
8 siblings, 0 replies; 12+ messages in thread
From: Dr. David Alan Gilbert (git) @ 2017-09-06 18:41 UTC (permalink / raw)
To: qemu-devel; +Cc: quintela, peterx, armbru, kwolf
From: Peter Xu <peterx@redhat.com>
Strings are more readable for debugging.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <1504081950-2528-5-git-send-email-peterx@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Fixed up merge with 977c73
---
migration/migration.c | 3 ++-
migration/trace-events | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/migration/migration.c b/migration/migration.c
index 9838ccc885..959e8ec88e 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -913,8 +913,9 @@ void qmp_migrate_start_postcopy(Error **errp)
void migrate_set_state(int *state, int old_state, int new_state)
{
+ assert(new_state < MIGRATION_STATUS__MAX);
if (atomic_cmpxchg(state, old_state, new_state) == old_state) {
- trace_migrate_set_state(new_state);
+ trace_migrate_set_state(MigrationStatus_str(new_state));
migrate_generate_event(new_state);
}
}
diff --git a/migration/trace-events b/migration/trace-events
index 7a3b5144ff..d2910a6e7b 100644
--- a/migration/trace-events
+++ b/migration/trace-events
@@ -80,7 +80,7 @@ ram_save_queue_pages(const char *rbname, size_t start, size_t len) "%s: start: 0
# migration/migration.c
await_return_path_close_on_source_close(void) ""
await_return_path_close_on_source_joining(void) ""
-migrate_set_state(int new_state) "new state %d"
+migrate_set_state(const char *new_state) "new state %s"
migrate_fd_cleanup(void) ""
migrate_fd_error(const char *error_desc) "error=%s"
migrate_fd_cancel(void) ""
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] migration queue
2017-09-06 18:41 [Qemu-devel] [PULL 0/8] migration queue Dr. David Alan Gilbert (git)
` (7 preceding siblings ...)
2017-09-06 18:41 ` [Qemu-devel] [PULL 8/8] migration: dump str in migrate_set_state trace Dr. David Alan Gilbert (git)
@ 2017-09-07 15:38 ` Peter Maydell
8 siblings, 0 replies; 12+ messages in thread
From: Peter Maydell @ 2017-09-07 15:38 UTC (permalink / raw)
To: Dr. David Alan Gilbert (git)
Cc: QEMU Developers, Kevin Wolf, Markus Armbruster, Peter Xu,
Juan Quintela
On 6 September 2017 at 19:41, Dr. David Alan Gilbert (git)
<dgilbert@redhat.com> wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>
> The following changes since commit b07d1c2f5607489d4d4a6a65ce36a3e896ac065e:
>
> Revert "kvm: use DIV_ROUND_UP" (2017-09-05 18:55:40 +0100)
>
> are available in the git repository at:
>
> git://github.com/dagrh/qemu.git tags/pull-migration-20170906a
>
> for you to fetch changes up to a31fedeed764ce0b0d6097d4334c5770e74641a0:
>
> migration: dump str in migrate_set_state trace (2017-09-06 16:36:38 +0100)
>
> ----------------------------------------------------------------
> migration pull 2017-09-06
>
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-09-07 15:39 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-06 18:41 [Qemu-devel] [PULL 0/8] migration queue Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 1/8] migration: Report when bdrv_inactivate_all fails Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 2/8] xbzrle: Drop unused cache_resize() Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 3/8] host-utils: Proactively fix pow2floor(), switch to unsigned Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 4/8] host-utils: Simplify pow2ceil() Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 5/8] runstate/migrate: Two more transitions Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 6/8] migration: Reset rather than destroy main_thread_load_event Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 7/8] snapshot/tests: Try loadvm twice Dr. David Alan Gilbert (git)
2017-09-06 18:41 ` [Qemu-devel] [PULL 8/8] migration: dump str in migrate_set_state trace Dr. David Alan Gilbert (git)
2017-09-07 15:38 ` [Qemu-devel] [PULL 0/8] migration queue Peter Maydell
-- strict thread matches above, loose matches on Subject: below --
2014-02-04 15:19 Juan Quintela
2014-02-04 15:54 ` Juan Quintela
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).