|
From: | Paul Brook |
Subject: | Re: [Qemu-devel] [PATCH 1/5] char: Let the caller know how many bytes were written in case of incomplete writes |
Date: | Tue, 6 Apr 2010 10:34:29 +0100 |
User-agent: | KMail/1.12.4 (Linux/2.6.33-2-amd64; KDE/4.3.4; x86_64; ; ) |
> 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. EAGAIN should only ever occur if no bytes are written. If a stall condition occurs after some data has been written (and we allow partial completion) then this is indicated by returning a short count. Paul
[Prev in Thread] | Current Thread | [Next in Thread] |