From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56355) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIMS9-0002HS-C1 for qemu-devel@nongnu.org; Wed, 20 Mar 2013 13:05:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UIMS3-0007kB-E2 for qemu-devel@nongnu.org; Wed, 20 Mar 2013 13:05:29 -0400 Received: from mx4-phx2.redhat.com ([209.132.183.25]:51219) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIMS3-0007iZ-3H for qemu-devel@nongnu.org; Wed, 20 Mar 2013 13:05:23 -0400 Date: Wed, 20 Mar 2013 13:05:21 -0400 (EDT) From: Alon Levy Message-ID: <1499817252.12085108.1363799121160.JavaMail.root@redhat.com> In-Reply-To: <87a9py6wy3.fsf@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1/4] char: add a post_load callback List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: amit shah , hdegoede@redhat.com, kraxel@redhat.com, qemu-devel@nongnu.org > Alon Levy writes: > > > Signed-off-by: Alon Levy > > --- > > include/char/char.h | 12 ++++++++++++ > > qemu-char.c | 7 +++++++ > > 2 files changed, 19 insertions(+) > > > > diff --git a/include/char/char.h b/include/char/char.h > > index 0326b2a..0fdcaf9 100644 > > --- a/include/char/char.h > > +++ b/include/char/char.h > > @@ -70,6 +70,7 @@ struct CharDriverState { > > void (*chr_set_echo)(struct CharDriverState *chr, bool echo); > > void (*chr_guest_open)(struct CharDriverState *chr); > > void (*chr_guest_close)(struct CharDriverState *chr); > > + void (*chr_post_load)(struct CharDriverState *chr, int > > connected); > > The character device layer should *not* be messing around with > notifying > migration state. > > I thought we previously discussed this? Just implement a migration > hook > in the spice code. The thing Gerd objected to when I sent a patch doing just that was the way I used the vmstate, one possible way to not have to use vmstate at all is adding api for querying the current front end connected status, like qemu_fe_is_connected. Is that acceptable? > > Regards, > > Anthony Liguori > > > void *opaque; > > int idle_tag; > > char *label; > > @@ -144,6 +145,17 @@ void qemu_chr_fe_open(struct CharDriverState > > *chr); > > void qemu_chr_fe_close(struct CharDriverState *chr); > > > > /** > > + * @qemu_chr_fe_post_load: > > + * > > + * Indicate to backend that a migration has just completed. Must > > be called when > > + * the vm is in the running state. > > + * > > + * @connected true if frontend is still connected after migration, > > false > > + * otherwise. > > + */ > > +void qemu_chr_fe_post_load(struct CharDriverState *chr, int > > connected); > > + > > +/** > > * @qemu_chr_fe_printf: > > * > > * Write to a character backend using a printf style interface. > > diff --git a/qemu-char.c b/qemu-char.c > > index 4e011df..42c911f 100644 > > --- a/qemu-char.c > > +++ b/qemu-char.c > > @@ -3390,6 +3390,13 @@ void qemu_chr_fe_open(struct CharDriverState > > *chr) > > } > > } > > > > +void qemu_chr_fe_post_load(struct CharDriverState *chr, int > > connected) > > +{ > > + if (chr->chr_post_load) { > > + chr->chr_post_load(chr, connected); > > + } > > +} > > + > > void qemu_chr_fe_close(struct CharDriverState *chr) > > { > > if (chr->chr_guest_close) { > > -- > > 1.8.1.4 > > >