Paolo Bonzini <pbonz...@redhat.com> writes: > Il 04/07/2013 17:12, Paolo Bonzini ha scritto: >> Anthony, >> >> the following changes since commit 1acd5a373905ddb28957842256a038956941f332: >> >> Merge remote-tracking branch 'agraf/ppc-for-upstream' into staging >> (2013-07-01 09:03:04 -0500) >> >> are available in the git repository at: >> >> >> git://github.com/bonzini/qemu.git iommu-for-anthony >> >> for you to fetch changes up to 28bb1ad4daef9949fc2c3f66879c2c0f0673df04: >> >> exec: change some APIs to take AddressSpaceDispatch (2013-07-04 16:29:06 >> +0200) >> >> This is a pretty large pull request that includes: >> >> 1) Jan's refactoring of ioport access, which is now dispatched using >> the memory core >> >> 2) region ownership, where all regions are attached to an Object. This >> is a prerequisite for memory hot-unplug, among other things. >> >> 3) RCU preparatory patches, where all data structures use "copy on update" >> even though they are still read under the BQL. >> >> Everything else is delayed to 1.7---at least as far as I'm concerned: >> since this subsystem is "community maintained", other people may of course >> submit more stuff from this point on. > > I forgot some Reviewed-bys, so the new commit is > c7086b4a237520d2bbe5146d8b1ace1894c2b2bf.
Pulled, thanks. In the future, please send a v2 when this happens. My scripts scan the pull request message and find the "up to XXXXX". It then determines whether the merge has been processed by searching for a commit with a head of "XXXXX". Regards, Anthony Liguori > > Paolo > >> Paolo >> ---------------------------------------------------------------- >> Jan Kiszka (15): >> adlib: replace register_ioport* >> applesmc: replace register_ioport* >> wdt_ib700: replace register_ioport* >> i82374: replace register_ioport* >> prep: replace register_ioport* >> vt82c686: replace register_ioport* >> Privatize register_ioport_read/write >> isa: implement isa_is_ioport_assigned via memory_region_find >> vmware-vga: Accept unaligned I/O accesses >> xen: Mark fixed platform I/O as unaligned >> ioport: Switch dispatching to memory core layer >> ioport: Remove unused old dispatching services >> vmport: Disentangle read handler type from portio >> ioport: Move portio types to ioport.h >> qom: Use atomics for object refcounting >> >> Liu Ping Fan (1): >> exec: change well-known physical sections to macros >> >> Paolo Bonzini (50): >> int128: optimize and add test cases >> scsi: keep device alive while it has requests >> dma: keep a device alive while it has SGLists >> memory: add owner argument to initialization functions >> memory: destroy phys_sections one by one >> exec: simplify destruction of the phys map >> memory: add getter for owner >> memory: add ref/unref >> memory: introduce memory_region_present >> memory: add ref/unref calls >> exec: check MRU in qemu_ram_addr_from_host >> exec: move qemu_ram_addr_from_host_nofail to cputlb.c >> memory: return MemoryRegion from qemu_ram_addr_from_host >> exec: reorganize address_space_map >> memory: ref/unref memory across address_space_map/unmap >> escc: rename struct to ESCCState >> vga: pass owner to vga_init >> vga: pass owner to vga_common_init >> vga: pass owner to cirrus_init_common >> vga: pass owner to vga_init_vbe >> vga: pass owner to vga_init_io >> vga: set owner in vga_update_memory_access >> ne2000: pass device to ne2000_setup_io, use it as owner >> vfio: pass device to vfio_mmap_bar and use it to set owner >> spapr_iommu: pass device to spapr_tce_new_table and use it to set owner >> pam: pass device to init_pam and use it to set owner >> piolist: add owner argument to initialization functions and pass >> devices >> hw/a*: pass owner to memory_region_init* functions >> hw/block: pass owner to memory_region_init* functions >> hw/c*: pass owner to memory_region_init* functions >> hw/d*: pass owner to memory_region_init* functions >> hw/gpio: pass owner to memory_region_init* functions >> hw/i*: pass owner to memory_region_init* functions >> hw/m*: pass owner to memory_region_init* functions >> hw/n*: pass owner to memory_region_init* functions >> hw/p*: pass owner to memory_region_init* functions >> hw/s*: pass owner to memory_region_init* functions >> hw/t*: pass owner to memory_region_init* functions >> hw/[u-x]*: pass owner to memory_region_init* functions >> add a header file for atomic operations >> memory: access FlatView from a local variable >> memory: use a new FlatView pointer on every topology update >> memory: add reference counting to FlatView >> exec: separate current memory map from the one being built >> memory: move MemoryListener declaration earlier >> exec: move listener from AddressSpaceDispatch to AddressSpace >> exec: separate current radix tree from the one being built >> exec: put memory map in AddressSpaceDispatch >> exec: remove cur_map >> exec: change some APIs to take AddressSpaceDispatch >> >> cputlb.c | 11 + >> dma-helpers.c | 6 +- >> docs/atomics.txt | 352 +++++++++++++++++++++++++ >> exec.c | 425 >> ++++++++++++++++--------------- >> hw/acpi/core.c | 9 +- >> hw/acpi/ich9.c | 10 +- >> hw/acpi/piix4.c | 23 +- >> hw/alpha/typhoon.c | 21 +- >> hw/arm/armv7m.c | 10 +- >> hw/arm/exynos4210.c | 12 +- >> hw/arm/highbank.c | 8 +- >> hw/arm/integratorcp.c | 13 +- >> hw/arm/kzm.c | 6 +- >> hw/arm/mainstone.c | 2 +- >> hw/arm/musicpal.c | 24 +- >> hw/arm/omap1.c | 52 ++-- >> hw/arm/omap2.c | 16 +- >> hw/arm/omap_sx1.c | 14 +- >> hw/arm/palm.c | 10 +- >> hw/arm/pxa2xx.c | 34 +-- >> hw/arm/pxa2xx_gpio.c | 2 +- >> hw/arm/pxa2xx_pic.c | 2 +- >> hw/arm/realview.c | 8 +- >> hw/arm/spitz.c | 4 +- >> hw/arm/stellaris.c | 8 +- >> hw/arm/strongarm.c | 20 +- >> hw/arm/tosa.c | 2 +- >> hw/arm/versatilepb.c | 5 +- >> hw/arm/vexpress.c | 12 +- >> hw/arm/xilinx_zynq.c | 4 +- >> hw/audio/ac97.c | 6 +- >> hw/audio/adlib.c | 20 +- >> hw/audio/cs4231.c | 3 +- >> hw/audio/cs4231a.c | 3 +- >> hw/audio/es1370.c | 2 +- >> hw/audio/intel-hda.c | 2 +- >> hw/audio/marvell_88w8618.c | 2 +- >> hw/audio/milkymist-ac97.c | 2 +- >> hw/audio/pcspk.c | 2 +- >> hw/audio/pl041.c | 2 +- >> hw/block/fdc.c | 7 +- >> hw/block/nvme.c | 3 +- >> hw/block/onenand.c | 10 +- >> hw/block/pc_sysfw.c | 6 +- >> hw/block/pflash_cfi01.c | 3 +- >> hw/block/pflash_cfi02.c | 8 +- >> hw/char/cadence_uart.c | 2 +- >> hw/char/debugcon.c | 2 +- >> hw/char/escc.c | 36 +-- >> hw/char/etraxfs_ser.c | 3 +- >> hw/char/exynos4210_uart.c | 4 +- >> hw/char/grlib_apbuart.c | 2 +- >> hw/char/imx_serial.c | 3 +- >> hw/char/lm32_uart.c | 3 +- >> hw/char/mcf_uart.c | 2 +- >> hw/char/milkymist-uart.c | 2 +- >> hw/char/omap_uart.c | 2 +- >> hw/char/parallel.c | 2 +- >> hw/char/pl011.c | 2 +- >> hw/char/serial-isa.c | 2 +- >> hw/char/serial-pci.c | 7 +- >> hw/char/serial.c | 4 +- >> hw/char/sh_serial.c | 6 +- >> hw/char/tpci200.c | 12 +- >> hw/char/xilinx_uartlite.c | 4 +- >> hw/core/empty_slot.c | 2 +- >> hw/core/loader.c | 1 + >> hw/cpu/a15mpcore.c | 3 +- >> hw/cpu/a9mpcore.c | 2 +- >> hw/cpu/arm11mpcore.c | 6 +- >> hw/cpu/icc_bus.c | 2 +- >> hw/cris/axis_dev88.c | 8 +- >> hw/display/cirrus_vga.c | 28 +- >> hw/display/exynos4210_fimd.c | 8 +- >> hw/display/framebuffer.c | 12 +- >> hw/display/g364fb.c | 4 +- >> hw/display/jazz_led.c | 2 +- >> hw/display/milkymist-tmu2.c | 2 +- >> hw/display/milkymist-vgafb.c | 2 +- >> hw/display/omap_dss.c | 10 +- >> hw/display/omap_lcdc.c | 2 +- >> hw/display/pl110.c | 2 +- >> hw/display/pxa2xx_lcd.c | 2 +- >> hw/display/qxl.c | 26 +- >> hw/display/sm501.c | 8 +- >> hw/display/tc6393xb.c | 4 +- >> hw/display/tcx.c | 18 +- >> hw/display/vga-isa-mm.c | 8 +- >> hw/display/vga-isa.c | 6 +- >> hw/display/vga-pci.c | 13 +- >> hw/display/vga.c | 23 +- >> hw/display/vga_int.h | 8 +- >> hw/display/vmware_vga.c | 14 +- >> hw/dma/etraxfs_dma.c | 2 +- >> hw/dma/i82374.c | 18 +- >> hw/dma/i8257.c | 4 +- >> hw/dma/omap_dma.c | 4 +- >> hw/dma/pl080.c | 2 +- >> hw/dma/pl330.c | 3 +- >> hw/dma/puv3_dma.c | 2 +- >> hw/dma/pxa2xx_dma.c | 2 +- >> hw/dma/rc4030.c | 4 +- >> hw/dma/sparc32_dma.c | 3 +- >> hw/dma/sun4m_iommu.c | 2 +- >> hw/dma/xilinx_axidma.c | 2 +- >> hw/gpio/omap_gpio.c | 6 +- >> hw/gpio/pl061.c | 2 +- >> hw/gpio/puv3_gpio.c | 2 +- >> hw/gpio/zaurus.c | 2 +- >> hw/i2c/bitbang_i2c.c | 2 +- >> hw/i2c/exynos4210_i2c.c | 4 +- >> hw/i2c/omap_i2c.c | 2 +- >> hw/i2c/pm_smbus.c | 3 +- >> hw/i2c/versatile_i2c.c | 2 +- >> hw/i386/kvm/apic.c | 2 +- >> hw/i386/kvm/i8254.c | 2 +- >> hw/i386/kvm/i8259.c | 4 +- >> hw/i386/kvm/ioapic.c | 2 +- >> hw/i386/kvm/pci-assign.c | 24 +- >> hw/i386/kvmvapic.c | 7 +- >> hw/i386/pc.c | 14 +- >> hw/i386/pc_piix.c | 2 +- >> hw/i386/pc_q35.c | 2 +- >> hw/ide/ahci.c | 9 +- >> hw/ide/cmd646.c | 13 +- >> hw/ide/macio.c | 6 +- >> hw/ide/mmio.c | 4 +- >> hw/ide/piix.c | 8 +- >> hw/ide/via.c | 8 +- >> hw/input/milkymist-softusb.c | 6 +- >> hw/input/pckbd.c | 8 +- >> hw/input/pl050.c | 2 +- >> hw/input/pxa2xx_keypad.c | 2 +- >> hw/intc/apic.c | 2 +- >> hw/intc/arm_gic.c | 9 +- >> hw/intc/arm_gic_kvm.c | 6 +- >> hw/intc/armv7m_nvic.c | 7 +- >> hw/intc/etraxfs_pic.c | 3 +- >> hw/intc/exynos4210_combiner.c | 2 +- >> hw/intc/exynos4210_gic.c | 8 +- >> hw/intc/grlib_irqmp.c | 2 +- >> hw/intc/heathrow_pic.c | 2 +- >> hw/intc/i8259.c | 6 +- >> hw/intc/imx_avic.c | 3 +- >> hw/intc/ioapic.c | 3 +- >> hw/intc/omap_intc.c | 4 +- >> hw/intc/openpic.c | 6 +- >> hw/intc/openpic_kvm.c | 2 +- >> hw/intc/pl190.c | 2 +- >> hw/intc/puv3_intc.c | 2 +- >> hw/intc/realview_gic.c | 3 +- >> hw/intc/sh_intc.c | 6 +- >> hw/intc/slavio_intctl.c | 5 +- >> hw/intc/xilinx_intc.c | 3 +- >> hw/isa/apm.c | 2 +- >> hw/isa/i82378.c | 6 +- >> hw/isa/isa-bus.c | 2 +- >> hw/isa/isa_mmio.c | 2 +- >> hw/isa/lpc_ich9.c | 13 +- >> hw/isa/pc87312.c | 2 +- >> hw/isa/vt82c686.c | 42 +-- >> hw/lm32/lm32_boards.c | 4 +- >> hw/lm32/milkymist.c | 2 +- >> hw/m68k/an5206.c | 4 +- >> hw/m68k/dummy_m68k.c | 2 +- >> hw/m68k/mcf5206.c | 2 +- >> hw/m68k/mcf5208.c | 8 +- >> hw/m68k/mcf_intc.c | 2 +- >> hw/microblaze/petalogix_ml605_mmu.c | 4 +- >> hw/microblaze/petalogix_s3adsp1800_mmu.c | 4 +- >> hw/mips/gt64xxx_pci.c | 2 +- >> hw/mips/mips_fulong2e.c | 4 +- >> hw/mips/mips_jazz.c | 12 +- >> hw/mips/mips_malta.c | 10 +- >> hw/mips/mips_mipssim.c | 4 +- >> hw/mips/mips_r4k.c | 6 +- >> hw/misc/a9scu.c | 3 +- >> hw/misc/applesmc.c | 50 +++- >> hw/misc/arm_l2x0.c | 3 +- >> hw/misc/arm_sysctl.c | 3 +- >> hw/misc/debugexit.c | 2 +- >> hw/misc/eccmemctl.c | 4 +- >> hw/misc/exynos4210_pmu.c | 4 +- >> hw/misc/imx_ccm.c | 3 +- >> hw/misc/ivshmem.c | 8 +- >> hw/misc/lm32_sys.c | 3 +- >> hw/misc/macio/cuda.c | 2 +- >> hw/misc/macio/mac_dbdma.c | 2 +- >> hw/misc/macio/macio.c | 8 +- >> hw/misc/milkymist-hpdmc.c | 2 +- >> hw/misc/milkymist-pfpu.c | 2 +- >> hw/misc/mst_fpga.c | 2 +- >> hw/misc/omap_gpmc.c | 8 +- >> hw/misc/omap_l4.c | 2 +- >> hw/misc/omap_sdrc.c | 2 +- >> hw/misc/omap_tap.c | 2 +- >> hw/misc/pc-testdev.c | 8 +- >> hw/misc/pci-testdev.c | 4 +- >> hw/misc/puv3_pm.c | 2 +- >> hw/misc/pvpanic.c | 2 +- >> hw/misc/pxa2xx_pcmcia.c | 6 +- >> hw/misc/slavio_misc.c | 16 +- >> hw/misc/vfio.c | 37 +-- >> hw/misc/vmport.c | 6 +- >> hw/misc/zynq_slcr.c | 2 +- >> hw/moxie/moxiesim.c | 4 +- >> hw/net/cadence_gem.c | 3 +- >> hw/net/dp8393x.c | 2 +- >> hw/net/e1000.c | 6 +- >> hw/net/eepro100.c | 12 +- >> hw/net/etraxfs_eth.c | 3 +- >> hw/net/lan9118.c | 3 +- >> hw/net/lance.c | 3 +- >> hw/net/mcf_fec.c | 2 +- >> hw/net/milkymist-minimac2.c | 4 +- >> hw/net/mipsnet.c | 3 +- >> hw/net/ne2000-isa.c | 2 +- >> hw/net/ne2000.c | 6 +- >> hw/net/ne2000.h | 2 +- >> hw/net/opencores_eth.c | 4 +- >> hw/net/pcnet-pci.c | 6 +- >> hw/net/rtl8139.c | 6 +- >> hw/net/smc91c111.c | 2 +- >> hw/net/stellaris_enet.c | 4 +- >> hw/net/vmxnet3.c | 6 +- >> hw/net/xgmac.c | 3 +- >> hw/net/xilinx_axienet.c | 2 +- >> hw/net/xilinx_ethlite.c | 4 +- >> hw/nvram/ds1225y.c | 3 +- >> hw/nvram/fw_cfg.c | 6 +- >> hw/nvram/mac_nvram.c | 4 +- >> hw/openrisc/openrisc_sim.c | 2 +- >> hw/pci-bridge/dec.c | 4 +- >> hw/pci-bridge/pci_bridge_dev.c | 2 +- >> hw/pci-host/apb.c | 12 +- >> hw/pci-host/bonito.c | 10 +- >> hw/pci-host/grackle.c | 8 +- >> hw/pci-host/pam.c | 16 +- >> hw/pci-host/piix.c | 17 +- >> hw/pci-host/ppce500.c | 12 +- >> hw/pci-host/prep.c | 8 +- >> hw/pci-host/q35.c | 14 +- >> hw/pci-host/uninorth.c | 24 +- >> hw/pci-host/versatile.c | 16 +- >> hw/pci/msix.c | 6 +- >> hw/pci/pci.c | 5 +- >> hw/pci/pci_bridge.c | 12 +- >> hw/pci/pcie_host.c | 3 +- >> hw/pci/shpc.c | 4 +- >> hw/ppc/e500.c | 4 +- >> hw/ppc/mac_newworld.c | 10 +- >> hw/ppc/mac_oldworld.c | 6 +- >> hw/ppc/mpc8544_guts.c | 2 +- >> hw/ppc/ppc405_boards.c | 18 +- >> hw/ppc/ppc405_uc.c | 12 +- >> hw/ppc/ppc4xx_devs.c | 4 +- >> hw/ppc/ppc4xx_pci.c | 8 +- >> hw/ppc/ppce500_spin.c | 4 +- >> hw/ppc/prep.c | 31 ++- >> hw/ppc/spapr.c | 2 +- >> hw/ppc/spapr_iommu.c | 4 +- >> hw/ppc/spapr_pci.c | 15 +- >> hw/ppc/spapr_vio.c | 2 +- >> hw/ppc/virtex_ml507.c | 2 +- >> hw/s390x/s390-virtio-ccw.c | 2 +- >> hw/s390x/s390-virtio.c | 2 +- >> hw/scsi/esp-pci.c | 3 +- >> hw/scsi/esp.c | 4 +- >> hw/scsi/lsi53c895a.c | 9 +- >> hw/scsi/megasas.c | 6 +- >> hw/scsi/scsi-bus.c | 4 + >> hw/scsi/virtio-scsi.c | 10 +- >> hw/scsi/vmw_pvscsi.c | 2 +- >> hw/sd/milkymist-memcard.c | 2 +- >> hw/sd/omap_mmc.c | 4 +- >> hw/sd/pl181.c | 2 +- >> hw/sd/pxa2xx_mmci.c | 2 +- >> hw/sd/sdhci.c | 2 +- >> hw/sh4/r2d.c | 4 +- >> hw/sh4/sh7750.c | 16 +- >> hw/sh4/sh_pci.c | 6 +- >> hw/sh4/shix.c | 6 +- >> hw/sparc/leon3.c | 4 +- >> hw/sparc/sun4m.c | 9 +- >> hw/sparc64/sun4u.c | 4 +- >> hw/ssi/omap_spi.c | 2 +- >> hw/ssi/pl022.c | 2 +- >> hw/ssi/xilinx_spi.c | 3 +- >> hw/ssi/xilinx_spips.c | 5 +- >> hw/timer/arm_mptimer.c | 4 +- >> hw/timer/arm_timer.c | 6 +- >> hw/timer/cadence_ttc.c | 3 +- >> hw/timer/etraxfs_timer.c | 3 +- >> hw/timer/exynos4210_mct.c | 4 +- >> hw/timer/exynos4210_pwm.c | 4 +- >> hw/timer/exynos4210_rtc.c | 4 +- >> hw/timer/grlib_gptimer.c | 3 +- >> hw/timer/hpet.c | 2 +- >> hw/timer/i8254.c | 3 +- >> hw/timer/imx_epit.c | 2 +- >> hw/timer/imx_gpt.c | 2 +- >> hw/timer/lm32_timer.c | 3 +- >> hw/timer/m48t59.c | 8 +- >> hw/timer/mc146818rtc.c | 2 +- >> hw/timer/milkymist-sysctl.c | 2 +- >> hw/timer/omap_gptimer.c | 2 +- >> hw/timer/omap_synctimer.c | 2 +- >> hw/timer/pl031.c | 2 +- >> hw/timer/puv3_ost.c | 2 +- >> hw/timer/pxa2xx_timer.c | 2 +- >> hw/timer/sh_timer.c | 6 +- >> hw/timer/slavio_timer.c | 2 +- >> hw/timer/tusb6010.c | 4 +- >> hw/timer/xilinx_timer.c | 2 +- >> hw/tpm/tpm_tis.c | 3 +- >> hw/unicore32/puv3.c | 2 +- >> hw/usb/hcd-ehci-sysbus.c | 2 +- >> hw/usb/hcd-ehci.c | 12 +- >> hw/usb/hcd-ohci.c | 3 +- >> hw/usb/hcd-uhci.c | 4 +- >> hw/usb/hcd-xhci.c | 12 +- >> hw/virtio/dataplane/hostmem.c | 7 + >> hw/virtio/vhost.c | 11 +- >> hw/virtio/virtio-balloon.c | 1 + >> hw/virtio/virtio-pci.c | 4 +- >> hw/watchdog/wdt_i6300esb.c | 3 +- >> hw/watchdog/wdt_ib700.c | 12 +- >> hw/xen/xen_apic.c | 4 +- >> hw/xen/xen_platform.c | 11 +- >> hw/xen/xen_pt.c | 8 +- >> hw/xen/xen_pt_msi.c | 3 +- >> hw/xtensa/xtensa_lx60.c | 12 +- >> hw/xtensa/xtensa_sim.c | 4 +- >> include/exec/cpu-common.h | 3 +- >> include/exec/ioport.h | 30 +-- >> include/exec/iorange.h | 31 --- >> include/exec/memory-internal.h | 2 - >> include/exec/memory.h | 156 ++++++++---- >> include/hw/i386/pc.h | 6 +- >> include/hw/pci-host/pam.h | 4 +- >> include/hw/pci/pci.h | 2 +- >> include/hw/ppc/spapr.h | 3 +- >> include/hw/virtio/dataplane/hostmem.h | 1 + >> include/qemu/atomic.h | 198 +++++++++++--- >> include/qemu/int128.h | 25 +- >> include/sysemu/dma.h | 4 +- >> ioport.c | 383 ++++++++-------------------- >> kvm-all.c | 2 + >> memory.c | 290 ++++++++++++--------- >> migration.c | 3 +- >> qom/object.c | 5 +- >> target-arm/kvm.c | 2 + >> target-i386/kvm.c | 4 +- >> target-ppc/kvm.c | 2 +- >> target-sparc/mmu_helper.c | 1 + >> tests/Makefile | 6 +- >> tests/test-int128.c | 212 +++++++++++++++ >> tests/test-thread-pool.c | 8 +- >> xen-all.c | 10 +- >> 359 files changed, 2551 insertions(+), 1711 deletions(-) >> create mode 100644 docs/atomics.txt >> delete mode 100644 include/exec/iorange.h >> create mode 100644 tests/test-int128.c >>