Re: [PATCH v4 00/39] Memory API, batch 2: PCI devices

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

 



On Mon, Aug 08, 2011 at 04:08:53PM +0300, 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.
> 
> Changes from v3:
>  - dropped virtio-pci config patch; will be fixed outside this patchset if
>    necessary
>  - minor style fixes
> 
> Changes from v2:
>  - added patch from Michael simplifying virtio-pci config setup
> 
> Changes from v1:
>  - cmd646 type fix
>  - folded a fixlet into its parent


For the series:

Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx>

> Avi Kivity (39):
>   memory: rename PORTIO_END to PORTIO_END_OF_LIST
>   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: convert 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
> 
>  exec-memory.h      |    5 +
>  exec.c             |   10 ++
>  hw/ac97.c          |   88 ++++++-----
>  hw/apb_pci.c       |    1 +
>  hw/bonito.c        |    1 +
>  hw/cirrus_vga.c    |  459 ++++++++++++++++-----------------------------------
>  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      |   29 ++--
>  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    |   13 +--
>  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    |   46 ++++--
>  hw/vga-isa.c       |   10 +-
>  hw/vga-pci.c       |   27 +---
>  hw/vga.c           |  178 +++++++-------------
>  hw/vga_int.h       |   18 +--
>  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 ++++++----
>  memory.h           |    2 +-
>  80 files changed, 1650 insertions(+), 2085 deletions(-)
> 
> -- 
> 1.7.5.3
--
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