Re: [Qemu-devel] [PATCH v3 00/39] Memory API, batch 2: PCI devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/04/2011 08:05 AM, Avi Kivity wrote:
This is a mostly mindless conversion of all QEMU PCI devices to the memory API.
After this patchset is applied, it is no longer possible to create a PCI device
using the old API.

An immediate benefit is that PCI BARs that overlap each other are now handled
correctly: currently, the sequence

   map BAR 0
   map BAR 1 at an overlapping address
   unmap either BAR 0 or BAR 1

will leave a hole where the overlap exists.  With the patchset, the memory map
is restored correctly.

Note that overlaps of PCI BARs with memory or non-PCI resources are still not
resolved correctly; this will be fixed later on.

The vga patches have ugly intermediate states; however the result is fairly clean.

This patchset should be merged after

   memory: synchronize dirty bitmap before unmapping a range
   memory: use signed arithmetic

I'll merge these two patches ASAP btw.

The whole series is awesome. The mechanical patches are simple enough that it was taking longer to write the response than to review them so for anything I haven't explicitly responded to,

Reviewed-by: Anthony Liguori <aliguori@xxxxxxxxxx>

Once you update the few cosmetic issues and correct the virtio patch, I'll apply this series.

Regards,

Anthony Liguori


though there's no hard dependency.

Changes from v2:
  - added patch from Michael simplifying virtio-pci config setup

Changes from v1:
  - cmd646 type fix
  - folded a fixlet into its parent

Avi Kivity (38):
   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
   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()
   pci: remove support for pre memory API BARs

Michael S. Tsirkin (1):
   virtio-pci: get config on init

  exec-memory.h      |    2 +
  exec.c             |   10 ++
  hw/ac97.c          |   88 ++++++-----
  hw/apb_pci.c       |    1 +
  hw/bonito.c        |    1 +
  hw/cirrus_vga.c    |  458 ++++++++++++++++-----------------------------------
  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   |    8 +-
  hw/gt64xxx.c       |    4 +-
  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.h            |    4 +-
  hw/pc_piix.c       |    6 +-
  hw/pci.c           |  133 +++++-----------
  hw/pci.h           |   26 ++--
  hw/pci_internals.h |    3 +-
  hw/pcnet-pci.c     |   74 +++++----
  hw/pcnet.h         |    4 +-
  hw/piix_pci.c      |   14 +-
  hw/ppc4xx_pci.c    |    1 +
  hw/ppc_mac.h       |   27 ++--
  hw/ppc_newworld.c  |   34 ++--
  hw/ppc_oldworld.c  |   27 ++--
  hw/ppc_prep.c      |    2 +-
  hw/ppce500_pci.c   |    7 +-
  hw/prep_pci.c      |    8 +-
  hw/prep_pci.h      |    4 +-
  hw/qxl-render.c    |    2 +-
  hw/qxl.c           |  129 ++++++----------
  hw/qxl.h           |    6 +-
  hw/rtl8139.c       |   70 ++++----
  hw/sh_pci.c        |    4 +-
  hw/sun4u.c         |   53 +++----
  hw/unin_pci.c      |   16 ++-
  hw/usb-ehci.c      |   36 +---
  hw/usb-ohci.c      |    2 +-
  hw/usb-uhci.c      |   41 +++--
  hw/versatile_pci.c |    2 +-
  hw/vga-isa-mm.c    |   45 ++++--
  hw/vga-isa.c       |   11 +-
  hw/vga-pci.c       |   27 +---
  hw/vga.c           |  179 ++++++++-------------
  hw/vga_int.h       |   18 +--
  hw/virtio-pci.c    |   93 +++++------
  hw/virtio-pci.h    |    3 +-
  hw/vmware_vga.c    |  153 +++++++++---------
  hw/wdt_i6300esb.c  |   43 ++++--
  hw/xen_platform.c  |   83 ++++++----
  79 files changed, 1658 insertions(+), 2082 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux