Resending. Not reposting patches to avoid flooding the list. The following changes since commit 2edaf21b939eb3b7f058fbc3cb7f7e14d6262486:
Merge remote-tracking branch 'remotes/bonzini/memory' into staging (2014-06-18 15:08:38 +0100) are available in the git repository at: git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream for you to fetch changes up to 705456c0d7f24fbd76733c891525b8eeea332e8b: numa: use RAM_ADDR_FMT with ram_addr_t (2014-06-19 18:44:22 +0300) ---------------------------------------------------------------- pc,pci,virtio,hotplug fixes, enhancements numa work by Hu Tao and others memory hotplug by Igor vhost-user by Nikolay, Antonios and others guest virtio announcements by Jason qtest fixes by Sergey qdev hotplug fixes by Paolo misc other fixes mostly by myself Signed-off-by: Michael S. Tsirkin <m...@redhat.com> ---------------------------------------------------------------- Hu Tao (10): Introduce signed range. qom: introduce object_property_get_enum and object_property_get_uint16List backend:hostmem: replace hostmemory with host_memory hostmem: separate allocation from UserCreatable complete method hostmem: add properties for NUMA memory policy qmp: add query-memdev hmp: add info memdev tests: fix memory leak in test of string input visitor qapi: make string input visitor parse int list qapi: make string output visitor parse int list Igor Mammedov (40): pc: create custom generic PC machine type pc: ACPI BIOS: use enum for defining memory affinity flags object_add: allow completion handler to get canonical path vl.c: daemonize before guest memory allocation add memdev backend infrastructure vl.c: extend -m option to support options for memory hotplug qdev: hotplug for bus-less devices qdev: expose DeviceState.hotplugged field as a property memory: add memory_region_is_mapped() API pc-dimm: do not allow setting an in-use memdev pc: initialize memory hotplug address space pc: exit QEMU if number of slots more than supported 256 pc: add 'etc/reserved-memory-end' fw_cfg interface for SeaBIOS pc: exit QEMU if compat machine doesn't support memory hotlpug pc: add memory hotplug handler to PC_MACHINE pc-dimm: add busy address check and address auto-allocation pc-dimm: add busy slot check and slot auto-allocation acpi: rename cpu_hotplug_defs.h to pc-hotplug.h acpi: memory hotplug ACPI hardware implementation trace: add acpi memory hotplug IO region events trace: pc: add PC_DIMM slot & address allocation acpi:piix4: allow plug/unlug callbacks handle not only PCI devices acpi:piix4: add memory hotplug handling pc: ich9 lpc: make it work with global/compat properties acpi:ich9: add memory hotplug handling pc: migrate piix4 & ich9 MemHotplugState pc: add acpi-device link to PCMachineState pc: propagate memory hotplug event to ACPI device pc: ACPI BIOS: implement memory hotplug interface pc: add "hotplug-memory-region-size" property to PC_MACHINE pc: ACPI BIOS: reserve SRAT entry for hotplug mem hole pc: ACPI BIOS: make GPE.3 handle memory hotplug event on PIIX and Q35 machines pc: q35: acpi: report error to user on unsupported unplug request pc: acpi: do not hardcode preprocessor numa: handle mmaped memory allocation failure correctly qmp: add query-memory-devices command acpi: introduce TYPE_ACPI_DEVICE_IF interface acpi: implement ospm_status() method for PIIX4/ICH9_LPC devices qmp: add query-acpi-ospm-status command qmp: add ACPI_DEVICE_OST event handling Jason Wang (3): migration: export SELF_ANNOUNCE_ROUNDS migration: introduce self_announce_delay() virtio-net: announce self by guest Luiz Capitulino (1): man: improve -numa doc Markus Armbruster (2): virtio: Drop superfluous conditionals around g_free() virtio: Drop superfluous conditionals around g_strdup() Michael S. Tsirkin (12): acpi: update generated files acpi-test: update expected tables ich: get rid of spaces in type name tests: disable vhost test temporarily osdep: add merge and dump flags qapi: fix build on glib < 2.28 qmp: clean out whitespace acpi: rephrase comment qapi: fix input visitor bugs tests: simplify code qapi/string-output-visitor: fix bugs numa: use RAM_ADDR_FMT with ram_addr_t Nikolay Nikolaev (18): Add kvm_eventfds_enabled function Add chardev API qemu_chr_fe_read_all Add chardev API qemu_chr_fe_set_msgfds Add chardev API qemu_chr_fe_get_msgfds Add G_IO_HUP handler for socket chardev vhost: add vhost_get_features and vhost_ack_features vhost_net should call the poll callback only when it is set Refactor virtio-net to use generic get_vhost_net vhost_net_init will use VhostNetOptions to get all its arguments Add vhost_ops to vhost_dev struct and replace all relevant ioctls Add vhost-backend and VhostBackendType Add vhost-user as a vhost backend. vhost-net: vhost-user feature bits support Add new vhost-user netdev backend Add the vhost-user netdev backend to the command line Add vhost-user protocol documentation libqemustub: add stubs to be able to use qemu-char.c Add qtest for vhost-user Paolo Bonzini (16): qmp: improve error reporting for -object and object-add numa: introduce memory_region_allocate_system_memory memory: reorganize file-based allocation memory: move preallocation code out of exec.c memory: move RAM_PREALLOC_MASK to exec.c, rename numa: add -numa node,memdev= option memory: move mem_path handling to memory_region_allocate_system_memory memory: add error propagation to file-based RAM allocation vl: redo -object parsing pc: pass MachineState to pc_memory_init hostmem: add file-based HostMemoryBackend hostmem: add merge and dump properties hostmem: allow preallocation of any memory region hostmem: add property to map memory with MAP_SHARED qdev: reorganize error reporting in bus_set_realized qdev: recursively unrealize devices when unrealizing bus Vasilis Liaskovitis (1): pc: implement pc-dimm device abstraction Wanlong Gao (6): NUMA: move numa related code to new file numa.c NUMA: check if the total numa memory size is equal to ram_size NUMA: Add numa_info structure to contain numa nodes info NUMA: convert -numa option to use OptsVisitor NUMA: expand MAX_NODES from 64 to 128 configure: add Linux libnuma detection configure | 35 ++ Makefile.target | 2 +- qapi-schema.json | 208 ++++++++- hmp.h | 1 + include/exec/cpu-all.h | 8 - include/exec/cpu-common.h | 2 + include/exec/memory.h | 41 ++ include/exec/ram_addr.h | 4 + include/hw/acpi/acpi.h | 5 + include/hw/acpi/acpi_dev_interface.h | 43 ++ include/hw/acpi/cpu_hotplug.h | 2 +- include/hw/acpi/cpu_hotplug_defs.h | 32 -- include/hw/acpi/ich9.h | 7 + include/hw/acpi/memory_hotplug.h | 38 ++ include/hw/acpi/pc-hotplug.h | 56 +++ include/hw/boards.h | 16 +- include/hw/i386/ich9.h | 2 +- include/hw/i386/pc.h | 79 +++- include/hw/mem/pc-dimm.h | 81 ++++ include/hw/virtio/vhost-backend.h | 38 ++ include/hw/virtio/vhost.h | 13 +- include/hw/virtio/virtio-net.h | 17 + include/migration/vmstate.h | 10 + include/monitor/monitor.h | 1 + include/net/vhost-user.h | 17 + include/net/vhost_net.h | 11 +- include/qemu/osdep.h | 16 + include/qemu/range.h | 72 ++++ include/qom/object.h | 28 ++ include/sysemu/char.h | 44 +- include/sysemu/cpus.h | 1 - include/sysemu/hostmem.h | 68 +++ include/sysemu/kvm.h | 11 + include/sysemu/os-win32.h | 2 + include/sysemu/sysemu.h | 18 +- net/clients.h | 3 + backends/hostmem-file.c | 134 ++++++ backends/hostmem-ram.c | 53 +++ backends/hostmem.c | 375 ++++++++++++++++ cpus.c | 14 - exec.c | 211 +++++---- hmp.c | 36 ++ hw/9pfs/virtio-9p.c | 4 +- hw/acpi/acpi_interface.c | 15 + hw/acpi/ich9.c | 69 +++ hw/acpi/memory_hotplug.c | 245 +++++++++++ hw/acpi/piix4.c | 85 +++- hw/core/qdev.c | 57 ++- hw/i386/acpi-build.c | 75 +++- hw/i386/pc.c | 252 ++++++++++- hw/i386/pc_piix.c | 59 +-- hw/i386/pc_q35.c | 29 +- hw/isa/lpc_ich9.c | 38 +- hw/mem/pc-dimm.c | 281 ++++++++++++ hw/mips/mips_malta.c | 2 +- hw/net/vhost_net.c | 228 +++++++--- hw/net/virtio-net.c | 98 +++-- hw/ppc/spapr.c | 11 +- hw/scsi/vhost-scsi.c | 45 +- hw/virtio/vhost-backend.c | 71 +++ hw/virtio/vhost-user.c | 342 +++++++++++++++ hw/virtio/vhost.c | 90 ++-- hw/virtio/virtio.c | 16 +- kvm-all.c | 4 + kvm-stub.c | 1 + memory.c | 39 +- monitor.c | 10 +- net/hub.c | 1 + net/net.c | 7 + net/tap.c | 18 +- net/vhost-user.c | 258 +++++++++++ numa.c | 369 ++++++++++++++++ qapi/string-input-visitor.c | 201 ++++++++- qapi/string-output-visitor.c | 235 +++++++++- qemu-char.c | 277 ++++++++++-- qmp.c | 44 +- qom/object.c | 35 ++ savevm.c | 3 +- stubs/bdrv-commit-all.c | 7 + stubs/chr-msmouse.c | 7 + stubs/get-next-serial.c | 3 + stubs/is-daemonized.c | 9 + stubs/machine-init-done.c | 6 + stubs/monitor-init.c | 6 + stubs/notify-event.c | 6 + stubs/qmp_pc_dimm_device_list.c | 7 + stubs/vc-init.c | 7 + tests/test-string-input-visitor.c | 37 ++ tests/test-string-output-visitor.c | 38 +- tests/vhost-user-test.c | 312 ++++++++++++++ translate-all.c | 7 - util/oslib-posix.c | 73 ++++ util/oslib-win32.c | 19 + vl.c | 272 +++++------- backends/Makefile.objs | 3 + default-configs/i386-softmmu.mak | 1 + default-configs/x86_64-softmmu.mak | 1 + docs/qmp/qmp-events.txt | 10 + docs/specs/acpi_mem_hotplug.txt | 44 ++ docs/specs/vhost-user.txt | 266 ++++++++++++ hmp-commands.hx | 4 +- hw/Makefile.objs | 1 + hw/acpi/Makefile.objs | 2 + hw/i386/Makefile.objs | 5 +- hw/i386/acpi-dsdt.dsl | 7 +- hw/i386/acpi-dsdt.hex.generated | 31 +- hw/i386/q35-acpi-dsdt.dsl | 7 +- hw/i386/q35-acpi-dsdt.hex.generated | 31 +- hw/i386/ssdt-mem.dsl | 77 ++++ hw/i386/ssdt-mem.hex.generated | 213 +++++++++ hw/i386/ssdt-misc.dsl | 164 +++++++ hw/i386/ssdt-misc.hex.generated | 811 ++++++++++++++++++++++++++++++++++- hw/i386/ssdt-pcihp.hex.generated | 6 +- hw/i386/ssdt-proc.hex.generated | 6 +- hw/mem/Makefile.objs | 1 + hw/virtio/Makefile.objs | 2 +- net/Makefile.objs | 2 +- qemu-options.hx | 45 +- qmp-commands.hx | 89 +++- stubs/Makefile.objs | 9 + tests/Makefile | 4 + tests/acpi-test-data/pc/DSDT | Bin 4480 -> 4499 bytes tests/acpi-test-data/pc/SSDT | Bin 2269 -> 3065 bytes tests/acpi-test-data/q35/DSDT | Bin 7378 -> 7397 bytes tests/acpi-test-data/q35/SSDT | Bin 550 -> 1346 bytes trace-events | 17 + 126 files changed, 7416 insertions(+), 728 deletions(-) create mode 100644 include/hw/acpi/acpi_dev_interface.h delete mode 100644 include/hw/acpi/cpu_hotplug_defs.h create mode 100644 include/hw/acpi/memory_hotplug.h create mode 100644 include/hw/acpi/pc-hotplug.h create mode 100644 include/hw/mem/pc-dimm.h create mode 100644 include/hw/virtio/vhost-backend.h create mode 100644 include/net/vhost-user.h create mode 100644 include/sysemu/hostmem.h create mode 100644 backends/hostmem-file.c create mode 100644 backends/hostmem-ram.c create mode 100644 backends/hostmem.c create mode 100644 hw/acpi/acpi_interface.c create mode 100644 hw/acpi/memory_hotplug.c create mode 100644 hw/mem/pc-dimm.c create mode 100644 hw/virtio/vhost-backend.c create mode 100644 hw/virtio/vhost-user.c create mode 100644 net/vhost-user.c create mode 100644 numa.c create mode 100644 stubs/bdrv-commit-all.c create mode 100644 stubs/chr-msmouse.c create mode 100644 stubs/get-next-serial.c create mode 100644 stubs/is-daemonized.c create mode 100644 stubs/machine-init-done.c create mode 100644 stubs/monitor-init.c create mode 100644 stubs/notify-event.c create mode 100644 stubs/qmp_pc_dimm_device_list.c create mode 100644 stubs/vc-init.c create mode 100644 tests/vhost-user-test.c create mode 100644 docs/specs/acpi_mem_hotplug.txt create mode 100644 docs/specs/vhost-user.txt create mode 100644 hw/i386/ssdt-mem.dsl create mode 100644 hw/i386/ssdt-mem.hex.generated create mode 100644 hw/mem/Makefile.objs