From: Anthony Liguori <anthony@codemonkey.ws>
To: Gleb Natapov <gleb@redhat.com>
Cc: Chris Wright <chrisw@redhat.com>,
kvm@vger.kernel.org, Markus Armbruster <armbru@redhat.com>,
qemu-devel@nongnu.org, Blue Swirl <blauwirbel@gmail.com>,
Avi Kivity <avi@redhat.com>
Subject: Re: [Qemu-devel] KVM call minutes for Feb 8
Date: Thu, 10 Feb 2011 17:05:25 +0100 [thread overview]
Message-ID: <4D540CC5.2@codemonkey.ws> (raw)
In-Reply-To: <20110210142044.GD24525@redhat.com>
On 02/10/2011 03:20 PM, Gleb Natapov wrote:
> Jugging by how well all previous conversion went we will end up with one
> more way of creating devices. One legacy, another qdev and your new one.
> And what is the problem with qdev again (not that I am a big qdev fan)?
>
We've really been arguing about probably the most minor aspect of the
problem with qdev.
All I'm really saying is that we shouldn't tie device construction to a
factory interface as we do with qdev.
That simply means that we should be able to do:
RTC *rtc_create(arg1, arg2, arg2);
And that a separate piece of code decides which devices are exposed
through -device or device_add. Which devices are exposed is really a
minor detail.
That said, qdev has a number of significant limitations in my mind. The
first is that the only relationship between devices is through the
BusState interface. I don't think we should even try to have a generic
bus model. When you look at how badly broken PCI hotplug is current in
qdev, I think this is symptomatic of this.
There's also no way in qdev to really have polymorphism. Interfaces
really aren't meaningful in qdev so you have things like PCIDevice where
some methods are stored in the object instead of the class dispatch
table and you have overuse of static class members.
And it's all unrelated to VMState.
And this is just the basic mechanisms of qdev. The actual
implementation is worse. The use of qemu_irq as gpio in the base class
and overuse of SystemBus is really quite insane.
And so far, the use of qdev has been entirely superficial. Devices
still don't make use of bus level interfaces to do I/O so we don't have
any better componentization than we did before qdev.
> The fact that there is no enough interest to convert all devices to it?
>
I don't think there is any device that has been improved by qdev.
-device is a nice feature, but it could have been implemented without qdev.
Regards,
Anthony Liguori
> How new way of doing things will solve this?
>
> Just to be clear I do not have problem with not having ability to
> compose x86 without pit or kbd controller. Basic things like RTC, pit,
> pic, ioapic, dma, kbd should be created unconditionally as part of x86
> pc machine. But IMHO you are trying to take things to other extreme.
>
> --
> Gleb.
>
next prev parent reply other threads:[~2011-02-10 16:05 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-08 15:55 [Qemu-devel] KVM call minutes for Feb 8 Chris Wright
2011-02-08 16:14 ` [Qemu-devel] " Stefan Hajnoczi
2011-02-08 16:39 ` [Qemu-devel] " Anthony Liguori
2011-02-08 17:13 ` Markus Armbruster
2011-02-08 19:02 ` Peter Maydell
2011-02-08 21:11 ` Anthony Liguori
2011-02-09 8:11 ` Markus Armbruster
2011-02-09 8:20 ` Peter Maydell
2011-02-09 9:02 ` Markus Armbruster
2011-02-08 19:30 ` Alexander Graf
2011-02-08 19:30 ` Aurelien Jarno
2011-02-09 8:23 ` Markus Armbruster
2011-02-09 10:43 ` Anthony Liguori
2011-02-09 17:38 ` Blue Swirl
2011-02-08 21:12 ` Anthony Liguori
2011-02-09 8:01 ` Markus Armbruster
2011-02-09 10:31 ` Anthony Liguori
2011-02-09 12:28 ` Markus Armbruster
2011-02-09 14:44 ` Anthony Liguori
2011-02-09 17:48 ` Blue Swirl
2011-02-09 19:53 ` Anthony Liguori
2011-02-09 19:59 ` Anthony Liguori
2011-02-09 20:15 ` Blue Swirl
2011-02-10 7:47 ` Anthony Liguori
2011-02-10 8:16 ` Peter Maydell
2011-02-10 8:36 ` Anthony Liguori
2011-02-10 9:04 ` Peter Maydell
2011-02-10 10:13 ` Anthony Liguori
2011-02-10 10:38 ` Peter Maydell
2011-02-10 11:24 ` Gleb Natapov
2011-02-10 12:23 ` Anthony Liguori
2011-02-10 13:06 ` Peter Maydell
2011-02-10 19:17 ` Scott Wood
2011-02-10 19:22 ` Peter Maydell
2011-02-10 19:29 ` Scott Wood
2011-02-10 9:07 ` Gleb Natapov
2011-02-10 10:00 ` Anthony Liguori
2011-02-10 10:10 ` Gleb Natapov
2011-02-10 10:19 ` Anthony Liguori
2011-02-10 10:49 ` Gleb Natapov
2011-02-10 12:47 ` Anthony Liguori
2011-02-10 13:12 ` Gleb Natapov
2011-02-10 10:25 ` Avi Kivity
2011-02-10 11:13 ` Gleb Natapov
2011-02-10 12:51 ` Anthony Liguori
2011-02-10 13:00 ` Avi Kivity
2011-02-10 13:29 ` Gleb Natapov
2011-02-10 14:00 ` Anthony Liguori
2011-02-10 13:27 ` Gleb Natapov
2011-02-10 14:04 ` Anthony Liguori
2011-02-10 14:20 ` Gleb Natapov
2011-02-10 16:05 ` Anthony Liguori [this message]
2011-02-11 18:14 ` Blue Swirl
2011-02-13 9:24 ` Gleb Natapov
2011-02-13 15:31 ` Anthony Liguori
2011-02-13 19:37 ` Blue Swirl
2011-02-13 19:57 ` Anthony Liguori
2011-02-13 21:00 ` Blue Swirl
2011-02-13 22:42 ` Anthony Liguori
2011-02-14 17:31 ` Blue Swirl
2011-02-14 20:53 ` Anthony Liguori
2011-02-14 21:25 ` Blue Swirl
2011-02-14 21:47 ` Anthony Liguori
2011-02-15 17:11 ` Blue Swirl
2011-02-15 23:07 ` Anthony Liguori
2011-02-16 9:52 ` Gleb Natapov
2011-02-14 9:44 ` Paolo Bonzini
2011-02-10 10:29 ` Avi Kivity
2011-02-13 15:38 ` Anthony Liguori
2011-02-13 15:56 ` Avi Kivity
2011-02-13 16:56 ` Anthony Liguori
2011-02-13 18:08 ` Gleb Natapov
2011-02-13 19:38 ` Anthony Liguori
2011-02-14 10:23 ` Gleb Natapov
2011-02-13 21:24 ` Peter Maydell
2011-02-13 22:43 ` Anthony Liguori
2011-02-13 23:35 ` Peter Maydell
2011-02-13 15:39 ` Anthony Liguori
2011-02-11 17:54 ` Blue Swirl
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=4D540CC5.2@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=armbru@redhat.com \
--cc=avi@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=chrisw@redhat.com \
--cc=gleb@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
/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).