All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Chris Wright" <chrisw@redhat.com>,
	"Developers qemu-devel" <qemu-devel@nongnu.org>,
	"Andreas Färber" <afaerber@suse.de>,
	"KVM devel mailing list" <kvm@vger.kernel.org>,
	quintela@redhat.com
Subject: Re: [Qemu-devel] KVM call agenda for Tuesday 3
Date: Tue, 03 Jan 2012 08:02:19 -0600	[thread overview]
Message-ID: <4F030A6B.2060809@codemonkey.ws> (raw)
In-Reply-To: <CAFEAcA96vpCg0Ac087aWABOhU_-YM04Jp7sc9Bp1GK+=oCz18Q@mail.gmail.com>

On 01/03/2012 07:57 AM, Peter Maydell wrote:
> On 3 January 2012 13:37, Anthony Liguori<anthony@codemonkey.ws>  wrote:
>> For what you're getting at, you actually want to model the CPUs in QOM such
>> that you would have an ARM926 is-a ARMCPU is-a CPUCommon.
>>
>> Then you could have the beagle machine have a link<ARM926>.  If it always
>> has a single CPU, you make it a child<ARM926>  and the user can't change it.
>
> The CPU should always be a child of the board, surely, even if the user
> might want to use a different one? That's just basic composition.
> The links should be for "the CPU has two input IRQ lines" and so on.

Not in the PC world.

You buy a motherboard with an empty CPU socket and then purchase a CPU 
separately and plug it in.

link<> essentially models any type of socket whereas child<> basically means 
"soldered to the board or embedded in silicon".

It may be true for SoCs that CPUs are always child<> but that's not universal.

>
> (Beagle is an A8, incidentally.)
>
>>> For instance,
>>> in a fully QOM world, trying to run a beagle machine with (say) a 926
>>> CPU should fail to instantiate, because the 926 CPU won't have the right
>>> set of irq/gpio inputs and outputs that the beagle machine needs to
>>> connect up to. (This is the QOM equivalent of trying to ram a 486
>>> into a Pentium CPU socket.)
>>>
>>> I don't think we even have syntax for 2 at the moment except for the
>>> weird special case of "-cpu foo".
>>
>>
>> Yeah, it's still not clear to me how much we want to model CPUs in QOM.  We
>> could do it very simply and flat or model the individual CPUs as proper
>> types which lets you do fancier things with links.
>
> What I definitely want is that an ARM CPU should look like any other
> device in that it has input (and maybe output) GPIO lines, and (for
> MP cores) it exposes MemoryRegion(s) that the board (or SOC) maps.
> And instantiating and wiring up 926 (a "simple" unicore) should look
> pretty much the same at machine model level as wiring up an A9MP
> (a "complicated" multicore with built-in peripheral devices, interrupt
> controller, etc, which we'd presumably model as a QOM object which
> uses composition for all its peripherals and the "actual CPU").

I think I agree with all of this.

Regards,

Anthony Liguori

> -- PMM
>


WARNING: multiple messages have this Message-ID (diff)
From: Anthony Liguori <anthony@codemonkey.ws>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Chris Wright" <chrisw@redhat.com>,
	quintela@redhat.com,
	"Developers qemu-devel" <qemu-devel@nongnu.org>,
	"KVM devel mailing list" <kvm@vger.kernel.org>,
	"Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] KVM call agenda for Tuesday 3
Date: Tue, 03 Jan 2012 08:02:19 -0600	[thread overview]
Message-ID: <4F030A6B.2060809@codemonkey.ws> (raw)
In-Reply-To: <CAFEAcA96vpCg0Ac087aWABOhU_-YM04Jp7sc9Bp1GK+=oCz18Q@mail.gmail.com>

On 01/03/2012 07:57 AM, Peter Maydell wrote:
> On 3 January 2012 13:37, Anthony Liguori<anthony@codemonkey.ws>  wrote:
>> For what you're getting at, you actually want to model the CPUs in QOM such
>> that you would have an ARM926 is-a ARMCPU is-a CPUCommon.
>>
>> Then you could have the beagle machine have a link<ARM926>.  If it always
>> has a single CPU, you make it a child<ARM926>  and the user can't change it.
>
> The CPU should always be a child of the board, surely, even if the user
> might want to use a different one? That's just basic composition.
> The links should be for "the CPU has two input IRQ lines" and so on.

Not in the PC world.

You buy a motherboard with an empty CPU socket and then purchase a CPU 
separately and plug it in.

link<> essentially models any type of socket whereas child<> basically means 
"soldered to the board or embedded in silicon".

It may be true for SoCs that CPUs are always child<> but that's not universal.

>
> (Beagle is an A8, incidentally.)
>
>>> For instance,
>>> in a fully QOM world, trying to run a beagle machine with (say) a 926
>>> CPU should fail to instantiate, because the 926 CPU won't have the right
>>> set of irq/gpio inputs and outputs that the beagle machine needs to
>>> connect up to. (This is the QOM equivalent of trying to ram a 486
>>> into a Pentium CPU socket.)
>>>
>>> I don't think we even have syntax for 2 at the moment except for the
>>> weird special case of "-cpu foo".
>>
>>
>> Yeah, it's still not clear to me how much we want to model CPUs in QOM.  We
>> could do it very simply and flat or model the individual CPUs as proper
>> types which lets you do fancier things with links.
>
> What I definitely want is that an ARM CPU should look like any other
> device in that it has input (and maybe output) GPIO lines, and (for
> MP cores) it exposes MemoryRegion(s) that the board (or SOC) maps.
> And instantiating and wiring up 926 (a "simple" unicore) should look
> pretty much the same at machine model level as wiring up an A9MP
> (a "complicated" multicore with built-in peripheral devices, interrupt
> controller, etc, which we'd presumably model as a QOM object which
> uses composition for all its peripherals and the "actual CPU").

I think I agree with all of this.

Regards,

Anthony Liguori

> -- PMM
>

  reply	other threads:[~2012-01-03 14:02 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-02 12:09 KVM call agenda for Tuesday 3 Juan Quintela
2012-01-02 12:09 ` [Qemu-devel] " Juan Quintela
2012-01-02 13:46 ` Andreas Färber
2012-01-02 13:46   ` Andreas Färber
2012-01-02 14:11   ` Paolo Bonzini
2012-01-03  1:12     ` Anthony Liguori
2012-01-03  1:12       ` [Qemu-devel] " Anthony Liguori
2012-01-03  8:54       ` Paolo Bonzini
2012-01-03  8:54         ` [Qemu-devel] " Paolo Bonzini
2012-01-02 15:54   ` Peter Maydell
2012-01-02 15:54     ` [Qemu-devel] " Peter Maydell
2012-01-03  1:14     ` Anthony Liguori
2012-01-03  1:14       ` Anthony Liguori
2012-01-03 10:26       ` Peter Maydell
2012-01-03 10:26         ` Peter Maydell
2012-01-03 12:07         ` Alex Bradbury
2012-01-03 12:07           ` Alex Bradbury
2012-01-03 13:37         ` Anthony Liguori
2012-01-03 13:37           ` Anthony Liguori
2012-01-03 13:57           ` Peter Maydell
2012-01-03 13:57             ` Peter Maydell
2012-01-03 14:02             ` Anthony Liguori [this message]
2012-01-03 14:02               ` Anthony Liguori
2012-01-03 14:13               ` Peter Maydell
2012-01-03 14:13                 ` [Qemu-devel] " Peter Maydell
2012-01-03  1:04   ` Anthony Liguori
2012-01-03  1:04     ` Anthony Liguori
2012-01-03 13:52     ` Andreas Färber
2012-01-03 13:59       ` Anthony Liguori
2012-01-03  8:33 ` Stefan Hajnoczi
2012-01-03  8:33   ` [Qemu-devel] " Stefan Hajnoczi
2012-01-03 12:15   ` Dor Laor
2012-01-03 12:15     ` [Qemu-devel] " Dor Laor
2012-01-03 13:12     ` Stefan Hajnoczi
2012-01-03 13:12       ` [Qemu-devel] " Stefan Hajnoczi
2012-01-03 14:10       ` Andreas Färber
2012-01-03 14:10         ` [Qemu-devel] " Andreas Färber
2012-01-03 14:30       ` Vadim Rozenfeld
2012-01-03 14:30         ` [Qemu-devel] " Vadim Rozenfeld
2012-01-04  2:47       ` Cao,Bing Bu
2012-01-04  2:47         ` Cao,Bing Bu
2012-01-04 11:25         ` Stefan Hajnoczi
2012-01-04 11:25           ` Stefan Hajnoczi

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=4F030A6B.2060809@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=afaerber@suse.de \
    --cc=chrisw@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.