From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NyzQb-0003Se-P0 for qemu-devel@nongnu.org; Mon, 05 Apr 2010 23:26:13 -0400 Received: from [140.186.70.92] (port=54887 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NyzQZ-0003SN-KW for qemu-devel@nongnu.org; Mon, 05 Apr 2010 23:26:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NyzQX-0007sl-Mj for qemu-devel@nongnu.org; Mon, 05 Apr 2010 23:26:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:25076) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyzQX-0007sR-EG for qemu-devel@nongnu.org; Mon, 05 Apr 2010 23:26:09 -0400 Date: Tue, 6 Apr 2010 08:54:29 +0530 From: Amit Shah Subject: Re: [Qemu-devel] [PATCH 1/5] char: Let the caller know how many bytes were written in case of incomplete writes Message-ID: <20100406032429.GB4135@amit-x200.redhat.com> References: <1270471538-31275-1-git-send-email-amit.shah@redhat.com> <1270471538-31275-2-git-send-email-amit.shah@redhat.com> <201004051733.38629.paul@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201004051733.38629.paul@codesourcery.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: Juan Quintela , qemu-devel@nongnu.org, Gerd Hoffmann On (Mon) Apr 05 2010 [17:33:38], Paul Brook wrote: > > There might be cases where a few bytes would have been sent out to char > > devices and some not. Currently the return values from qemu_chr_write() > > to char devs are only -1, indicating an error, or the complete length > > of the string passed. > > > > Make 'len' a pointer instead, and indicate how much of the string was > > written. The return value will either be the same as 'len' or a negative > > number indicating an error condition. > > This seems wrong. We should not be getting recoverable errors. I was thinking of adding a bool to CharDriverState to indicate if EAGAIN should be reported to the writer. This can be conveyed at the time of doing qemu_chr_add_handlers(). It would certainly be beneficial for consumers of virtio-serial to be notified of -EAGAIN so that the guest can be throttled till the chardev catches up with the data being sent. Amit