From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:37739) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QpMQI-0006j3-4t for qemu-devel@nongnu.org; Fri, 05 Aug 2011 11:34:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QpMQG-0001Gh-Ig for qemu-devel@nongnu.org; Fri, 05 Aug 2011 11:34:54 -0400 Received: from mail-pz0-f42.google.com ([209.85.210.42]:61788) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QpMQF-0001GB-JO for qemu-devel@nongnu.org; Fri, 05 Aug 2011 11:34:52 -0400 Received: by pzk37 with SMTP id 37so4813986pzk.29 for ; Fri, 05 Aug 2011 08:34:47 -0700 (PDT) Message-ID: <4E3C0D93.40409@codemonkey.ws> Date: Fri, 05 Aug 2011 10:34:43 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1312463195-13605-1-git-send-email-avi@redhat.com> In-Reply-To: <1312463195-13605-1-git-send-email-avi@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3 00/39] Memory API, batch 2: PCI devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, "Michael S. Tsirkin" 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 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(-) >