qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Peter Crosthwaite" <peter.crosthwaite@xilinx.com>,
	"KVM devel mailing list" <kvm@vger.kernel.org>,
	"Juan Quintela" <quintela@redhat.com>,
	"Stuart Yoder" <stuart.yoder@freescale.com>,
	"qemu list" <qemu-devel@nongnu.org>,
	"Anthony Liguori" <aliguori@amazon.com>,
	"Alistair Francis" <alistair.francis@xilinx.com>,
	"Andreas Färber" <afaerber@suse.de>,
	"Christoffer Dall" <christoffer.dall@linaro.org>
Subject: Re: [Qemu-devel] KVM call agenfda for 2014-04-01
Date: Fri, 11 Apr 2014 11:17:43 +0200	[thread overview]
Message-ID: <5347B337.5010109@suse.de> (raw)
In-Reply-To: <87ppkoqpf7.fsf@blackfin.pond.sub.org>


On 11.04.14 09:46, Markus Armbruster wrote:
> [Cc: Andreas, Anthony]
>
> Alexander Graf <agraf@suse.de> writes:
>
>> On 10.04.2014, at 17:52, Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>>> On 10 April 2014 16:49, Alexander Graf <agraf@suse.de> wrote:
>>>> For the next call, I would propose to revive the "platform bus"
>>>> (aka: how to create non-PCI devices with -device) discussions
> Rather: devices that connect to more than just a bus.
>
> Since pseudo-bus sysbus provides exactly no connections, sysbus devices
> generally connect to more.
>
> Currently, the only way to make such additional connections is
> special-purpose code.  -device's connection engine can only connect to a
> bus.
>
>>>> to make sure we're all on the same page.
>>> I rather suspect we are not :-)  Do you have a link to
>>> the current proposals for prior reading?
>> The only thing I could find is the old thread about my platform bus
>> approach (which Anthony disliked):
>>
>>    https://lists.gnu.org/archive/html/qemu-devel/2013-07/msg03614.html
>>
>> So from what I remember the plan moving forward was to have a special
>> device type similar to my platform bus devices that you can just
>> create using -device, no bus involved. The machine file would then
>> loop through them, interpret the "I sit at address x" and "I want
>> interrupt number y" fields to link them to whatever the machine model
>> thinks is a good fit.
>>
>> The same way the machine model today has to have knowledge on each
>> device tree node type it generates, it would do the same for these
>> devices. So the machine has to have awareness of all the "funky
>> special options" a device tree node receives - the same as for any
>> other device. Just that in this case it wouldn't be able to hardcode
>> them, but have to generate them on the fly when it sees a device in
>> the object tree.
> The following is just my understanding of where we're trying to go.  The
> people active in this field (Andreas?) should correct misunderstandings.
>
> Our overall goal is building machines from components by *data* rather
> than code.  Once it's data, it can be made run-time configuration.

I've had plenty of discussions on this with Anthony over the years 
(first time this came up was about 2 or 3 years ago) on this. Eventually 
his conclusion was that it's not desirable to build the machine from 
data. Instead it should get built from a script. The nice thing about a 
script is that it's also run-time, but not as restricted and as much 
special-cased as a mere description.

Unfortunately I don't know all of the rationale that went into the 
conclusion :).

> The configuration describes how components are to be connected, and
> generic connection code makes the connections guided by the
> configuration.
>
> The current generic connection code can only connect a device to a
> single bus.
>
> If you don't specify the bus, it picks one.  Which one it picks is
> effectively ABI.
>
> Picking a bus is a special case of "pick a connection if user didn't
> specify one".  The current bus-picker doesn't depend on the machine
> type, but that's not going to hold in general.
>
> I like to think of the "pick connections the user didn't specify" engine
> as conceptually separate from the "make connections driven by
> configuration" engine.  The actual code isn't so separate, but that's
> implementation.
>
> How does your "platform device" proposal (for lack of a better
> expression) fit into this general framework of ideas?

Any leaf devices that are not hooked up to anything get connected by 
machine specific code :). So the "pick connections the user didn't 
specify" logic would be machine specific.


Alex

      reply	other threads:[~2014-04-11  9:18 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-31 10:40 [Qemu-devel] KVM call agenfda for 2014-04-01 Juan Quintela
2014-03-31 10:51 ` [Qemu-devel] KVM call agenda " Andreas Färber
2014-03-31 12:07   ` Stefan Hajnoczi
2014-03-31 13:21   ` Christian Borntraeger
2014-03-31 13:25     ` Peter Maydell
2014-03-31 14:01       ` Anthony Liguori
2014-03-31 14:28         ` Paolo Bonzini
2014-03-31 14:32           ` Peter Maydell
2014-03-31 14:46             ` Andreas Färber
2014-03-31 15:42               ` Anthony Liguori
2014-03-31 16:58                 ` Markus Armbruster
2014-03-31 19:57               ` Michael Roth
2014-04-01  8:16                 ` Peter Maydell
2014-04-01 12:39 ` [Qemu-devel] KVM call agenfda " Juan Quintela
2014-04-10 15:49 ` Alexander Graf
2014-04-10 15:52   ` Peter Maydell
2014-04-10 15:57     ` Alexander Graf
2014-04-10 16:16       ` Stuart Yoder
2014-04-11  7:46       ` Markus Armbruster
2014-04-11  9:17         ` Alexander Graf [this message]

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=5347B337.5010109@suse.de \
    --to=agraf@suse.de \
    --cc=afaerber@suse.de \
    --cc=aliguori@amazon.com \
    --cc=alistair.francis@xilinx.com \
    --cc=armbru@redhat.com \
    --cc=christoffer.dall@linaro.org \
    --cc=kvm@vger.kernel.org \
    --cc=peter.crosthwaite@xilinx.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stuart.yoder@freescale.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).