From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Sanidhya Kashyap <sanidhya.iiith@gmail.com>
Cc: qemu list <qemu-devel@nongnu.org>, Juan Quintela <quintela@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 3/8] RunState: added two new flags for bitmap dump and migration process
Date: Wed, 4 Jun 2014 11:08:20 +0100 [thread overview]
Message-ID: <20140604100819.GD2618@work-vm> (raw)
In-Reply-To: <1401863911-5947-4-git-send-email-sanidhya.iiith@gmail.com>
* Sanidhya Kashyap (sanidhya.iiith@gmail.com) wrote:
> I have added two new flags - RUN_STATE_MIGRATE and RUN_STATE_DUMP_BITMAP.
> These both flags behave same as RUN_STATE_RUNNING flag. The purpose of
> introducing these flags is to avoid running both migration and dump bitmap
> process simultaneously.
>
> I haven't added many transitions to the RUN_STATE_DUMP_BITMAP. I will try
> to include the transitions on the basis of discussions.
>
> On the other hand, I have tried to add the transitions that might occur during
> the migration process. There is a possibility that some transitions can be
> redundant (as pointed by Chen, this is not my patch problem, but I have tried
> to cover what I thought is necessary).
I find runstate to be very subtle; there are probably other things that
would need changing; e.g. I see the USB code has:
if (state == RUN_STATE_RUNNING) {
and
if (!runstate_check(RUN_STATE_RUNNING)) {
(it should probably be using runstate_is_running() )
Also virt-test tends to see the state (I don't know if libvirt etc do?)
so they may get confused.
Dave
>
> Signed-off-by: Sanidhya Kashyap <sanidhya.iiith@gmail.com>
> ---
> qapi-schema.json | 7 ++++++-
> vl.c | 29 ++++++++++++++++++++++++++++-
> 2 files changed, 34 insertions(+), 2 deletions(-)
>
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 17e5147..2918fc4 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -234,12 +234,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' ] }
>
> ##
> # @SnapshotInfo
> diff --git a/vl.c b/vl.c
> index 709d8cd..a2ffd66 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.8.3.1
>
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2014-06-04 10:08 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-04 6:38 [Qemu-devel] [PATCH v2 0/8] Obtain dirty bitmap via VM logging Sanidhya Kashyap
2014-06-04 6:38 ` [Qemu-devel] [PATCH v2 1/8] enable sharing of the function between migration and bitmap dump Sanidhya Kashyap
2014-06-04 10:07 ` Juan Quintela
2014-06-04 10:16 ` Sanidhya Kashyap
2014-06-04 11:29 ` Juan Quintela
2014-06-04 11:43 ` Sanidhya Kashyap
2014-06-04 6:38 ` [Qemu-devel] [PATCH v2 2/8] bitmap dump code via QAPI framework Sanidhya Kashyap
2014-06-04 10:12 ` Dr. David Alan Gilbert
2014-06-04 10:18 ` Juan Quintela
2014-06-04 6:38 ` [Qemu-devel] [PATCH v2 3/8] RunState: added two new flags for bitmap dump and migration process Sanidhya Kashyap
2014-06-04 10:08 ` Dr. David Alan Gilbert [this message]
2014-06-04 6:38 ` [Qemu-devel] [PATCH v2 4/8] bitmap dump process with runstates Sanidhya Kashyap
2014-06-04 6:38 ` [Qemu-devel] [PATCH v2 5/8] hmp interface for dirty bitmap dump Sanidhya Kashyap
2014-06-04 6:38 ` [Qemu-devel] [PATCH v2 6/8] cancel mechanism for an already running dump bitmap process Sanidhya Kashyap
2014-06-04 6:38 ` [Qemu-devel] [PATCH v2 7/8] set the frequency of the " Sanidhya Kashyap
2014-06-04 6:38 ` [Qemu-devel] [PATCH v2 8/8] python script for extracting bitmap from a binary file 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=20140604100819.GD2618@work-vm \
--to=dgilbert@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=sanidhya.iiith@gmail.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.