Amit Shah <amit.s...@redhat.com> wrote: > Hello, > > This series lets interested callers ask for an -EAGAIN return from the > chardev backends (only unix and tcp sockets as of now) to implement > their own flow control. > > A new call, qemu_chr_write_nb() is added, that will fallback to > qemu_chr_write() if the backend file isn't non-blocking or if no > callback was supplied. > > Support for other backend types is easy to add and will be done in > later patches. > > Please apply. > > v7: > - constify handlers (Blue Swirl) > - remove 'write_cb', a leftover from previous design (Juan Quintela) > - return ret instead of -EAGAIN in virtio-console (Juan) > - use pre-allocated meta-buffer instead of allocating one each time > (Juan) > > v6: > - Continue write operation on EINTR instead of returning partial > writes (which was a change from prev. behaviour) (Gerd) > > v5: > - Fix bug pointed out by Gerd > - Convert to using a struct for passing on handlers to > qemu_chr_add_handlers() instead of passing each one > individually. Simplifies patches. (Inspired by Juan's comment) > - Re-arranged patches > > Amit Shah (6): > virtio-console: Factor out common init between console and generic > ports > char: Add a QemuChrHandlers struct to initialise chardev handlers > char: Let writers know how much data was written in case of errors > char: Add qemu_chr_write_nb() for nonblocking writes > char: unix/tcp: Add a non-blocking write handler > virtio-console: Throttle virtio-serial-bus if we can't consume any > more guest data
Acked-by: Juan Quintela <quint...@redhat.com> Testing the porting to vmstate of this. Later, Juan.