From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:50897) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SCnDQ-00069j-1L for qemu-devel@nongnu.org; Wed, 28 Mar 2012 03:22:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SCnDO-00076V-80 for qemu-devel@nongnu.org; Wed, 28 Mar 2012 03:22:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:3816) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SCnDO-00076C-07 for qemu-devel@nongnu.org; Wed, 28 Mar 2012 03:22:42 -0400 Message-ID: <4F72BC38.1030805@redhat.com> Date: Wed, 28 Mar 2012 09:22:32 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <20120328053356.34135.42669.stgit@amd-6168-8-1.englab.nay.redhat.com> <20120328054012.34135.77090.stgit@amd-6168-8-1.englab.nay.redhat.com> In-Reply-To: <20120328054012.34135.77090.stgit@amd-6168-8-1.englab.nay.redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [V6 PATCH 1/4] net: announce self after vm start List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jason Wang Cc: aliguori@us.ibm.com, stefanha@linux.vnet.ibm.com, mst@redhat.com, rusty@rustcorp.com.au, qemu-devel@nongnu.org, quintela@redhat.com Il 28/03/2012 07:40, Jason Wang ha scritto: > qemu_announce_self() were moved to vm_start(). This is because we may > want to let guest to send the gratuitous packets. A global variable > need_announce were introduced to record the pending announcement, and > vm_start() would send gratuitous packet depends on this value. > > Signed-off-by: Jason Wang > --- > migration.c | 2 +- > migration.h | 2 ++ > vl.c | 5 +++++ > 3 files changed, 8 insertions(+), 1 deletions(-) > > diff --git a/migration.c b/migration.c > index 00fa1e3..861cce9 100644 > --- a/migration.c > +++ b/migration.c > @@ -88,7 +88,7 @@ void process_incoming_migration(QEMUFile *f) > fprintf(stderr, "load of migration failed\n"); > exit(0); > } > - qemu_announce_self(); > + need_announce = true; > DPRINTF("successfully loaded vm state\n"); > > /* Make sure all file formats flush their mutable metadata */ > diff --git a/migration.h b/migration.h > index 372b066..0a31463 100644 > --- a/migration.h > +++ b/migration.h > @@ -95,4 +95,6 @@ void migrate_add_blocker(Error *reason); > */ > void migrate_del_blocker(Error *reason); > > +extern bool need_announce; > + > #endif > diff --git a/vl.c b/vl.c > index 65f11f2..05ebf57 100644 > --- a/vl.c > +++ b/vl.c > @@ -231,6 +231,7 @@ int boot_menu; > uint8_t *boot_splash_filedata; > int boot_splash_filedata_size; > uint8_t qemu_extra_params_fw[2]; > +bool need_announce = false; > > typedef struct FWBootEntry FWBootEntry; > > @@ -1266,6 +1267,10 @@ void vm_start(void) > vm_state_notify(1, RUN_STATE_RUNNING); > resume_all_vcpus(); > monitor_protocol_event(QEVENT_RESUME, NULL); > + if (need_announce) { > + need_announce = false; > + qemu_announce_self(); > + } > } > } > > Reviewed-by: Paolo Bonzini Paolo