[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/11] Memory patches, part 4: region ownership
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 00/11] Memory patches, part 4: region ownership |
Date: |
Tue, 25 Jun 2013 13:13:16 +0200 |
This series, split out of the previous attempt to set owners for memory
regions, adds reference counting operations to memory regions and uses
them. As requested by Peter, I'm adding an argument for the owner to
all memory region creation functions.
The big patches to actually add the owners will come soon, since I
found a decent way to split it.
Paolo
Paolo Bonzini (11):
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: add ref/unref calls
exec: add a reference to the region returned by address_space_translate
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
memory: ref/unref memory across address_space_map/unmap
cputlb.c | 11 +++
exec.c | 162 +++++++++++++++----------------
hw/acpi/core.c | 6 +-
hw/acpi/ich9.c | 6 +-
hw/acpi/piix4.c | 8 +-
hw/alpha/typhoon.c | 16 +--
hw/arm/armv7m.c | 8 +-
hw/arm/exynos4210.c | 12 +--
hw/arm/highbank.c | 6 +-
hw/arm/integratorcp.c | 12 +--
hw/arm/kzm.c | 6 +-
hw/arm/mainstone.c | 2 +-
hw/arm/musicpal.c | 22 ++---
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 | 30 +++---
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 | 14 +--
hw/arm/tosa.c | 2 +-
hw/arm/versatilepb.c | 4 +-
hw/arm/vexpress.c | 12 +--
hw/arm/xilinx_zynq.c | 4 +-
hw/audio/ac97.c | 4 +-
hw/audio/cs4231.c | 2 +-
hw/audio/cs4231a.c | 2 +-
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 | 4 +-
hw/block/nvme.c | 2 +-
hw/block/onenand.c | 8 +-
hw/block/pc_sysfw.c | 6 +-
hw/block/pflash_cfi01.c | 3 +-
hw/block/pflash_cfi02.c | 6 +-
hw/char/cadence_uart.c | 2 +-
hw/char/debugcon.c | 2 +-
hw/char/escc.c | 2 +-
hw/char/etraxfs_ser.c | 2 +-
hw/char/exynos4210_uart.c | 2 +-
hw/char/grlib_apbuart.c | 2 +-
hw/char/imx_serial.c | 2 +-
hw/char/lm32_uart.c | 2 +-
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 | 6 +-
hw/char/serial.c | 4 +-
hw/char/sh_serial.c | 6 +-
hw/char/tpci200.c | 12 +--
hw/char/xilinx_uartlite.c | 2 +-
hw/core/empty_slot.c | 2 +-
hw/core/loader.c | 1 +
hw/cpu/a15mpcore.c | 2 +-
hw/cpu/a9mpcore.c | 2 +-
hw/cpu/arm11mpcore.c | 4 +-
hw/cpu/icc_bus.c | 2 +-
hw/cris/axis_dev88.c | 8 +-
hw/display/cirrus_vga.c | 16 +--
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 | 10 +-
hw/display/sm501.c | 8 +-
hw/display/tc6393xb.c | 4 +-
hw/display/tcx.c | 16 +--
hw/display/vga-isa-mm.c | 4 +-
hw/display/vga-pci.c | 6 +-
hw/display/vga.c | 8 +-
hw/display/vmware_vga.c | 4 +-
hw/dma/etraxfs_dma.c | 2 +-
hw/dma/i8257.c | 4 +-
hw/dma/omap_dma.c | 4 +-
hw/dma/pl080.c | 2 +-
hw/dma/pl330.c | 2 +-
hw/dma/puv3_dma.c | 2 +-
hw/dma/pxa2xx_dma.c | 2 +-
hw/dma/rc4030.c | 4 +-
hw/dma/sparc32_dma.c | 2 +-
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 | 2 +-
hw/i2c/omap_i2c.c | 2 +-
hw/i2c/pm_smbus.c | 2 +-
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 | 14 +--
hw/i386/kvmvapic.c | 5 +-
hw/i386/pc.c | 14 +--
hw/i386/pc_piix.c | 2 +-
hw/i386/pc_q35.c | 2 +-
hw/ide/ahci.c | 4 +-
hw/ide/cmd646.c | 10 +-
hw/ide/macio.c | 2 +-
hw/ide/mmio.c | 4 +-
hw/ide/piix.c | 6 +-
hw/ide/via.c | 6 +-
hw/input/milkymist-softusb.c | 6 +-
hw/input/pckbd.c | 6 +-
hw/input/pl050.c | 2 +-
hw/input/pxa2xx_keypad.c | 2 +-
hw/intc/apic.c | 2 +-
hw/intc/arm_gic.c | 6 +-
hw/intc/arm_gic_kvm.c | 4 +-
hw/intc/armv7m_nvic.c | 6 +-
hw/intc/etraxfs_pic.c | 2 +-
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 | 4 +-
hw/intc/imx_avic.c | 2 +-
hw/intc/ioapic.c | 2 +-
hw/intc/omap_intc.c | 4 +-
hw/intc/openpic.c | 4 +-
hw/intc/pl190.c | 2 +-
hw/intc/puv3_intc.c | 2 +-
hw/intc/realview_gic.c | 2 +-
hw/intc/sh_intc.c | 6 +-
hw/intc/slavio_intctl.c | 4 +-
hw/intc/xilinx_intc.c | 2 +-
hw/isa/apm.c | 2 +-
hw/isa/i82378.c | 4 +-
hw/isa/isa_mmio.c | 2 +-
hw/isa/lpc_ich9.c | 4 +-
hw/isa/pc87312.c | 2 +-
hw/isa/vt82c686.c | 2 +-
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 | 2 +-
hw/misc/arm_l2x0.c | 2 +-
hw/misc/arm_sysctl.c | 2 +-
hw/misc/debugexit.c | 2 +-
hw/misc/eccmemctl.c | 4 +-
hw/misc/exynos4210_pmu.c | 2 +-
hw/misc/imx_ccm.c | 2 +-
hw/misc/ivshmem.c | 8 +-
hw/misc/lm32_sys.c | 2 +-
hw/misc/macio/cuda.c | 2 +-
hw/misc/macio/mac_dbdma.c | 2 +-
hw/misc/macio/macio.c | 2 +-
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 | 30 +++---
hw/misc/vmport.c | 2 +-
hw/misc/zynq_slcr.c | 2 +-
hw/moxie/moxiesim.c | 4 +-
hw/net/cadence_gem.c | 2 +-
hw/net/dp8393x.c | 2 +-
hw/net/e1000.c | 4 +-
hw/net/eepro100.c | 6 +-
hw/net/etraxfs_eth.c | 2 +-
hw/net/lan9118.c | 2 +-
hw/net/lance.c | 2 +-
hw/net/mcf_fec.c | 2 +-
hw/net/milkymist-minimac2.c | 4 +-
hw/net/mipsnet.c | 2 +-
hw/net/ne2000.c | 2 +-
hw/net/opencores_eth.c | 4 +-
hw/net/pcnet-pci.c | 4 +-
hw/net/rtl8139.c | 4 +-
hw/net/smc91c111.c | 2 +-
hw/net/stellaris_enet.c | 2 +-
hw/net/vmxnet3.c | 6 +-
hw/net/xgmac.c | 2 +-
hw/net/xilinx_axienet.c | 2 +-
hw/net/xilinx_ethlite.c | 2 +-
hw/nvram/ds1225y.c | 2 +-
hw/nvram/fw_cfg.c | 6 +-
hw/nvram/mac_nvram.c | 2 +-
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 | 8 +-
hw/pci-host/bonito.c | 10 +-
hw/pci-host/grackle.c | 8 +-
hw/pci-host/pam.c | 8 +-
hw/pci-host/piix.c | 12 +--
hw/pci-host/ppce500.c | 12 +--
hw/pci-host/prep.c | 8 +-
hw/pci-host/q35.c | 10 +-
hw/pci-host/uninorth.c | 24 ++---
hw/pci-host/versatile.c | 14 +--
hw/pci/msix.c | 6 +-
hw/pci/pci.c | 4 +-
hw/pci/pci_bridge.c | 12 +--
hw/pci/pcie_host.c | 2 +-
hw/pci/shpc.c | 2 +-
hw/ppc/e500.c | 4 +-
hw/ppc/mac_newworld.c | 8 +-
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 | 2 +-
hw/ppc/prep.c | 8 +-
hw/ppc/spapr.c | 2 +-
hw/ppc/spapr_iommu.c | 2 +-
hw/ppc/spapr_pci.c | 10 +-
hw/ppc/virtex_ml507.c | 2 +-
hw/s390x/s390-virtio-ccw.c | 2 +-
hw/s390x/s390-virtio.c | 2 +-
hw/scsi/esp-pci.c | 2 +-
hw/scsi/esp.c | 2 +-
hw/scsi/lsi53c895a.c | 6 +-
hw/scsi/megasas.c | 6 +-
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 | 4 +-
hw/sh4/shix.c | 6 +-
hw/sparc/leon3.c | 4 +-
hw/sparc/sun4m.c | 8 +-
hw/sparc64/sun4u.c | 4 +-
hw/ssi/omap_spi.c | 2 +-
hw/ssi/pl022.c | 2 +-
hw/ssi/xilinx_spi.c | 2 +-
hw/ssi/xilinx_spips.c | 4 +-
hw/timer/arm_mptimer.c | 4 +-
hw/timer/arm_timer.c | 4 +-
hw/timer/cadence_ttc.c | 2 +-
hw/timer/etraxfs_timer.c | 2 +-
hw/timer/exynos4210_mct.c | 2 +-
hw/timer/exynos4210_pwm.c | 2 +-
hw/timer/exynos4210_rtc.c | 2 +-
hw/timer/grlib_gptimer.c | 2 +-
hw/timer/hpet.c | 2 +-
hw/timer/i8254.c | 2 +-
hw/timer/imx_epit.c | 2 +-
hw/timer/imx_gpt.c | 2 +-
hw/timer/lm32_timer.c | 2 +-
hw/timer/m48t59.c | 6 +-
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 | 2 +-
hw/timer/xilinx_timer.c | 2 +-
hw/tpm/tpm_tis.c | 2 +-
hw/unicore32/puv3.c | 2 +-
hw/usb/hcd-ehci-sysbus.c | 2 +-
hw/usb/hcd-ehci.c | 8 +-
hw/usb/hcd-ohci.c | 2 +-
hw/usb/hcd-uhci.c | 2 +-
hw/usb/hcd-xhci.c | 12 +--
hw/virtio/dataplane/hostmem.c | 7 ++
hw/virtio/vhost.c | 2 +
hw/virtio/virtio-balloon.c | 1 +
hw/virtio/virtio-pci.c | 2 +-
hw/watchdog/wdt_i6300esb.c | 2 +-
hw/xen/xen_apic.c | 2 +-
hw/xen/xen_platform.c | 6 +-
hw/xen/xen_pt.c | 8 +-
hw/xen/xen_pt_msi.c | 2 +-
hw/xtensa/xtensa_lx60.c | 12 +--
hw/xtensa/xtensa_sim.c | 4 +-
include/exec/cpu-common.h | 3 +-
include/exec/memory.h | 57 ++++++++++-
include/hw/virtio/dataplane/hostmem.h | 1 +
ioport.c | 4 +-
kvm-all.c | 2 +
memory.c | 64 ++++++++++--
target-arm/kvm.c | 2 +
target-i386/kvm.c | 4 +-
target-ppc/kvm.c | 2 +-
target-sparc/mmu_helper.c | 1 +
xen-all.c | 10 +-
329 files changed, 983 insertions(+), 837 deletions(-)
--
1.8.1.4
- [Qemu-devel] [PATCH 00/11] Memory patches, part 4: region ownership,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 02/11] memory: destroy phys_sections one by one, Paolo Bonzini, 2013/06/25
- [Qemu-devel] [PATCH 03/11] exec: simplify destruction of the phys map, Paolo Bonzini, 2013/06/25
- [Qemu-devel] [PATCH 05/11] memory: add ref/unref, Paolo Bonzini, 2013/06/25
- [Qemu-devel] [PATCH 04/11] memory: add getter for owner, Paolo Bonzini, 2013/06/25
- [Qemu-devel] [PATCH 06/11] memory: add ref/unref calls, Paolo Bonzini, 2013/06/25
- [Qemu-devel] [PATCH 07/11] exec: add a reference to the region returned by address_space_translate, Paolo Bonzini, 2013/06/25
- [Qemu-devel] [PATCH 08/11] exec: check MRU in qemu_ram_addr_from_host, Paolo Bonzini, 2013/06/25
- [Qemu-devel] [PATCH 09/11] exec: move qemu_ram_addr_from_host_nofail to cputlb.c, Paolo Bonzini, 2013/06/25