From: Hans de Goede <hdegoede@redhat.com>
To: Amit Shah <amit.shah@redhat.com>
Cc: "Marc-André Lureau" <mlureau@redhat.com>,
qemu-devel@nongnu.org, "Gerd Hoffmann" <kraxel@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/7] virtio-console: Remove any pending watches on close
Date: Thu, 14 Mar 2013 14:32:03 +0100 [thread overview]
Message-ID: <5141D153.8080409@redhat.com> (raw)
In-Reply-To: <20130314073550.GA10264@amit.redhat.com>
Hi,
On 03/14/2013 08:35 AM, Amit Shah wrote:
> On (Wed) 13 Mar 2013 [14:59:42], Hans de Goede wrote:
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>> hw/virtio-console.c | 16 ++++++++++++++--
>> 1 file changed, 14 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/virtio-console.c b/hw/virtio-console.c
>> index 1d87c5b..ec0f91b 100644
>> --- a/hw/virtio-console.c
>> +++ b/hw/virtio-console.c
>> @@ -18,6 +18,7 @@
>> typedef struct VirtConsole {
>> VirtIOSerialPort port;
>> CharDriverState *chr;
>> + guint watch;
>> } VirtConsole;
>>
>> /*
>> @@ -29,6 +30,7 @@ static gboolean chr_write_unblocked(GIOChannel *chan, GIOCondition cond,
>> {
>> VirtConsole *vcon = opaque;
>>
>> + vcon->watch = 0;
>> virtio_serial_throttle_port(&vcon->port, false);
>> return FALSE;
>> }
>> @@ -60,8 +62,10 @@ static ssize_t flush_buf(VirtIOSerialPort *port, const uint8_t *buf, size_t len)
>> ret = 0;
>> if (!k->is_console) {
>> virtio_serial_throttle_port(port, true);
>> - qemu_chr_fe_add_watch(vcon->chr, G_IO_OUT, chr_write_unblocked,
>> - vcon);
>> + if (!vcon->watch) {
>> + vcon->watch = qemu_chr_fe_add_watch(vcon->chr, G_IO_OUT,
>> + chr_write_unblocked, vcon);
>> + }
>> }
>> }
>> return ret;
>> @@ -86,6 +90,10 @@ static void guest_close(VirtIOSerialPort *port)
>> if (!vcon->chr) {
>> return;
>> }
>> + if (vcon->watch) {
>> + g_source_remove(vcon->watch);
>> + vcon->watch = 0;
>> + }
>> qemu_chr_fe_close(vcon->chr);
>> }
>
> Even if a guest closed the connection, we want the data the guest sent
> before the close to go out.
>
> What's the reason to not do that?
There is no reason, this was a bad attempt by me to deal with closing
the watch on virtio-port hot-unplug. I've removed this in my
local version of the patchset and instead added an exit callback
to deal with virtio-port hot-unplug the proper way.
I still have a few other patches for spice-qemu-char.c I'm working on,
once those are finished, I'll resend the series with this fixed and
rebased on top of Gerd Hoffman's chardev.v5 tree.
Regards,
Hans
next prev parent reply other threads:[~2013-03-14 13:28 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-13 13:59 [Qemu-devel] [PATCH 0/7] Spice / usb-redir chardev flowcontrol patches Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 1/7] virtio-console: Also throttle when less was written then requested Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 2/7] virtio-console: Remove any pending watches on close Hans de Goede
2013-03-14 7:35 ` Amit Shah
2013-03-14 13:32 ` Hans de Goede [this message]
2013-03-13 13:59 ` [Qemu-devel] [PATCH 3/7] spice-qemu-char: Fix name parameter issues after qapi-ifying Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 4/7] spice-qemu-char: Remove dead debugging code Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 5/7] spice-qemu-char: Add watch support Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 6/7] spice-qemu-char.c: Remove intermediate buffer Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 7/7] usb-redir: Add flow control support Hans de Goede
-- strict thread matches above, loose matches on Subject: below --
2013-03-28 13:28 [Qemu-devel] [PATCH 0/7] Spice / usb-redir chardev flowcontrol patches v3 Hans de Goede
2013-03-28 13:28 ` [Qemu-devel] [PATCH 2/7] virtio-console: Remove any pending watches on close Hans de Goede
2013-04-05 9:30 [Qemu-devel] [PATCH 0/7] usb-redir chardev flowcontrol patches v4 Hans de Goede
2013-04-05 9:30 ` [Qemu-devel] [PATCH 2/7] virtio-console: Remove any pending watches on close Hans de Goede
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=5141D153.8080409@redhat.com \
--to=hdegoede@redhat.com \
--cc=amit.shah@redhat.com \
--cc=kraxel@redhat.com \
--cc=mlureau@redhat.com \
--cc=qemu-devel@nongnu.org \
/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.