qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC v2 00/12] Virtio-mmio refactoring.
@ 2012-09-17 10:00 Evgeny Voevodin
  2012-09-17 10:00 ` [Qemu-devel] [RFC v2 01/12] virtio: Add support for guest setting of queue size Evgeny Voevodin
                   ` (12 more replies)
  0 siblings, 13 replies; 18+ messages in thread
From: Evgeny Voevodin @ 2012-09-17 10:00 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, kyungmin.park, aliguori, Evgeny Voevodin

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

-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [RFC v2 00/12] Virtio-mmio refactoring.
@ 2012-09-28  2:35 Ying-Shiuan Pan
  0 siblings, 0 replies; 18+ messages in thread
From: Ying-Shiuan Pan @ 2012-09-28  2:35 UTC (permalink / raw)
  To: qemu-devel; +Cc: yspan, fred.konrad

Hi,

We have applied virtio-mmio into our work for more than half year,
although the patch we used is not yet updated to the latest one.
We have tested virtio-blk, virtio-net, virtio-console, and virtio-balloon.
All of them are working very well.

Hope you will enjoy them also :)

----
Best Regards,
潘穎軒Ying-Shiuan Pan


> Message: 1
> Date: Thu, 27 Sep 2012 19:31:03 +0200
> From: KONRAD Fr?d?ric <fred.konrad@greensocs.com>
> To: Evgeny Voevodin <e.voevodin@samsung.com>, qemu-devel@nongnu.org,
>         Mark Burton <mark.burton@greensocs.com>, fred.konrad@greensocs.com
> Subject: Re: [Qemu-devel] [RFC v2 00/12] Virtio-mmio refactoring.
> Message-ID: <50648D57.502@greensocs.com>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> 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
>>
>

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

end of thread, other threads:[~2012-09-28  3:37 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-17 10:00 [Qemu-devel] [RFC v2 00/12] Virtio-mmio refactoring Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 01/12] virtio: Add support for guest setting of queue size Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 02/12] virtio: Support transports which can specify the vring alignment Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 03/12] Virtio: Add transport bindings Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 04/12] hw/qdev-properties.c: Add "transport" property Evgeny Voevodin
2012-09-17 12:42   ` Paolo Bonzini
2012-09-18  4:48     ` Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 05/12] hw/pci.c: Make pci_add_option_rom global visible Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 06/12] Add MMIO based virtio transport Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 07/12] hw/virtio-serial-bus.c: Add virtio-serial device Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 08/12] hw/virtio-balloon.c: Add virtio-balloon device Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 09/12] hw/virtio-net.c: Add virtio-net device Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 10/12] hw/virtio-blk.c: Add virtio-blk device Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 11/12] hw/virtio-pci-new.c: Add VirtIOPCI device Evgeny Voevodin
2012-09-17 10:00 ` [Qemu-devel] [RFC v2 12/12] hw/exynos4210.c: Create two virtio-mmio transport instances Evgeny Voevodin
2012-09-27 17:31 ` [Qemu-devel] [RFC v2 00/12] Virtio-mmio refactoring KONRAD Frédéric
2012-09-28  3:37   ` Evgeny Voevodin
  -- strict thread matches above, loose matches on Subject: below --
2012-09-28  2:35 Ying-Shiuan Pan

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).