[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] do not call monitor_resume() from migrate_fd_pu
From: |
Marcelo Tosatti |
Subject: |
Re: [Qemu-devel] [PATCH] do not call monitor_resume() from migrate_fd_put_buffer() error path |
Date: |
Wed, 20 Jul 2011 13:34:50 -0300 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Jul 19, 2011 at 11:48:22PM +0200, Jan Kiszka wrote:
> On 2011-07-19 13:46, Michael Tokarev wrote:
> > If we do, it results in double monitor_resume() (second being called
> > from migrate_fd_cleanup() anyway) and monitor suspend count becoming
> > negative.
> >
> > Cc'ing people from `git blame' list for the lines in question: the
> > change fixes the problem but I'm not sure what the original intention
> > of this code was in this place. Unfortunately noone replied to two
> > my attempts to raise this issue.
> >
> > Signed-Off-By: Michael Tokarev <address@hidden>
> > ---
> > migration.c | 3 ---
> > 1 files changed, 0 insertions(+), 3 deletions(-)
> >
> > diff --git a/migration.c b/migration.c
> > index af3a1f2..115588c 100644
> > --- a/migration.c
> > +++ b/migration.c
> > @@ -330,9 +330,6 @@ ssize_t migrate_fd_put_buffer(void *opaque, const void
> > *data, size_t size)
> > if (ret == -EAGAIN) {
> > qemu_set_fd_handler2(s->fd, NULL, NULL, migrate_fd_put_notify, s);
> > } else if (ret < 0) {
> > - if (s->mon) {
> > - monitor_resume(s->mon);
> > - }
> > s->state = MIG_STATE_ERROR;
> > notifier_list_notify(&migration_state_notifiers);
> > }
>
> Looks reasonable to me, but Marcelo should comment on this, specifically
> which scenario once required the resume.
>
> Jan
If the monitor was suspended (migrate without -d), then this path must
resume. Should record that somewhere and check here.