From: Sanidhya Kashyap <sanidhya.iiith@gmail.com>
To: qemu list <qemu-devel@nongnu.org>
Cc: Sanidhya Kashyap <sanidhya.iiith@gmail.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Juan Quintela <quintela@redhat.com>
Subject: [Qemu-devel] [PATCH v3 2/7] RunState: added two new flags for bitmap dump and migration process
Date: Thu, 12 Jun 2014 16:06:35 +0530 [thread overview]
Message-ID: <1402569400-12242-3-git-send-email-sanidhya.iiith@gmail.com> (raw)
In-Reply-To: <1402569400-12242-1-git-send-email-sanidhya.iiith@gmail.com>
Changed those files that were directly using the RUN_STATE_RUNNING flag. Now,
they have been replaced by the runstate_is_running() function.
Signed-off-by: Sanidhya Kashyap <sanidhya.iiith@gmail.com>
---
hw/usb/hcd-ehci.c | 2 +-
hw/usb/redirect.c | 6 +++---
qapi-schema.json | 7 ++++++-
vl.c | 29 ++++++++++++++++++++++++++++-
4 files changed, 38 insertions(+), 6 deletions(-)
diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
index a00a93c..5487edc 100644
--- a/hw/usb/hcd-ehci.c
+++ b/hw/usb/hcd-ehci.c
@@ -2393,7 +2393,7 @@ static void usb_ehci_vm_state_change(void *opaque, int running, RunState state)
* USB-devices which have async handled packages have a packet in the
* ep queue to match the completion with.
*/
- if (state == RUN_STATE_RUNNING) {
+ if (runstate_is_running()) {
ehci_advance_async_state(ehci);
}
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
index 4c6187b..7023afa 100644
--- a/hw/usb/redirect.c
+++ b/hw/usb/redirect.c
@@ -283,7 +283,7 @@ static int usbredir_write(void *priv, uint8_t *data, int count)
}
/* Don't send new data to the chardev until our state is fully synced */
- if (!runstate_check(RUN_STATE_RUNNING)) {
+ if (!runstate_is_running()) {
return 0;
}
@@ -1290,7 +1290,7 @@ static int usbredir_chardev_can_read(void *opaque)
}
/* Don't read new data from the chardev until our state is fully synced */
- if (!runstate_check(RUN_STATE_RUNNING)) {
+ if (!runstate_is_running()) {
return 0;
}
@@ -1340,7 +1340,7 @@ static void usbredir_vm_state_change(void *priv, int running, RunState state)
{
USBRedirDevice *dev = priv;
- if (state == RUN_STATE_RUNNING && dev->parser != NULL) {
+ if (runstate_is_running() && dev->parser != NULL) {
usbredirparser_do_write(dev->parser); /* Flush any pending writes */
}
}
diff --git a/qapi-schema.json b/qapi-schema.json
index 14b498b..f9c75f9 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -142,12 +142,17 @@
# @watchdog: the watchdog action is configured to pause and has been triggered
#
# @guest-panicked: guest has been panicked as a result of guest OS panic
+#
+# @migrate: migration process is being executed
+#
+# @dump-bitmap: dump the writable working set of the guest
+#
##
{ 'enum': 'RunState',
'data': [ 'debug', 'inmigrate', 'internal-error', 'io-error', 'paused',
'postmigrate', 'prelaunch', 'finish-migrate', 'restore-vm',
'running', 'save-vm', 'shutdown', 'suspended', 'watchdog',
- 'guest-panicked' ] }
+ 'guest-panicked', 'migrate', 'dump-bitmap' ] }
##
# @StatusInfo:
diff --git a/vl.c b/vl.c
index ac0e3d7..08a5c5c 100644
--- a/vl.c
+++ b/vl.c
@@ -576,31 +576,39 @@ static const RunStateTransition runstate_transitions_def[] = {
/* from -> to */
{ RUN_STATE_DEBUG, RUN_STATE_RUNNING },
{ RUN_STATE_DEBUG, RUN_STATE_FINISH_MIGRATE },
+ { RUN_STATE_DEBUG, RUN_STATE_MIGRATE },
{ RUN_STATE_INMIGRATE, RUN_STATE_RUNNING },
{ RUN_STATE_INMIGRATE, RUN_STATE_PAUSED },
{ RUN_STATE_INTERNAL_ERROR, RUN_STATE_PAUSED },
{ RUN_STATE_INTERNAL_ERROR, RUN_STATE_FINISH_MIGRATE },
+ { RUN_STATE_INTERNAL_ERROR, RUN_STATE_MIGRATE },
{ RUN_STATE_IO_ERROR, RUN_STATE_RUNNING },
{ RUN_STATE_IO_ERROR, RUN_STATE_FINISH_MIGRATE },
+ { RUN_STATE_IO_ERROR, RUN_STATE_MIGRATE },
{ RUN_STATE_PAUSED, RUN_STATE_RUNNING },
{ RUN_STATE_PAUSED, RUN_STATE_FINISH_MIGRATE },
+ { RUN_STATE_PAUSED, RUN_STATE_MIGRATE },
{ RUN_STATE_POSTMIGRATE, RUN_STATE_RUNNING },
{ RUN_STATE_POSTMIGRATE, RUN_STATE_FINISH_MIGRATE },
+ { RUN_STATE_POSTMIGRATE, RUN_STATE_MIGRATE },
{ RUN_STATE_PRELAUNCH, RUN_STATE_RUNNING },
{ RUN_STATE_PRELAUNCH, RUN_STATE_FINISH_MIGRATE },
{ RUN_STATE_PRELAUNCH, RUN_STATE_INMIGRATE },
+ { RUN_STATE_PRELAUNCH, RUN_STATE_MIGRATE },
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_RUNNING },
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_POSTMIGRATE },
{ RUN_STATE_RESTORE_VM, RUN_STATE_RUNNING },
+ { RUN_STATE_DUMP_BITMAP, RUN_STATE_RUNNING},
+
{ RUN_STATE_RUNNING, RUN_STATE_DEBUG },
{ RUN_STATE_RUNNING, RUN_STATE_INTERNAL_ERROR },
{ RUN_STATE_RUNNING, RUN_STATE_IO_ERROR },
@@ -611,6 +619,8 @@ static const RunStateTransition runstate_transitions_def[] = {
{ RUN_STATE_RUNNING, RUN_STATE_SHUTDOWN },
{ RUN_STATE_RUNNING, RUN_STATE_WATCHDOG },
{ RUN_STATE_RUNNING, RUN_STATE_GUEST_PANICKED },
+ { RUN_STATE_RUNNING, RUN_STATE_DUMP_BITMAP },
+ { RUN_STATE_RUNNING, RUN_STATE_MIGRATE },
{ RUN_STATE_SAVE_VM, RUN_STATE_RUNNING },
@@ -621,12 +631,27 @@ static const RunStateTransition runstate_transitions_def[] = {
{ RUN_STATE_RUNNING, RUN_STATE_SUSPENDED },
{ RUN_STATE_SUSPENDED, RUN_STATE_RUNNING },
{ RUN_STATE_SUSPENDED, RUN_STATE_FINISH_MIGRATE },
+ { RUN_STATE_SUSPENDED, RUN_STATE_MIGRATE },
{ RUN_STATE_WATCHDOG, RUN_STATE_RUNNING },
{ RUN_STATE_WATCHDOG, RUN_STATE_FINISH_MIGRATE },
+ { RUN_STATE_WATCHDOG, RUN_STATE_MIGRATE },
{ RUN_STATE_GUEST_PANICKED, RUN_STATE_RUNNING },
{ RUN_STATE_GUEST_PANICKED, RUN_STATE_FINISH_MIGRATE },
+ { RUN_STATE_GUEST_PANICKED, RUN_STATE_MIGRATE },
+
+ { RUN_STATE_DUMP_BITMAP, RUN_STATE_RUNNING },
+
+ { RUN_STATE_MIGRATE, RUN_STATE_POSTMIGRATE },
+ { RUN_STATE_MIGRATE, RUN_STATE_PAUSED },
+ { RUN_STATE_MIGRATE, RUN_STATE_SHUTDOWN },
+ { RUN_STATE_MIGRATE, RUN_STATE_GUEST_PANICKED },
+ { RUN_STATE_MIGRATE, RUN_STATE_DEBUG },
+ { RUN_STATE_MIGRATE, RUN_STATE_RUNNING },
+ { RUN_STATE_MIGRATE, RUN_STATE_INTERNAL_ERROR },
+ { RUN_STATE_MIGRATE, RUN_STATE_IO_ERROR },
+ { RUN_STATE_MIGRATE, RUN_STATE_WATCHDOG },
{ RUN_STATE_MAX, RUN_STATE_MAX },
};
@@ -666,7 +691,9 @@ void runstate_set(RunState new_state)
int runstate_is_running(void)
{
- return runstate_check(RUN_STATE_RUNNING);
+ return (runstate_check(RUN_STATE_RUNNING) ||
+ runstate_check(RUN_STATE_MIGRATE) ||
+ runstate_check(RUN_STATE_DUMP_BITMAP));
}
bool runstate_needs_reset(void)
--
1.9.3
next prev parent reply other threads:[~2014-06-12 10:38 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-12 10:36 [Qemu-devel] [PATCH v3 0/7] Obtain dirty bitmap via VM logging Sanidhya Kashyap
2014-06-12 10:36 ` [Qemu-devel] [PATCH v3 1/7] enable sharing of the function between migration and bitmap dump Sanidhya Kashyap
2014-06-12 10:36 ` Sanidhya Kashyap [this message]
2014-06-12 11:17 ` [Qemu-devel] [PATCH v3 2/7] RunState: added two new flags for bitmap dump and migration process Sanidhya Kashyap
2014-06-12 10:36 ` [Qemu-devel] [PATCH v3 3/7] bitmap dump code via QAPI framework with runstates Sanidhya Kashyap
2014-06-12 10:36 ` [Qemu-devel] [PATCH v3 4/7] hmp interface for dirty bitmap dump Sanidhya Kashyap
2014-06-12 10:36 ` [Qemu-devel] [PATCH v3 5/7] cancel mechanism for an already running dump bitmap process Sanidhya Kashyap
2014-06-12 10:36 ` [Qemu-devel] [PATCH v3 6/7] set the frequency of the " Sanidhya Kashyap
2014-06-12 10:36 ` [Qemu-devel] [PATCH v3 7/7] python script for extracting bitmap from a binary file Sanidhya Kashyap
2014-06-12 11:47 ` [Qemu-devel] [PATCH v3 3/7][RESEND PATCH] bitmap dump code via QAPI framework with runstates Sanidhya Kashyap
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1402569400-12242-3-git-send-email-sanidhya.iiith@gmail.com \
--to=sanidhya.iiith@gmail.com \
--cc=dgilbert@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.