From: Paolo Bonzini <pbonzini@redhat.com>
To: Juan Quintela <quintela@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 08/14] migration: remove unfreeze logic
Date: Fri, 21 Sep 2012 16:58:37 +0200 [thread overview]
Message-ID: <505C809D.7030907@redhat.com> (raw)
In-Reply-To: <1348236500-2565-9-git-send-email-quintela@redhat.com>
Il 21/09/2012 16:08, Juan Quintela ha scritto:
> Now that we have a thread, and blocking writes, we don't need it.
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> buffered_file.c | 24 +-----------------------
> migration.c | 23 -----------------------
> migration.h | 1 -
> 3 files changed, 1 insertion(+), 47 deletions(-)
>
> diff --git a/buffered_file.c b/buffered_file.c
> index 6c3d057..2c9859b 100644
> --- a/buffered_file.c
> +++ b/buffered_file.c
> @@ -26,7 +26,6 @@ typedef struct QEMUFileBuffered
> {
> MigrationState *migration_state;
> QEMUFile *file;
> - int freeze_output;
> size_t bytes_xfer;
> size_t xfer_limit;
> uint8_t *buffer;
> @@ -70,13 +69,6 @@ static int buffered_flush(QEMUFileBuffered *s)
>
> ret = migrate_fd_put_buffer(s->migration_state, s->buffer + offset,
> s->buffer_size - offset);
> - if (ret == -EAGAIN) {
> - DPRINTF("backend not ready, freezing\n");
> - ret = 0;
> - s->freeze_output = 1;
> - break;
> - }
> -
> if (ret <= 0) {
> DPRINTF("error flushing data, %zd\n", ret);
> break;
> @@ -110,9 +102,6 @@ static int buffered_put_buffer(void *opaque, const uint8_t *buf, int64_t pos, in
> return error;
> }
>
> - DPRINTF("unfreezing output\n");
> - s->freeze_output = 0;
> -
> if (size > 0) {
> DPRINTF("buffering %d bytes\n", size - offset);
> buffered_append(s, buf, size);
> @@ -126,7 +115,7 @@ static int buffered_put_buffer(void *opaque, const uint8_t *buf, int64_t pos, in
>
> if (pos == 0 && size == 0) {
> DPRINTF("file is ready\n");
> - if (!s->freeze_output && s->bytes_xfer < s->xfer_limit) {
> + if (s->bytes_xfer < s->xfer_limit) {
> DPRINTF("notifying client\n");
> migrate_fd_put_ready(s->migration_state);
> }
> @@ -148,12 +137,6 @@ static int buffered_close(void *opaque)
> if (ret < 0) {
> break;
> }
> - if (s->freeze_output) {
> - ret = migrate_fd_wait_for_unfreeze(s->migration_state);
> - if (ret < 0) {
> - break;
> - }
> - }
> }
>
> ret2 = migrate_fd_close(s->migration_state);
> @@ -180,8 +163,6 @@ static int buffered_rate_limit(void *opaque)
> if (ret) {
> return ret;
> }
> - if (s->freeze_output)
> - return 1;
>
> if (s->bytes_xfer > s->xfer_limit)
> return 1;
> @@ -226,9 +207,6 @@ static void *buffered_file_thread(void *opaque)
> if (s->migration_state->complete) {
> break;
> }
> - if (s->freeze_output) {
> - continue;
> - }
> if (current_time >= expire_time) {
> s->bytes_xfer = 0;
> expire_time = current_time + BUFFER_DELAY;
> diff --git a/migration.c b/migration.c
> index a8b2f4a..29ee710 100644
> --- a/migration.c
> +++ b/migration.c
> @@ -367,29 +367,6 @@ static void migrate_fd_cancel(MigrationState *s)
> migrate_fd_cleanup(s);
> }
>
> -int migrate_fd_wait_for_unfreeze(MigrationState *s)
> -{
> - int ret;
> -
> - DPRINTF("wait for unfreeze\n");
> - if (s->state != MIG_STATE_ACTIVE)
> - return -EINVAL;
> -
> - do {
> - fd_set wfds;
> -
> - FD_ZERO(&wfds);
> - FD_SET(s->fd, &wfds);
> -
> - ret = select(s->fd + 1, NULL, &wfds, NULL, NULL);
> - } while (ret == -1 && (s->get_error(s)) == EINTR);
> -
> - if (ret == -1) {
> - return -s->get_error(s);
> - }
> - return 0;
> -}
> -
> int migrate_fd_close(MigrationState *s)
> {
> return s->close(s);
> diff --git a/migration.h b/migration.h
> index a63c5d5..505f792 100644
> --- a/migration.h
> +++ b/migration.h
> @@ -82,7 +82,6 @@ void migrate_fd_connect(MigrationState *s);
> ssize_t migrate_fd_put_buffer(MigrationState *s, const void *data,
> size_t size);
> void migrate_fd_put_ready(MigrationState *s);
> -int migrate_fd_wait_for_unfreeze(MigrationState *s);
> int migrate_fd_close(MigrationState *s);
>
> void add_migration_state_change_notifier(Notifier *notify);
>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
next prev parent reply other threads:[~2012-09-21 14:58 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-21 14:08 [Qemu-devel] [RFC 00/14] Migration thread Juan Quintela
2012-09-21 14:08 ` [Qemu-devel] [PATCH 01/14] split MRU ram list Juan Quintela
2012-09-21 14:38 ` Paolo Bonzini
2012-09-21 14:08 ` [Qemu-devel] [PATCH 02/14] add a version number to ram_list Juan Quintela
2012-09-21 14:42 ` Paolo Bonzini
2012-09-21 14:08 ` [Qemu-devel] [PATCH 03/14] protect the ramlist with a separate mutex Juan Quintela
2012-09-21 14:44 ` Paolo Bonzini
2012-09-21 14:08 ` [Qemu-devel] [PATCH 04/14] buffered_file: Move from using a timer to use a thread Juan Quintela
2012-09-21 15:29 ` Paolo Bonzini
2012-09-21 14:08 ` [Qemu-devel] [PATCH 05/14] migration: make qemu_fopen_ops_buffered() return void Juan Quintela
2012-09-21 14:57 ` Paolo Bonzini
2012-09-21 14:08 ` [Qemu-devel] [PATCH 06/14] migration: stop all cpus correctly Juan Quintela
2012-09-21 15:20 ` Paolo Bonzini
2012-09-21 14:08 ` [Qemu-devel] [PATCH 07/14] migration: make writes blocking Juan Quintela
2012-09-21 15:31 ` Paolo Bonzini
2012-12-14 12:40 ` Juan Quintela
2012-09-21 14:08 ` [Qemu-devel] [PATCH 08/14] migration: remove unfreeze logic Juan Quintela
2012-09-21 14:58 ` Paolo Bonzini [this message]
2012-09-21 14:08 ` [Qemu-devel] [PATCH 09/14] migration: take finer locking Juan Quintela
2012-09-21 15:33 ` Paolo Bonzini
2012-12-14 12:44 ` Juan Quintela
2012-09-21 14:08 ` [Qemu-devel] [PATCH 10/14] buffered_file: Unfold the trick to restart generating migration data Juan Quintela
2012-09-21 15:00 ` Paolo Bonzini
2012-09-21 14:08 ` [Qemu-devel] [PATCH 11/14] buffered_file: don't flush on put buffer Juan Quintela
2012-09-21 15:34 ` Paolo Bonzini
2012-09-21 21:12 ` Eric Blake
2012-09-21 14:08 ` [Qemu-devel] [PATCH 12/14] buffered_file: unfold buffered_append in buffered_put_buffer Juan Quintela
2012-09-21 17:07 ` Paolo Bonzini
2012-09-21 14:08 ` [Qemu-devel] [PATCH 13/14] savevm: New save live migration method: pending Juan Quintela
2012-09-21 15:11 ` Paolo Bonzini
2012-09-21 14:08 ` [Qemu-devel] [PATCH 14/14] migration: print times for end phase Juan Quintela
2012-09-21 15:13 ` Paolo Bonzini
2012-09-21 15:27 ` Juan Quintela
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=505C809D.7030907@redhat.com \
--to=pbonzini@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.