Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 2cc0e2e8140f43ccc6aced6e47c9c2db15ce2330
      
https://github.com/qemu/qemu/commit/2cc0e2e8140f43ccc6aced6e47c9c2db15ce2330
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M hw/i386/acpi-build.c
    M hw/mem/Makefile.objs
    A hw/mem/memory-device.c
    M hw/mem/pc-dimm.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_hcall.c
    A include/hw/mem/memory-device.h
    M include/hw/mem/pc-dimm.h
    M numa.c
    M qmp.c
    M stubs/Makefile.objs
    A stubs/qmp_memory_device.c
    R stubs/qmp_pc_dimm.c

  Log Message:
  -----------
  pc-dimm: factor out MemoryDevice interface

On the qmp level, we already have the concept of memory devices:
    "query-memory-devices"
Right now, we only support NVDIMM and PCDIMM.

We want to map other devices later into the address space of the guest.
Such device could e.g. be virtio devices. These devices will have a
guest memory range assigned but won't be exposed via e.g. ACPI. We want
to make them look like memory device, but not glued to pc-dimm.

Especially, it will not always be possible to have TYPE_PC_DIMM as a parent
class (e.g. virtio devices). Let's use an interface instead. As a first
part, convert handling of
- qmp_pc_dimm_device_list
- get_plugged_memory_size
to our new model. plug/unplug stuff etc. will follow later.

A memory device will have to provide the following functions:
- get_addr(): Necessary, as the property "addr" can e.g. not be used for
        virtio devices (already defined).
- get_plugged_size(): The amount this device offers to the guest as of
                now.
- get_region_size(): Because this can later on be bigger than the
               plugged size.
- fill_device_info(): Fill MemoryDeviceInfo, e.g. for qmp.

Reviewed-by: David Gibson <da...@gibson.dropbear.id.au>
Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-2-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: b0c14ec4efe912ae6f14a4802574f7b6b6db0648
      
https://github.com/qemu/qemu/commit/b0c14ec4efe912ae6f14a4802574f7b6b6db0648
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M hw/i386/acpi-build.c
    M hw/i386/pc.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_rtas_ddw.c
    M include/hw/boards.h
    M include/hw/i386/pc.h
    M include/hw/mem/pc-dimm.h
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  machine: make MemoryHotplugState accessible via the machine

Let's allow to query the MemoryHotplugState directly from the machine.
If the pointer is NULL, the machine does not support memory devices. If
the pointer is !NULL, the machine supports memory devices and the
data structure contains information about the applicable physical
guest address space region.

This allows us to generically detect if a certain machine has support
for memory devices, and to generically manage it (find free address
range, plug/unplug a memory region).

We will rename "MemoryHotplugState" to something more meaningful
("DeviceMemory") after we completed factoring out the pc-dimm code into
MemoryDevice code.

Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-3-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
[ehabkost: rebased series, solved conflicts at spapr.c]
[ehabkost: squashed fix to use g_malloc0()]
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: acc7fa17e6fe96bd68ad9af04fde5091383ef25e
      
https://github.com/qemu/qemu/commit/acc7fa17e6fe96bd68ad9af04fde5091383ef25e
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M hw/i386/pc.c
    M hw/mem/pc-dimm.c
    M hw/ppc/spapr.c
    M include/hw/mem/pc-dimm.h

  Log Message:
  -----------
  pc-dimm: no need to pass the memory region

We can just query it ourselves. When unplugging, we should always be
able to the region (as it was previously plugged). E.g. PPC already
assumed that and used &error_abort.

Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-4-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: bd6c3e4a4975ee1e5cadbc1826af9bd0ca0954c2
      
https://github.com/qemu/qemu/commit/bd6c3e4a4975ee1e5cadbc1826af9bd0ca0954c2
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M hw/i386/pc.c
    M hw/mem/pc-dimm.c
    M hw/ppc/spapr.c
    M include/hw/mem/pc-dimm.h

  Log Message:
  -----------
  pc-dimm: pass in the machine and to the MemoryHotplugState

We use the machine internally either way, so let's just pass it in then.

Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-5-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: bb0831bdf45a61c83fa1def44ae391260ce2662d
      
https://github.com/qemu/qemu/commit/bb0831bdf45a61c83fa1def44ae391260ce2662d
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M hw/mem/memory-device.c
    M hw/mem/pc-dimm.c
    M include/hw/mem/memory-device.h
    M include/hw/mem/pc-dimm.h

  Log Message:
  -----------
  pc-dimm: factor out address search into MemoryDevice code

This mainly moves code, but does a handfull of optimizations:
- We pass the machine instead of the address space properties
- We check the hinted address directly and handle fragmented memory
  better
- We make the search independent of pc-dimm

Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-6-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: 1b6d6af21bd614d61b55a28177299a5c93b95cd9
      
https://github.com/qemu/qemu/commit/1b6d6af21bd614d61b55a28177299a5c93b95cd9
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M hw/mem/memory-device.c
    M hw/mem/pc-dimm.c
    M include/hw/mem/pc-dimm.h

  Log Message:
  -----------
  pc-dimm: factor out capacity and slot checks into MemoryDevice

Move the checks into memory_device_get_free_addr(). This will check
before doing any calculations if we have KVM/vhost slots left and if
the total region size would be exceeded.

Of course, while at it, make it independent of pc-dimm code.

Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-7-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: 18d11dc910ca2a292b3f12c6a4a7c927b0f226f4
      
https://github.com/qemu/qemu/commit/18d11dc910ca2a292b3f12c6a4a7c927b0f226f4
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M hw/mem/memory-device.c
    M hw/mem/pc-dimm.c
    M include/hw/mem/memory-device.h

  Log Message:
  -----------
  pc-dimm: move actual plug/unplug of a memory region to MemoryDevice

Registering the memory region for migration has do be done by the owner.
There could be cases, where we don't want to migrate the memory.

Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-8-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: e017da370b3e87a3041b66092de2eb2318d28a6b
      
https://github.com/qemu/qemu/commit/e017da370b3e87a3041b66092de2eb2318d28a6b
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_rtas_ddw.c
    M include/hw/boards.h

  Log Message:
  -----------
  machine: rename MemoryHotplugState to DeviceMemoryState

Rename it to better match the new terminology.

Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-9-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: f2ffbe2b7dd05a563fe81066440629824192b15a
      
https://github.com/qemu/qemu/commit/f2ffbe2b7dd05a563fe81066440629824192b15a
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M hw/i386/acpi-build.c
    M hw/i386/pc.c
    M include/hw/i386/pc.h

  Log Message:
  -----------
  pc: rename "hotplug memory" terminology to "device memory"

Let's make it clear that we are dealing with device memory. That it can
be used for memory hotplug is just a special case.

Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-10-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: 0c9269a52d79aeebcfade97778ee937ab480a232
      
https://github.com/qemu/qemu/commit/0c9269a52d79aeebcfade97778ee937ab480a232
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M hw/ppc/spapr.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr: rename "hotplug memory" terminology to "device memory"

Let's make it clear at relevant places that we are dealing with device
memory. That it can be used for memory hotplug is just a special case.

Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-11-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
[ehabkost: rebased series, solved conflicts at spapr.c]
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: 951f2269af2d1f559d3949c45659c65297946106
      
https://github.com/qemu/qemu/commit/951f2269af2d1f559d3949c45659c65297946106
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M vl.c

  Log Message:
  -----------
  vl: allow 'maxmem' without 'slot'

We will be able to have memory devices (e.g. virtio) not requiring the
slot parameter (e.g. not exposed via ACPI). We still need the maxmem
parameter to setup a proper memory region for device memory. And some
architectures (e.g. s390x) will have to set up the maximum possible guest
address space size based on the maxmem parameter.

As far as I can see, all code (pc.c,spapr.c,ACPI code) should handle
!slots just fine, even though maxmem is set.

Signed-off-by: David Hildenbrand <da...@redhat.com>
Message-Id: <20180423165126.15441-12-da...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: b40dffdec60c2dbe54806576faa5cb85227586d1
      
https://github.com/qemu/qemu/commit/b40dffdec60c2dbe54806576faa5cb85227586d1
  Author: Thomas Huth <th...@redhat.com>
  Date:   2018-05-07 (Mon, 07 May 2018)

  Changed paths:
    M scripts/device-crash-test

  Log Message:
  -----------
  scripts/device-crash-test: Removed fixed CAN entries

The CAN device crashes have been fixed with the commit
089eac81e1d34d202471c0a023284f47f4c5f00e already.

Signed-off-by: Thomas Huth <th...@redhat.com>
Message-Id: <1523900489-25950-1-git-send-email-th...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>


  Commit: cc8f8ba754bba17eea9791d67b572eb26e30b4ce
      
https://github.com/qemu/qemu/commit/cc8f8ba754bba17eea9791d67b572eb26e30b4ce
  Author: Peter Maydell <peter.mayd...@linaro.org>
  Date:   2018-05-08 (Tue, 08 May 2018)

  Changed paths:
    M hw/i386/acpi-build.c
    M hw/i386/pc.c
    M hw/mem/Makefile.objs
    A hw/mem/memory-device.c
    M hw/mem/pc-dimm.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_rtas_ddw.c
    M include/hw/boards.h
    M include/hw/i386/pc.h
    A include/hw/mem/memory-device.h
    M include/hw/mem/pc-dimm.h
    M include/hw/ppc/spapr.h
    M numa.c
    M qmp.c
    M scripts/device-crash-test
    M stubs/Makefile.objs
    A stubs/qmp_memory_device.c
    R stubs/qmp_pc_dimm.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 
'remotes/ehabkost/tags/machine-next-pull-request' into staging

Machine queue, 2018-05-07

* pc-dimm: factor out MemoryDevice
  (virtio-pmem and virtio-mem will make use of the new abstraction later)
* scripts/device-crash-test: Removed fixed CAN entries

# gpg: Signature made Mon 07 May 2018 18:01:42 BST
# gpg:                using RSA key 2807936F984DC5A6
# gpg: Good signature from "Eduardo Habkost <ehabk...@redhat.com>"
# Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6

* remotes/ehabkost/tags/machine-next-pull-request:
  scripts/device-crash-test: Removed fixed CAN entries
  vl: allow 'maxmem' without 'slot'
  spapr: rename "hotplug memory" terminology to "device memory"
  pc: rename "hotplug memory" terminology to "device memory"
  machine: rename MemoryHotplugState to DeviceMemoryState
  pc-dimm: move actual plug/unplug of a memory region to MemoryDevice
  pc-dimm: factor out capacity and slot checks into MemoryDevice
  pc-dimm: factor out address search into MemoryDevice code
  pc-dimm: pass in the machine and to the MemoryHotplugState
  pc-dimm: no need to pass the memory region
  machine: make MemoryHotplugState accessible via the machine
  pc-dimm: factor out MemoryDevice interface

Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>


Compare: https://github.com/qemu/qemu/compare/d01beac177d4...cc8f8ba754bb
      **NOTE:** This service been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

Reply via email to