qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Richard Henderson <rth@twiddle.net>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [PATCH 21/24] isa: add isa_address_space()
Date: Wed, 10 Aug 2011 21:44:31 +0300	[thread overview]
Message-ID: <4E42D18F.1010606@redhat.com> (raw)
In-Reply-To: <4E42B123.8070605@twiddle.net>

On 08/10/2011 07:26 PM, Richard Henderson wrote:
> On 08/10/2011 09:24 AM, Richard Henderson wrote:
> >  Of course, as far as I can see, this variable is only used by
> >  the VGA devices.  Surely we can arrange to pass down some address
> >  space during setup of the VGA?
>
> ... Which seems to be what you've done in patch 23.
>
> So what's the point of this patch?
>
>

Some more about this:

We have a few dual (or even tripe) interface devices, of which vga is an 
example.  This requires a common interface when we add a memory region 
to a device's bus.  Let's enumerate the options:

1. just ignore the parent bus

this is cpu_register_physical_memory()

2. pass the right MemoryRegion to the device

this series

3. Integrate qdev and the memory API

introduce qdev_add_memory(), have vga.c call that.

4. Have the specialized device constructor (isa-vga.c's vga_initfn() 
pass down a callback to the generaized device (vga_init_vbe()) that 
wraps the bus-specific memory registration function:

     static void isa_vga_add_region(void *opaque, ...)
     {
          ISAVGAState *d = opaque;

          isa_add_region(&d->dev, ...);
     }

     vga_initfn()
     {
         ...
         vga_init_vbe(s, isa_vga_add_region, d);
         ...
     }

1 and 2 are layering violations in that they don't allow bookkeeping by 
the specific bus.  3 allows it to some extent but I still feel it is 
wrong.  4 is correct in this sense but takes some work.

It may be that no bookkeeping is actually required and we can do 3, but 
that will have to wait until qdev/memory integration.  If not we'll 
switch to 4.

-- 
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

  parent reply	other threads:[~2011-08-10 18:44 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-08 17:06 [Qemu-devel] [PATCH 00/24] Memory API batch 4: more conversions Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 01/24] apb_pci: convert to memory API Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 02/24] apic: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 03/24] arm_gic: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 04/24] arm_sysctl: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 05/24] arm_timer: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 06/24] armv7m: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 07/24] gt64xxx.c: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 08/24] tusb6010: move declarations to new file tusb6010.h Avi Kivity
2011-08-09  7:51   ` Peter Maydell
2011-08-09  9:02     ` [Qemu-devel] [PATCH v1.1 " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 09/24] omap_gpmc/nseries/tusb6010: convert to memory API Avi Kivity
2011-08-08 17:43   ` Peter Maydell
2011-08-09  6:34     ` Avi Kivity
2011-08-09  7:37       ` Peter Maydell
2011-08-09  7:41         ` Avi Kivity
2011-08-09  8:07           ` Peter Maydell
2011-08-09  8:44             ` Avi Kivity
2011-08-09  8:56               ` Avi Kivity
2011-08-09  9:02                 ` [Qemu-devel] [PATCH v1.1 " Avi Kivity
2011-08-09  9:23                   ` Peter Maydell
2011-08-09  9:26                     ` Avi Kivity
2011-08-09  9:41                       ` Peter Maydell
2011-08-09 12:56                         ` Avi Kivity
2011-08-09 13:06                         ` [Qemu-devel] [PATCH v1.2 " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 10/24] onenand: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 11/24] pcie_host: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 12/24] ppc405_uc: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 13/24] ppc4xx_sdram: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 14/24] stellaris_enet: " Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 15/24] sysbus: add a variant of sysbus_init_mmio_cb with an unmap callback Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 16/24] sh_pci: convert to memory API Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 17/24] arm11mpcore: use sysbus_init_mmio_cb2 Avi Kivity
2011-08-12 13:23   ` Peter Maydell
2011-08-14 18:45     ` Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 18/24] versatile_pci: convert to memory API Avi Kivity
2011-08-11 16:20   ` Peter Maydell
2011-08-11 16:26     ` Avi Kivity
2011-08-11 16:29     ` [Qemu-devel] [PATCH v1.1 " Avi Kivity
2011-08-11 21:53       ` Peter Maydell
2011-08-14 18:31         ` Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 19/24] ppce500_pci: convert to sysbus_init_mmio_cb2() Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 20/24] sysbus: remove sysbus_init_mmio_cb() Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 21/24] isa: add isa_address_space() Avi Kivity
2011-08-10 16:24   ` Richard Henderson
2011-08-10 16:26     ` Richard Henderson
2011-08-10 16:35       ` Avi Kivity
2011-08-10 16:38         ` Avi Kivity
2011-08-10 18:44       ` Avi Kivity [this message]
2011-08-10 16:32     ` Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 22/24] pci: add pci_address_space() Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 23/24] vga: drop get_system_memory() from vga devices and derivatives Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 24/24] 440fx: fix PAM, PCI holes Avi Kivity

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=4E42D18F.1010606@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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).