qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	e.voevodin@samsung.com, mark.burton@greensocs.com,
	qemu-devel@nongnu.org, stefanha@redhat.com,
	cornelia.huck@de.ibm.com, afaerber@suse.de,
	"KONRAD Frédéric" <fred.konrad@greensocs.com>
Subject: Re: [Qemu-devel] [RFC PATCH v6 0/6] Virtio refactoring.
Date: Mon, 07 Jan 2013 15:24:14 -0600	[thread overview]
Message-ID: <878v841ybl.fsf@codemonkey.ws> (raw)
In-Reply-To: <20130107205950.GD10575@redhat.com>

"Michael S. Tsirkin" <mst@redhat.com> writes:

> On Mon, Jan 07, 2013 at 02:12:23PM -0600, Anthony Liguori wrote:
>> "Michael S. Tsirkin" <mst@redhat.com> writes:
>> 
>> > On Tue, Dec 18, 2012 at 12:30:20PM +0100, KONRAD Frédéric wrote:
>> >> On 18/12/2012 12:01, Michael S. Tsirkin wrote:
>> >> >On Tue, Dec 18, 2012 at 10:33:37AM +0000, Peter Maydell wrote:
>> >> >>On 17 December 2012 15:45, Michael S. Tsirkin <mst@redhat.com> wrote:
>> >> >>>Is the point to allow virtio-mmio?  Why can't virtio-mmio be just
>> >> >>>another bus, like a pci bus, and another binding, like the virtio-pci
>> >> >>>binding?
>> >> >>(a) the current code is really not very nice because it's not
>> >> >>actually a proper set of QOM/qdev devices
>> >> >>(b) unlike PCI, you can't create sysbus devices on the
>> >> >>command line, because they don't correspond to a user
>> >> >>pluggable bit of hardware. We don't want users to have to know
>> >> >>an address and IRQ number for each virtio-mmio device (especially
>> >> >>since these are board specific); instead the board can create
>> >> >>and wire up transport devices wherever is suitable, and the
>> >> >>user just creates the backend (which is plugged into the virtio bus).
>> >> >>
>> >> >>-- PMM
>> >> >This is what I am saying: create your own bus and put
>> >> >your devices there. Allocate resources when you init
>> >> >a device.
>> >> >
>> >> >Instead you seem to want to expose a virtio device as two devices to
>> >> >user - if true this is not reasonable.
>> >> >
>> >> The modifications will be transparent to the user, as we will keep
>> >> virtio-x-pci devices.
>> >
>> > So there are three ways to add virtio pci devices now.
>> > Legacy -device virtio-net-pci, legacy legacy -net nic.model=virtio
>> > and the new one with two devices.
>> > If yes it's not transparent, it's user visible.
>> > Or did I misunderstand?
>> >
>> > Look we can have a virtio network device on a PCI bus.
>> > A very similar device can be created on XXX bus, and
>> > we can and do share a lot of code.
>> > This makes it two devices? Why not 4?
>> > One for TX one for RX one for control one for PCI.
>> > I hope I'm not giving anyone ideas ...
>> 
>> Devices != things users need to worry about.
>> 
>> The documented way to create network devices is completely different
>> than any possible syntax you can conjure up with -device.
>> 
>> Really, -device is not something users should have to deal with--ever.
>> It's a low level API, not a UI.
>> 
>> Regards,
>> 
>> Anthony Liguori
>
> Interesting.
> Let's assume I want to put a device behind a pci bridge
> (for example I want more than 32 of these).

You don't want to put a device behind a PCI bridge, you want to have
more than 32 devices.

'-net nic' should do the Right Thing when presented with more than 32
devices.

> It's impossible without -device, isn't it?

Think of -device like an API and -net as our UI.  Management tools want
to use an API, because it provides low level control and generally has
limited side effects.

Users want a UI that makes sense.  Trying to make both things satisfy
both audiences will almost certainly fail.

If a common use case cannot be done without resorting to using our API,
then we ought to improve our UI.

Regards,

Anthony Liguori

>
>> >
>> > -- 
>> > MST

  reply	other threads:[~2013-01-07 21:24 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-07 13:32 [Qemu-devel] [RFC PATCH v6 0/6] Virtio refactoring fred.konrad
2012-12-07 13:32 ` [Qemu-devel] [RFC PATCH v6 1/6] qdev : add a maximum device allowed field for the bus fred.konrad
2012-12-07 13:32 ` [Qemu-devel] [RFC PATCH v6 2/6] virtio-bus : Introduce virtio-bus fred.konrad
2012-12-07 13:32 ` [Qemu-devel] [RFC PATCH v6 3/6] virtio-pci-bus : Introduce virtio-pci-bus fred.konrad
2012-12-07 13:32 ` [Qemu-devel] [RFC PATCH v6 4/6] virtio-pci : Refactor virtio-pci device fred.konrad
2012-12-07 13:32 ` [Qemu-devel] [RFC PATCH v6 5/6] virtio-device : Refactor virtio-device fred.konrad
2012-12-07 13:32 ` [Qemu-devel] [RFC PATCH v6 6/6] virtio-blk : Add the virtio-blk device fred.konrad
2012-12-07 14:53   ` Peter Maydell
2012-12-17 15:45 ` [Qemu-devel] [RFC PATCH v6 0/6] Virtio refactoring Michael S. Tsirkin
2012-12-17 17:13   ` KONRAD Frédéric
2012-12-17 20:46     ` Michael S. Tsirkin
2012-12-18 10:33   ` Peter Maydell
2012-12-18 11:01     ` Michael S. Tsirkin
2012-12-18 11:26       ` Peter Maydell
2012-12-18 11:50         ` Paolo Bonzini
2012-12-18 12:06           ` Peter Maydell
2012-12-18 13:10             ` Michael S. Tsirkin
2012-12-18 14:00               ` Peter Maydell
2012-12-18 14:36                 ` Paolo Bonzini
2012-12-18 14:56                   ` Peter Maydell
2012-12-18 14:59                     ` Paolo Bonzini
2012-12-18 15:42                       ` Michael S. Tsirkin
2012-12-18 15:14                     ` Michael S. Tsirkin
2012-12-18 14:51                 ` Michael S. Tsirkin
2012-12-18 11:30       ` KONRAD Frédéric
2012-12-18 13:21         ` Michael S. Tsirkin
2013-01-07 20:12           ` Anthony Liguori
2013-01-07 20:59             ` Michael S. Tsirkin
2013-01-07 21:24               ` Anthony Liguori [this message]
2013-01-07 21:37                 ` Michael S. Tsirkin
2013-01-07 21:51                   ` Anthony Liguori
2013-01-07 22:15                     ` Michael S. Tsirkin
2013-01-07 22:50                       ` Anthony Liguori
2013-01-08  6:46                         ` Michael S. Tsirkin
2013-01-07 22:16                 ` Michael S. Tsirkin
2013-01-07 19:58         ` Michael S. Tsirkin
2013-01-07 20:02           ` Peter Maydell
2013-01-07 20:49             ` Michael S. Tsirkin
2013-01-07 21:32               ` Anthony Liguori
2013-01-07 20:14           ` Anthony Liguori
2013-01-08  9:56           ` KONRAD Frédéric
2013-01-08 14:02             ` Michael S. Tsirkin
2013-01-08 14:27               ` KONRAD Frédéric

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878v841ybl.fsf@codemonkey.ws \
    --to=aliguori@us.ibm.com \
    --cc=afaerber@suse.de \
    --cc=cornelia.huck@de.ibm.com \
    --cc=e.voevodin@samsung.com \
    --cc=fred.konrad@greensocs.com \
    --cc=mark.burton@greensocs.com \
    --cc=mst@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).