All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Alexander Graf <agraf@suse.de>,
	"qemu-devel@nongnu.org List" <qemu-devel@nongnu.org>,
	Blue Swirl <blauwirbel@gmail.com>,
	Paul Mackerras <paulus@samba.org>,
	anton@samba.org, David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] Re: [PATCH 15/15] Implement the bus structure for PAPR virtual IO
Date: Sun, 13 Feb 2011 10:52:47 -0600	[thread overview]
Message-ID: <4D580C5F.2060506@codemonkey.ws> (raw)
In-Reply-To: <1297613854.14982.656.camel@pasglop>

On 02/13/2011 10:17 AM, Benjamin Herrenschmidt wrote:
> On Sun, 2011-02-13 at 13:40 +0100, Alexander Graf wrote:
>    
>> We can surely move it to dynamic later on. I think the "proper" way
>> would be to populate a qdev bus and have the individual hypercall
>> receivers register themselves through -device creations. But Blue
>> really is the expert here :).
>>      
> Why would you want to go through a bus for all hcalls ? (ie including
> the ones that aren't device related ?). That doesn't quite "tick" but
> I'm sure I'm missing part of the picture here :-)
>    

A virtual bus is just an interface.  If all virtual devices that 
interact via hcalls would all reside on the same virtual bus, then 
having hypercalls registered through that interface makes sense because 
you can associate hypercalls with particular devices.  This means that 
you can automatically deregister on device removal and things like that.

But I don't think this will work out well.  I think treating the 
hypercalls as a simple dispatch table just like ioport would make sense.

Regards,

Anthony Liguori

> A simple dispatch table based approach is the most efficient and simple
> way to do that (after a switch/case) in my opinion, this is more/less
> what we have done internally, with a pair of calls for "modules" to
> register hcalls if they need to. The hcalls numbers are fixed and
> specified in sPAPR.
>
> BTW. We are still missing in this picture RTAS. I suppose David is still
> cleaning up those patches. Basically, we use a 5 instruction trampoline
> that calls a private h-call, the RTAS emulation is entirely in qemu.
> This has to be done that way for various reasons, but essentially RTAS
> under pHyp also more/less turns into private pHyp calls under the hood.
>
> Cheers,
> Ben.
>
>
>
>    

  reply	other threads:[~2011-02-13 16:52 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-12 14:54 [Qemu-devel] RFC: Implement emulation of pSeries logical partitions David Gibson
2011-02-12 14:54 ` [Qemu-devel] [PATCH 01/15] Add TAGS and *~ to .gitignore David Gibson
2011-02-12 14:54 ` [Qemu-devel] [PATCH 02/15] Clean up PowerPC SLB handling code David Gibson
2011-02-12 15:17   ` [Qemu-devel] " Alexander Graf
2011-02-12 14:54 ` [Qemu-devel] [PATCH 03/15] Allow qemu_devtree_setprop() to take arbitrary values David Gibson
2011-02-12 15:18   ` [Qemu-devel] " Alexander Graf
2011-02-12 14:54 ` [Qemu-devel] [PATCH 04/15] Add a hook to allow hypercalls to be emulated on PowerPC David Gibson
2011-02-12 15:19   ` [Qemu-devel] " Alexander Graf
2011-02-12 14:54 ` [Qemu-devel] [PATCH 05/15] Implement PowerPC slbmfee and slbmfev instructions David Gibson
2011-02-12 15:23   ` [Qemu-devel] " Alexander Graf
2011-02-13 12:46     ` David Gibson
2011-02-12 14:54 ` [Qemu-devel] [PATCH 06/15] Implement missing parts of the logic for the POWER PURR David Gibson
2011-02-12 15:25   ` [Qemu-devel] " Alexander Graf
2011-02-12 14:54 ` [Qemu-devel] [PATCH 07/15] Correct ppc popcntb logic, implement popcntw and popcntd David Gibson
2011-02-12 15:27   ` [Qemu-devel] " Alexander Graf
2011-02-12 14:54 ` [Qemu-devel] [PATCH 08/15] Clean up slb_lookup() function David Gibson
2011-02-12 15:30   ` [Qemu-devel] " Alexander Graf
2011-02-12 14:54 ` [Qemu-devel] [PATCH 09/15] Parse SDR1 on mtspr instead of at translate time David Gibson
2011-02-12 15:37   ` [Qemu-devel] " Alexander Graf
2011-02-13  9:02     ` David Gibson
2011-02-13 12:33       ` Alexander Graf
2011-02-13 12:52         ` David Gibson
2011-02-12 14:54 ` [Qemu-devel] [PATCH 10/15] Use "hash" more consistently in ppc mmu code David Gibson
2011-02-12 15:47   ` [Qemu-devel] " Alexander Graf
2011-02-12 14:54 ` [Qemu-devel] [PATCH 11/15] Better factor the ppc hash translation path David Gibson
2011-02-12 15:52   ` [Qemu-devel] " Alexander Graf
2011-02-12 14:54 ` [Qemu-devel] [PATCH 12/15] Support 1T segments on ppc David Gibson
2011-02-12 15:57   ` [Qemu-devel] " Alexander Graf
2011-02-13  9:34     ` David Gibson
2011-02-13 12:37       ` Alexander Graf
2011-02-13 13:38         ` David Gibson
2011-02-12 14:54 ` [Qemu-devel] [PATCH 13/15] Add POWER7 support for ppc David Gibson
2011-02-12 16:09   ` [Qemu-devel] " Alexander Graf
2011-02-13  9:39     ` David Gibson
2011-02-13 12:37       ` Alexander Graf
2011-02-12 14:54 ` [Qemu-devel] [PATCH 14/15] Start implementing pSeries logical partition machine David Gibson
2011-02-12 16:23   ` [Qemu-devel] " Alexander Graf
2011-02-12 16:40     ` Blue Swirl
2011-02-12 20:54       ` Benjamin Herrenschmidt
2011-02-12 14:54 ` [Qemu-devel] [PATCH 15/15] Implement the bus structure for PAPR virtual IO David Gibson
2011-02-12 16:47   ` [Qemu-devel] " Alexander Graf
2011-02-12 16:59     ` Blue Swirl
2011-02-12 21:00       ` Benjamin Herrenschmidt
2011-02-12 22:52         ` Blue Swirl
2011-02-12 23:15           ` Benjamin Herrenschmidt
2011-02-13  8:08             ` Blue Swirl
2011-02-13 11:12               ` David Gibson
2011-02-13 12:15                 ` Blue Swirl
2011-02-13 16:12                   ` Benjamin Herrenschmidt
2011-02-13 15:08                 ` Anthony Liguori
2011-02-13 15:56                   ` Alexander Graf
2011-02-13 16:46                     ` Anthony Liguori
2011-02-13 18:29                   ` Blue Swirl
2011-02-13 19:32                     ` Anthony Liguori
2011-02-13 23:33                     ` David Gibson
2011-02-13 23:30                   ` David Gibson
2011-02-13 12:31               ` Alexander Graf
2011-02-13 12:59                 ` Blue Swirl
2011-02-13 16:07               ` Benjamin Herrenschmidt
2011-02-13 16:48                 ` Anthony Liguori
2011-02-13 18:19                   ` Benjamin Herrenschmidt
2011-02-13 11:14             ` David Gibson
2011-02-13 12:40               ` Alexander Graf
2011-02-13 12:44                 ` David Gibson
2011-02-13 13:09                   ` Alexander Graf
2011-02-13 15:14                 ` Anthony Liguori
2011-02-13 16:17                 ` Benjamin Herrenschmidt
2011-02-13 16:52                   ` Anthony Liguori [this message]
2011-02-13 18:21                     ` Benjamin Herrenschmidt
2011-02-13 11:09     ` David Gibson
2011-02-13 12:38       ` Alexander Graf
2011-02-14  4:16 ` [Qemu-devel] RFC: Implement emulation of pSeries logical partitions FUJITA Tomonori
2011-02-14  4:16   ` FUJITA Tomonori

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=4D580C5F.2060506@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=agraf@suse.de \
    --cc=anton@samba.org \
    --cc=benh@kernel.crashing.org \
    --cc=blauwirbel@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=paulus@samba.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 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.