From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:43956) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgGqC-0006hK-MY for qemu-devel@nongnu.org; Thu, 29 Dec 2011 09:20:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RgGqB-0003Nf-Ku for qemu-devel@nongnu.org; Thu, 29 Dec 2011 09:20:20 -0500 Received: from e06smtp13.uk.ibm.com ([195.75.94.109]:37115) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgGqB-0003NZ-Bq for qemu-devel@nongnu.org; Thu, 29 Dec 2011 09:20:19 -0500 Received: from /spool/local by e06smtp13.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 29 Dec 2011 14:20:18 -0000 Received: from d06av12.portsmouth.uk.ibm.com (d06av12.portsmouth.uk.ibm.com [9.149.37.247]) by d06nrmr1507.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id pBTEJlP42474162 for ; Thu, 29 Dec 2011 14:19:47 GMT Received: from d06av12.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av12.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id pBTEJlcp013651 for ; Thu, 29 Dec 2011 07:19:47 -0700 Message-ID: <4EFC76FF.5070405@de.ibm.com> Date: Thu, 29 Dec 2011 15:19:43 +0100 From: Christian Borntraeger MIME-Version: 1.0 References: <4EE9EBB9.9020300@de.ibm.com> <4EFC616F.4060806@de.ibm.com> <20111229140407.GC4576@amit.redhat.com> <4EFC7657.5090804@de.ibm.com> In-Reply-To: <4EFC7657.5090804@de.ibm.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCHv2] Fix virtio-console failure on unconnected pty List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Amit Shah Cc: "qemu-devel@nongnu.org" , Alexander Graf >> I'm surprised: did you test this with upstream qemu? That codebase >> doesn't yet throttle writes, and this code path won't execute. Does >> it really not reproduce with this patch? > > I think > static void handle_output(VirtIODevice *vdev, VirtQueue *vq) > [....] > if (!port->throttled) { > do_flush_queued_data(port, vq, vdev); > return; > > makes a difference here, since we will never return the buffer to the guest, no? And of course this while static void do_flush_queued_data(VirtIOSerialPort *port, VirtQueue *vq, VirtIODevice *vdev) [...] while (!port->throttled) { unsigned int i; will also prevent further processing, as virtio_serial_throttle_port will set port-throttled.