From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48149) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z4j6Q-0002Vg-9z for qemu-devel@nongnu.org; Tue, 16 Jun 2015 01:08:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z4j6L-00085q-QK for qemu-devel@nongnu.org; Tue, 16 Jun 2015 01:08:02 -0400 Received: from mail-pd0-f173.google.com ([209.85.192.173]:36097) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z4j6L-00085A-Kl for qemu-devel@nongnu.org; Tue, 16 Jun 2015 01:07:57 -0400 Received: by pdjm12 with SMTP id m12so5804368pdj.3 for ; Mon, 15 Jun 2015 22:07:56 -0700 (PDT) Message-ID: <557FAF29.5020003@igel.co.jp> Date: Tue, 16 Jun 2015 14:07:53 +0900 From: Tetsuya Mukawa MIME-Version: 1.0 References: <1432538908-26298-5-git-send-email-mukawa@igel.co.jp> <1432874550-10921-1-git-send-email-mukawa@igel.co.jp> <1432874550-10921-2-git-send-email-mukawa@igel.co.jp> <20150615133209.GA9410@stefanha-thinkpad.redhat.com> In-Reply-To: <20150615133209.GA9410@stefanha-thinkpad.redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v1 1/4] vhost-user: Add ability to know vhost-user backend disconnection List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: mst@redhat.com, jasowang@redhat.com, qemu-devel@nongnu.org, n.nikolaev@virtualopensystems.com, Paolo Bonzini On 2015/06/15 22:32, Stefan Hajnoczi wrote: > On Fri, May 29, 2015 at 01:42:27PM +0900, Tetsuya Mukawa wrote: >> Current QEMU cannot detect vhost-user backend disconnection. The >> patch adds ability to know it. >> To know disconnection, add watcher to detect G_IO_HUP event. When >> G_IO_HUP event is detected, the disconnected socket will be read >> to cause a CHR_EVENT_CLOSED. >> >> Signed-off-by: Tetsuya Mukawa >> --- >> net/vhost-user.c | 14 ++++++++++++++ >> 1 file changed, 14 insertions(+) > It is unfortunate that qemu-chr.c doesn't have a built-in way to handle= > G_IO_HUP and raise the CHR_EVENT_CLOSED event. This is not really > specific to vhost-user. > > CCing Paolo Bonzini (Character Devices). He is currently on vacation s= o > let's not hold up this patch. It can be made generic later, if > necessary. > >> diff --git a/net/vhost-user.c b/net/vhost-user.c >> index 11899c5..1967ff4 100644 >> --- a/net/vhost-user.c >> +++ b/net/vhost-user.c >> @@ -19,6 +19,7 @@ typedef struct VhostUserState { >> NetClientState nc; >> CharDriverState *chr; >> VHostNetState *vhost_net; >> + int watch; >> } VhostUserState; >> =20 >> typedef struct VhostUserChardevProps { >> @@ -113,12 +114,23 @@ static void net_vhost_link_down(VhostUserState *= s, bool link_down) >> } >> } >> =20 >> +static gboolean net_vhost_user_watch(GIOChannel *chan, GIOCondition c= ond, >> + void *opaque) >> +{ >> + VhostUserState *s =3D opaque; >> + uint8_t buf[1]; >> + >> + qemu_chr_fe_read_all(s->chr, buf, sizeof(buf)); >> + return FALSE; >> +} > If you respin this patch, please add a comment like: > > /* We don't actually want to read anything, but CHR_EVENT_CLOSED will b= e > * raised as a side-effect of the read. > */ I appreciate for your all comments. I will add above comments in next patches. Tetsuya