qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC v2 00/12] Virtio-mmio refactoring.


From: KONRAD Frédéric
Subject: Re: [Qemu-devel] [RFC v2 00/12] Virtio-mmio refactoring.
Date: Thu, 27 Sep 2012 19:31:03 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120911 Thunderbird/15.0.1

Hi,

We actually want to add virtio models for arm, therefore these patches are really helpful.

We will try it, start looking at the issues.

Any feedback ?

On 17/09/2012 12:00, Evgeny Voevodin wrote:
Previous RFC you can find at
http://lists.gnu.org/archive/html/qemu-devel/2012-04/msg03665.html
Yes, long time ago...
Since I'm not sure when I'll be able to continue on this,
I'm publishing this work as is.
In this patchset I tried to split virtio-xxx-pci devices into
virtio-pci + virtio-xxx (blk, net, serial,...). Also virtio-mmio
transport is introduced based on Peter's work which is accessible
here: http://lists.gnu.org/archive/html/qemu-devel/2011-11/msg01870.html

The main idea was to let users specify
-device virtio-pci,id=virtio-pci.0
-device virtio-blk,transport=virtio-pci.0,...
and

-device virtio-mmio,id=virtio-mmio.0
-device virtio-blk,transport=virtio-mmio.0,...

I created virtio-pci and virtio-mmio transport devices and tried to enclose
back-end functionality into virtio-blk, virtio-net, etc. On
initialization of transport device it creates a bus to which a back-end device
could be connected. Each back-end device is implemented in corresponding source
file. As for PCI transport, I temporary placed it in a new virtio-pci-new.c file
to not break a functionality of still presented virtio-xxx-pci devices.

Known issues to be resolved:
1. On creation of back-end we need to resolve somehow if props were explicitly 
set
by user.
2. Back-end device can't be initialized if there are no free bus created by 
transport,
so you can't specify
-device virtio-blk,transport=virtio-pci.0,...
-device virtio-pci,id=virtio-pci.0
3. Implement virtio-xxx-devices such that they just create virtio-pci and 
virtio-xxx
devices during initialization.
4. Refactor all remaining back-ends since I just tried blk, net, serial and 
balloon.
5. Refactor s390
6. Further?

Evgeny Voevodin (9):
   Virtio: Add transport bindings.
   hw/qdev-properties.c: Add "transport" property.
   hw/pci.c: Make pci_add_option_rom global visible
   hw/virtio-serial-bus.c: Add virtio-serial device.
   hw/virtio-balloon.c: Add virtio-balloon device.
   hw/virtio-net.c: Add virtio-net device.
   hw/virtio-blk.c: Add virtio-blk device.
   hw/virtio-pci-new.c: Add VirtIOPCI device.
   hw/exynos4210.c: Create two virtio-mmio transport instances.

Peter Maydell (3):
   virtio: Add support for guest setting of queue size
   virtio: Support transports which can specify the vring alignment
   Add MMIO based virtio transport

  hw/Makefile.objs       |    3 +
  hw/exynos4210.c        |   13 +
  hw/pci.c               |    3 +-
  hw/pci.h               |    2 +
  hw/qdev-properties.c   |   29 ++
  hw/qdev.h              |    3 +
  hw/virtio-balloon.c    |   42 +++
  hw/virtio-balloon.h    |    9 +
  hw/virtio-blk.c        |   65 ++++
  hw/virtio-blk.h        |   15 +
  hw/virtio-mmio.c       |  400 +++++++++++++++++++++
  hw/virtio-net.c        |   59 +++
  hw/virtio-net.h        |   16 +
  hw/virtio-pci-new.c    |  925 ++++++++++++++++++++++++++++++++++++++++++++++++
  hw/virtio-pci.h        |   18 +
  hw/virtio-serial-bus.c |   44 +++
  hw/virtio-serial.h     |   11 +
  hw/virtio-transport.c  |  147 ++++++++
  hw/virtio-transport.h  |   74 ++++
  hw/virtio.c            |   20 +-
  hw/virtio.h            |    2 +
  21 files changed, 1896 insertions(+), 4 deletions(-)
  create mode 100644 hw/virtio-mmio.c
  create mode 100644 hw/virtio-pci-new.c
  create mode 100644 hw/virtio-transport.c
  create mode 100644 hw/virtio-transport.h





reply via email to

[Prev in Thread] Current Thread [Next in Thread]