qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Avi Kivity <avi@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [RFC v4 00/58] Memory API
Date: Tue, 19 Jul 2011 08:09:08 -0500	[thread overview]
Message-ID: <4E2581F4.5090004@codemonkey.ws> (raw)
In-Reply-To: <1310901265-32051-1-git-send-email-avi@redhat.com>

On 07/17/2011 06:13 AM, Avi Kivity wrote:
> New in this version:
>    MemoryRegionOps gained .old_mmio and .old_portio members, which allow
>    reusing old-style callbacks with the new API.  All uses were converted,
>    except for eepro100.c, which uses the same MemoryRegionOps for both
>    portio and mmio.  Some intermediate patches do introduce dispatching
>    callbacks, but they are removed later.
>
> Caveats:
> - some devices still grab a global memory region instead of inheriting
>    it from their bus.  Seen in the code as #include "exec-memory.h"

Could you write up a quick document on how to use this new api for docs/?

There's bits I don't like about the interface but I think it's a huge 
improvement over what we have now so I'm inclined to commit once it 
includes documentation.

Regards,

Anthony Liguori

>
> Avi Kivity (58):
>    Hierarchical memory region API
>    memory: implement dirty tracking
>    memory: merge adjacent segments of a single memory region
>    Internal interfaces for memory API
>    memory: abstract address space operations
>    memory: rename MemoryRegion::has_ram_addr to ::terminates
>    memory: late initialization of ram_addr
>    memory:  I/O address space support
>    memory: add backward compatibility for old portio registration
>    memory: add backward compatibility for old mmio registration
>    memory: add ioeventfd support
>    exec.c: initialize memory map
>    ioport: register ranges by byte aligned addresses always
>    pc: grab system_memory
>    pc: convert pc_memory_init() to memory API
>    pc: move global memory map out of pc_init1() and into its callers
>    pci: pass address space to pci bus when created
>    pci: add MemoryRegion based BAR management API
>    sysbus: add MemoryRegion based memory management API
>    usb-ohci: convert to MemoryRegion
>    pci: add API to get a BAR's mapped address
>    vmsvga: don't remember pci BAR address in callback any more
>    vga: convert vga and its derivatives to the memory API
>    cirrus: simplify mmio BAR access functions
>    cirrus: simplify bitblt BAR access functions
>    cirrus: simplify vga window mmio access functions
>    vga: simplify vga window mmio access functions
>    cirrus: simplify linear framebuffer access functions
>    Integrate I/O memory regions into qemu
>    exec.c: fix initialization of system I/O memory region
>    pci: pass I/O address space to new PCI bus
>    pci: allow I/O BARs to be registered with pci_register_bar_region()
>    rtl8139: convert to memory API
>    ac97: convert to memory API
>    e1000: convert to memory API
>    eepro100: convert to memory API
>    es1370: convert to memory API
>    ide: convert to memory API
>    ivshmem: convert to memory API
>    virtio-pci: convert to memory API
>    ahci: convert to memory API
>    intel-hda: convert to memory API
>    lsi53c895a: convert to memory API
>    ppc: convert to memory API
>    ne2000: convert to memory API
>    pcnet: convert to memory API
>    i6300esb: convert to memory API
>    isa-mmio: concert to memory API
>    sun4u: convert to memory API
>    ehci: convert to memory API
>    uhci: convert to memory API
>    xen-platform: convert to memory API
>    msix: convert to memory API
>    pci: remove pci_register_bar_simple()
>    pci: convert pci rom to memory API
>    pci: remove pci_register_bar()
>    pci: fold BAR mapping function into its caller
>    pci: rename pci_register_bar_region() to pci_register_bar()
>
>   Makefile.target    |    1 +
>   exec-memory.h      |   28 ++
>   exec.c             |   29 ++
>   hw/ac97.c          |   88 +++--
>   hw/apb_pci.c       |    3 +
>   hw/bonito.c        |    5 +-
>   hw/cirrus_vga.c    |  460 +++++++---------------
>   hw/cuda.c          |    6 +-
>   hw/e1000.c         |  113 +++----
>   hw/eepro100.c      |  181 ++-------
>   hw/es1370.c        |   43 ++-
>   hw/escc.c          |   42 +-
>   hw/escc.h          |    2 +-
>   hw/grackle_pci.c   |    9 +-
>   hw/gt64xxx.c       |    6 +-
>   hw/heathrow_pic.c  |   29 +-
>   hw/ide.h           |    2 +-
>   hw/ide/ahci.c      |   31 +-
>   hw/ide/ahci.h      |    2 +-
>   hw/ide/cmd646.c    |  204 +++++++----
>   hw/ide/ich.c       |    3 +-
>   hw/ide/macio.c     |   36 +-
>   hw/ide/pci.c       |   25 +-
>   hw/ide/pci.h       |   19 +-
>   hw/ide/piix.c      |   63 +++-
>   hw/ide/via.c       |   64 +++-
>   hw/intel-hda.c     |   35 +-
>   hw/isa.h           |    2 +
>   hw/isa_mmio.c      |   30 +-
>   hw/ivshmem.c       |  158 +++-----
>   hw/lance.c         |   31 +-
>   hw/lsi53c895a.c    |  257 +++----------
>   hw/mac_dbdma.c     |   32 +-
>   hw/mac_dbdma.h     |    4 +-
>   hw/mac_nvram.c     |   39 +--
>   hw/macio.c         |   73 ++--
>   hw/msix.c          |   64 +--
>   hw/msix.h          |    6 +-
>   hw/ne2000-isa.c    |   14 +-
>   hw/ne2000.c        |   77 +++--
>   hw/ne2000.h        |    8 +-
>   hw/openpic.c       |   81 ++--
>   hw/openpic.h       |    2 +-
>   hw/pc.c            |   62 ++-
>   hw/pc.h            |   11 +-
>   hw/pc_piix.c       |   24 +-
>   hw/pci.c           |  104 +++---
>   hw/pci.h           |   30 +-
>   hw/pci_host.h      |    1 +
>   hw/pci_internals.h |    2 +
>   hw/pcnet-pci.c     |   74 +++--
>   hw/pcnet.h         |    4 +-
>   hw/piix_pci.c      |   17 +-
>   hw/ppc4xx_pci.c    |    6 +-
>   hw/ppc_mac.h       |   30 +-
>   hw/ppc_newworld.c  |   35 +-
>   hw/ppc_oldworld.c  |   28 +-
>   hw/ppc_prep.c      |    3 +-
>   hw/ppce500_pci.c   |    7 +-
>   hw/prep_pci.c      |    9 +-
>   hw/prep_pci.h      |    5 +-
>   hw/qxl-render.c    |    2 +-
>   hw/qxl.c           |  125 +++----
>   hw/qxl.h           |    6 +-
>   hw/rtl8139.c       |   70 ++--
>   hw/sh_pci.c        |    6 +-
>   hw/sun4u.c         |   53 ++--
>   hw/sysbus.c        |   27 ++-
>   hw/sysbus.h        |    3 +
>   hw/unin_pci.c      |   18 +-
>   hw/usb-ehci.c      |   36 +--
>   hw/usb-ohci.c      |   42 +--
>   hw/usb-uhci.c      |   42 ++-
>   hw/versatile_pci.c |    2 +
>   hw/vga-isa-mm.c    |   45 ++-
>   hw/vga-isa.c       |   11 +-
>   hw/vga-pci.c       |   27 +--
>   hw/vga.c           |  178 +++------
>   hw/vga_int.h       |   19 +-
>   hw/virtio-pci.c    |   86 ++---
>   hw/virtio-pci.h    |    3 +-
>   hw/vmware_vga.c    |  153 ++++----
>   hw/wdt_i6300esb.c  |   43 ++-
>   hw/xen_platform.c  |   82 +++--
>   ioport.c           |    4 +-
>   memory.c           | 1092 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>   memory.h           |  251 ++++++++++++
>   87 files changed, 3205 insertions(+), 2080 deletions(-)
>   create mode 100644 exec-memory.h
>   create mode 100644 memory.c
>   create mode 100644 memory.h
>

  parent reply	other threads:[~2011-07-19 13:09 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-17 11:13 [Qemu-devel] [RFC v4 00/58] Memory API Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 01/58] Hierarchical memory region API Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 02/58] memory: implement dirty tracking Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 03/58] memory: merge adjacent segments of a single memory region Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 04/58] Internal interfaces for memory API Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 05/58] memory: abstract address space operations Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 06/58] memory: rename MemoryRegion::has_ram_addr to ::terminates Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 07/58] memory: late initialization of ram_addr Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 08/58] memory: I/O address space support Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 09/58] memory: add backward compatibility for old portio registration Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 10/58] memory: add backward compatibility for old mmio registration Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 11/58] memory: add ioeventfd support Avi Kivity
2011-07-20 17:29   ` Blue Swirl
2011-07-20 17:31     ` Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 12/58] exec.c: initialize memory map Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 13/58] ioport: register ranges by byte aligned addresses always Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 14/58] pc: grab system_memory Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 15/58] pc: convert pc_memory_init() to memory API Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 16/58] pc: move global memory map out of pc_init1() and into its callers Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 17/58] pci: pass address space to pci bus when created Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 18/58] pci: add MemoryRegion based BAR management API Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 19/58] sysbus: add MemoryRegion based memory " Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 20/58] usb-ohci: convert to MemoryRegion Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 21/58] pci: add API to get a BAR's mapped address Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 22/58] vmsvga: don't remember pci BAR address in callback any more Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 23/58] vga: convert vga and its derivatives to the memory API Avi Kivity
2011-07-20 14:05   ` Jan Kiszka
2011-07-20 14:40     ` Avi Kivity
2011-07-20 14:45       ` Jan Kiszka
2011-07-20 14:48         ` Avi Kivity
2011-07-20 14:52           ` Jan Kiszka
2011-07-20 14:55             ` Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 24/58] cirrus: simplify mmio BAR access functions Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 25/58] cirrus: simplify bitblt " Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 26/58] cirrus: simplify vga window mmio " Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 27/58] vga: " Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 28/58] cirrus: simplify linear framebuffer " Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 29/58] Integrate I/O memory regions into qemu Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 30/58] exec.c: fix initialization of system I/O memory region Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 31/58] pci: pass I/O address space to new PCI bus Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 32/58] pci: allow I/O BARs to be registered with pci_register_bar_region() Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 33/58] rtl8139: convert to memory API Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 34/58] ac97: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 35/58] e1000: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 36/58] eepro100: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 37/58] es1370: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 38/58] ide: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 39/58] ivshmem: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 40/58] virtio-pci: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 41/58] ahci: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 42/58] intel-hda: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 43/58] lsi53c895a: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 44/58] ppc: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 45/58] ne2000: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 46/58] pcnet: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 47/58] i6300esb: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 48/58] isa-mmio: concert " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 49/58] sun4u: convert " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 50/58] ehci: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 51/58] uhci: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 52/58] xen-platform: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 53/58] msix: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 54/58] pci: remove pci_register_bar_simple() Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 55/58] pci: convert pci rom to memory API Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 56/58] pci: remove pci_register_bar() Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 57/58] pci: fold BAR mapping function into its caller Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 58/58] pci: rename pci_register_bar_region() to pci_register_bar() Avi Kivity
2011-07-19 13:09 ` Anthony Liguori [this message]
2011-07-19 13:27   ` [Qemu-devel] [RFC v4 00/58] Memory API Avi Kivity
2011-07-19 14:50     ` Anthony Liguori
2011-07-19 16:05       ` Avi Kivity
2011-07-19 16:10         ` Avi Kivity
2011-07-19 20:51           ` Anthony Liguori
2011-07-19 21:03             ` Sasha Levin
2011-07-20  2:53               ` Anthony Liguori
2011-07-20  6:10                 ` Sasha Levin
2011-07-20  8:12                   ` Avi Kivity
2011-07-20 12:12                   ` Anthony Liguori
2011-07-20  8:10             ` Avi Kivity
2011-07-20 14:31               ` Anthony Liguori
2011-07-20 14:45                 ` Avi Kivity
2011-07-19 13:56 ` Michael S. Tsirkin
2011-07-19 13:57   ` Avi Kivity
2011-07-19 17:01   ` Jan Kiszka
2011-07-19 17:14     ` Avi Kivity
2011-07-19 17:30       ` Jan Kiszka
2011-07-20  8:13         ` Avi Kivity
2011-07-20 11:20           ` Jan Kiszka
2011-07-20 11:59             ` Avi Kivity
2011-07-20 11:43           ` Jan Kiszka
2011-07-20 11:57             ` Avi Kivity
2011-07-20 13:57               ` Jan Kiszka
2011-07-20 14:32                 ` Avi Kivity
2011-07-20 14:37                   ` Michael S. Tsirkin
2011-07-20 14:42                     ` Jan Kiszka
2011-07-20 14:54                     ` Avi Kivity
2011-07-20 15:58                       ` Jan Kiszka
2011-07-20 16:02                         ` Avi Kivity
2011-07-20 16:13                           ` Jan Kiszka
2011-07-20 16:19                             ` Avi Kivity
2011-07-20 16:10                       ` Michael S. Tsirkin
2011-07-20 16:52                         ` Avi Kivity
2011-07-20 17:06                           ` Michael S. Tsirkin
2011-07-20 16:53 ` 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=4E2581F4.5090004@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=avi@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).