All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v6 0/6] char: non-blocking writes, virtio-console flow control
@ 2010-05-04 18:23 Amit Shah
  2010-05-04 18:23 ` [Qemu-devel] [PATCH v6 1/6] virtio-console: Factor out common init between console and generic ports Amit Shah
  2010-05-04 19:23 ` [Qemu-devel] Re: [PATCH v6 0/6] char: non-blocking writes, virtio-console flow control Gerd Hoffmann
  0 siblings, 2 replies; 11+ messages in thread
From: Amit Shah @ 2010-05-04 18:23 UTC (permalink / raw)
  To: qemu list; +Cc: Amit Shah, Paul Brook, Gerd Hoffmann, Juan Quintela

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.

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

 gdbstub.c            |    9 ++-
 hw/debugcon.c        |    2 +-
 hw/escc.c            |    9 ++-
 hw/etraxfs_ser.c     |   13 +++-
 hw/mcf_uart.c        |    9 ++-
 hw/pl011.c           |    9 ++-
 hw/pxa2xx.c          |   13 +++-
 hw/serial.c          |    9 ++-
 hw/sh_serial.c       |   12 +++-
 hw/syborg_serial.c   |    9 ++-
 hw/usb-serial.c      |    9 ++-
 hw/virtio-console.c  |  162 +++++++++++++++++++++++++++++++++++++++++++------
 hw/xen_console.c     |   16 ++++--
 hw/xilinx_uartlite.c |   11 +++-
 monitor.c            |   19 +++++-
 net/slirp.c          |    8 ++-
 net/socket.c         |    4 +-
 qemu-char.c          |  122 ++++++++++++++++++++++++++++++++------
 qemu-char.h          |   20 +++++-
 qemu_socket.h        |    3 +-
 20 files changed, 384 insertions(+), 84 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-05-04 20:29 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-04 18:23 [Qemu-devel] [PATCH v6 0/6] char: non-blocking writes, virtio-console flow control Amit Shah
2010-05-04 18:23 ` [Qemu-devel] [PATCH v6 1/6] virtio-console: Factor out common init between console and generic ports Amit Shah
2010-05-04 18:23   ` [Qemu-devel] [PATCH v6 2/6] char: Add a QemuChrHandlers struct to initialise chardev handlers Amit Shah
2010-05-04 18:23     ` [Qemu-devel] [PATCH v6 3/6] char: Let writers know how much data was written in case of errors Amit Shah
2010-05-04 18:23       ` [Qemu-devel] [PATCH v6 4/6] char: Add qemu_chr_write_nb() for nonblocking writes Amit Shah
2010-05-04 18:23         ` [Qemu-devel] [PATCH v6 5/6] char: unix/tcp: Add a non-blocking write handler Amit Shah
2010-05-04 18:23           ` [Qemu-devel] [PATCH v6 6/6] virtio-console: Throttle virtio-serial-bus if we can't consume any more guest data Amit Shah
2010-05-04 20:28             ` [Qemu-devel] " Juan Quintela
2010-05-04 19:54           ` [Qemu-devel] Re: [PATCH v6 5/6] char: unix/tcp: Add a non-blocking write handler Juan Quintela
2010-05-04 19:58             ` Amit Shah
2010-05-04 19:23 ` [Qemu-devel] Re: [PATCH v6 0/6] char: non-blocking writes, virtio-console flow control Gerd Hoffmann

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.