On 03/10/2018 07:34 PM, Haozhong Zhang wrote:
It may need to treat PC-DIMM and NVDIMM differently, e.g., when
deciding the necessity of non-volatile flag bit in SRAT memory
affinity structures.

NVDIMMDeviceInfo, which inherits from PCDIMMDeviceInfo, is added to
union type MemoryDeviceInfo to record information of NVDIMM devices.
The NVDIMM-specific data is currently left empty and will be filled
when necessary in the future.

Stale comment.


It also fixes "info memory-devices"/query-memory-devices which
currently show nvdimm devices as dimm devices since
object_dynamic_cast(obj, TYPE_PC_DIMM) happily cast nvdimm to
TYPE_PC_DIMM which it's been inherited from.

Signed-off-by: Haozhong Zhang <haozhong.zh...@intel.com>
---
  hmp.c            | 14 +++++++++++---
  hw/mem/pc-dimm.c | 10 +++++++++-
  numa.c           | 19 +++++++++++++------
  qapi/misc.json   |  6 +++++-
  4 files changed, 38 insertions(+), 11 deletions(-)


+++ b/qapi/misc.json
@@ -2852,7 +2852,11 @@
  #
  # Since: 2.1

Perhaps this could somehow use a '(since 2.12)' tag; but as this is a "simple union" (which is anything but simple in the QAPI generator), and we're trying to avoid introducing new ones where possible, I'm fine overlooking it for now.

  ##
-{ 'union': 'MemoryDeviceInfo', 'data': {'dimm': 'PCDIMMDeviceInfo'} }
+{ 'union': 'MemoryDeviceInfo',
+  'data': { 'dimm': 'PCDIMMDeviceInfo',
+            'nvdimm': 'PCDIMMDeviceInfo'
+          }
+}

Reviewed-by: Eric Blake <ebl...@redhat.com>

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Reply via email to