virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/31] virtio: console: Fixes, multiple devices and generic ports
@ 2009-12-22 14:34 Amit Shah
  2009-12-22 14:34 ` [PATCH 01/31] virtio: console: comment cleanup Amit Shah
  2009-12-23  6:39 ` [PATCH 00/31] virtio: console: Fixes, multiple devices and generic ports Rusty Russell
  0 siblings, 2 replies; 44+ messages in thread
From: Amit Shah @ 2009-12-22 14:34 UTC (permalink / raw)
  To: rusty; +Cc: Amit Shah, virtualization

Hey Rusty,

This series adds support for generic ports with each port getting two
vqs: one for input and one for output. The host notifies us via the
config space of the max. number of ports that can be added for a
particular device.

As a result of that change, the buffer management for find_readbufs
and send_bufs is moved to the vqs. Only one outbuf per port is used
so we bide away some time in the send_buf routine if output data spans
multiple pages.

There are a few things which aren't done, they can be built upon this
series once it's accepted. One of them is maintaining a list of the
pages that are fed into the virtqueues. This list will be needed when
those buffers have to be freed.

I've passed each patch through an automated test suite that tests for
all the functionality here (caching, throttling, hotplug, hot-unplug,
console IO) twice: once with a qemu that supports this functionality
and once without, to test for backward compat. It all works fine.

The testsuite tests for:
* the 'name' attribute and the symlinks that get created via udev
  scripts in /dev/virtio-ports
* caching
* throttling
* console - with running 'find /' in the guest
* open/close of chardevs
* read/write/poll
* sending a large file (> 100 MB) in either direction and matching
  sha1sums.

Please review.

Thanks,
		Amit

Amit Shah (25):
  hvc_console: Remove __devinit annotation from hvc_alloc
  virtio: console: We support only one device at a time
  virtio: console: encapsulate buffer information in a struct
  virtio: console: ensure add_inbuf can work for multiple ports as well
  virtio: console: introduce a get_inbuf helper to fetch bufs from
    in_vq
  virtio: console: don't assume a single console port.
  virtio: console: struct ports for multiple ports per device.
  virtio: console: ensure console size is updated on hvc open
  virtio: console: Separate out console-specific data into a separate
    struct
  virtio: console: Separate out console init into a new function
  virtio: console: Separate out find_vqs operation into a different
    function
  virtio: console: Buffer data that comes from the host
  virtio: console: Introduce a send_buf function for a common path for
    sending data to host
  virtio: console: Introduce a 'header' for each buffer towards
    supporting multiport
  virtio: console: Add a new MULTIPORT feature, support for generic
    ports
  virtio: console: Prepare for writing to / reading from userspace
    buffers
  virtio: console: Associate each port with a char device
  virtio: console: Add file operations to ports for
    open/read/write/poll
  virtio: console: Ensure only one process can have a port open at a
    time
  virtio: console: Register with sysfs and create a 'name' attribute
    for ports
  virtio: console: Add throttling support to prevent flooding ports
  virtio: console: Add option to remove cached buffers on port close
  virtio: console: Handle port hot-plug
  virtio: console: Add ability to hot-unplug ports
  virtio: console: Add debugfs files for each port to expose debug info

Rusty Russell (6):
  virtio: console: comment cleanup
  virtio: console: statically initialize virtio_cons
  hvc_console: make the ops pointer const.
  virtio: console: port encapsulation
  virtio: console: use vdev->priv to avoid accessing global var.
  virtio: console: remove global var

 drivers/char/Kconfig           |    8 +
 drivers/char/hvc_beat.c        |    2 +-
 drivers/char/hvc_console.c     |    9 +-
 drivers/char/hvc_console.h     |    9 +-
 drivers/char/hvc_iseries.c     |    2 +-
 drivers/char/hvc_iucv.c        |    2 +-
 drivers/char/hvc_rtas.c        |    2 +-
 drivers/char/hvc_udbg.c        |    2 +-
 drivers/char/hvc_vio.c         |    2 +-
 drivers/char/hvc_xen.c         |    2 +-
 drivers/char/virtio_console.c  | 1575 ++++++++++++++++++++++++++++++++++++----
 include/linux/virtio_console.h |   44 ++-
 12 files changed, 1498 insertions(+), 161 deletions(-)

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

end of thread, other threads:[~2010-01-16 22:16 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-22 14:34 [PATCH 00/31] virtio: console: Fixes, multiple devices and generic ports Amit Shah
2009-12-22 14:34 ` [PATCH 01/31] virtio: console: comment cleanup Amit Shah
2009-12-22 14:34   ` [PATCH 02/31] virtio: console: statically initialize virtio_cons Amit Shah
2009-12-22 14:34     ` [PATCH 03/31] hvc_console: make the ops pointer const Amit Shah
     [not found]     ` <1261492481-19817-4-git-send-email-amit.shah@redhat.com>
2009-12-22 14:34       ` [PATCH 04/31] hvc_console: Remove __devinit annotation from hvc_alloc Amit Shah
     [not found]       ` <1261492481-19817-5-git-send-email-amit.shah@redhat.com>
2009-12-22 14:34         ` [PATCH 05/31] virtio: console: We support only one device at a time Amit Shah
2009-12-22 14:34           ` [PATCH 06/31] virtio: console: port encapsulation Amit Shah
2009-12-22 14:34             ` [PATCH 07/31] virtio: console: encapsulate buffer information in a struct Amit Shah
2009-12-22 14:34               ` [PATCH 08/31] virtio: console: ensure add_inbuf can work for multiple ports as well Amit Shah
2009-12-22 14:34                 ` [PATCH 09/31] virtio: console: introduce a get_inbuf helper to fetch bufs from in_vq Amit Shah
2009-12-22 14:34                   ` [PATCH 10/31] virtio: console: use vdev->priv to avoid accessing global var Amit Shah
2009-12-22 14:34                     ` [PATCH 11/31] virtio: console: don't assume a single console port Amit Shah
2009-12-22 14:34                       ` [PATCH 12/31] virtio: console: remove global var Amit Shah
2009-12-22 14:34                         ` [PATCH 13/31] virtio: console: struct ports for multiple ports per device Amit Shah
2009-12-22 14:34                           ` [PATCH 14/31] virtio: console: ensure console size is updated on hvc open Amit Shah
2009-12-22 14:34                             ` [PATCH 15/31] virtio: console: Separate out console-specific data into a separate struct Amit Shah
2009-12-22 14:34                               ` [PATCH 16/31] virtio: console: Separate out console init into a new function Amit Shah
2009-12-22 14:34                                 ` [PATCH 17/31] virtio: console: Separate out find_vqs operation into a different function Amit Shah
2009-12-22 14:34                                   ` [PATCH 18/31] virtio: console: Buffer data that comes from the host Amit Shah
2009-12-22 14:34                                     ` [PATCH 19/31] virtio: console: Introduce a send_buf function for a common path for sending data to host Amit Shah
2009-12-22 14:34                                       ` [PATCH 20/31] virtio: console: Introduce a 'header' for each buffer towards supporting multiport Amit Shah
2009-12-22 14:34                                         ` [PATCH 21/31] virtio: console: Add a new MULTIPORT feature, support for generic ports Amit Shah
2009-12-22 14:34                                           ` [PATCH 22/31] virtio: console: Prepare for writing to / reading from userspace buffers Amit Shah
2009-12-22 14:34                                             ` [PATCH 23/31] virtio: console: Associate each port with a char device Amit Shah
2009-12-22 14:34                                               ` [PATCH 24/31] virtio: console: Add file operations to ports for open/read/write/poll Amit Shah
2009-12-22 14:34                                                 ` [PATCH 25/31] virtio: console: Ensure only one process can have a port open at a time Amit Shah
2009-12-22 14:34                                                   ` [PATCH 26/31] virtio: console: Register with sysfs and create a 'name' attribute for ports Amit Shah
2009-12-22 14:34                                                     ` [PATCH 27/31] virtio: console: Add throttling support to prevent flooding ports Amit Shah
2009-12-22 14:34                                                       ` [PATCH 28/31] virtio: console: Add option to remove cached buffers on port close Amit Shah
2009-12-22 14:34                                                         ` [PATCH 29/31] virtio: console: Handle port hot-plug Amit Shah
2009-12-22 14:34                                                           ` [PATCH 30/31] virtio: console: Add ability to hot-unplug ports Amit Shah
2009-12-22 14:34                                                             ` [PATCH 31/31] virtio: console: Add debugfs files for each port to expose debug info Amit Shah
2010-01-04  9:15                                     ` [PATCH 18/31] virtio: console: Buffer data that comes from the host Rusty Russell
2010-01-04  9:47                                       ` Amit Shah
2010-01-13  6:11                                         ` Amit Shah
2010-01-13 11:13                                           ` Rusty Russell
2010-01-13 11:24                                             ` Amit Shah
2010-01-13 23:15                                               ` Rusty Russell
2010-01-14  3:17                                                 ` Amit Shah
2010-01-16 22:16                                                   ` Rusty Russell
2010-01-12  2:21       ` [PATCH 03/31] hvc_console: make the ops pointer const Benjamin Herrenschmidt
     [not found]       ` <1263262906.724.175.camel@pasglop>
2010-01-12 11:36         ` Rusty Russell
2009-12-23  6:39 ` [PATCH 00/31] virtio: console: Fixes, multiple devices and generic ports Rusty Russell
2009-12-23  6:44   ` Amit Shah

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).