[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v5 00/16] memory-device: complete refactoring
From: |
David Hildenbrand |
Subject: |
[Qemu-ppc] [PATCH v5 00/16] memory-device: complete refactoring |
Date: |
Fri, 5 Oct 2018 11:20:08 +0200 |
This series completes refactoring of pre_plug, plug and unplug logic of
memory devices. With this as a basis, we can built e.g. virtio
based memory devices or internal "RAM chip" devices.
I dropped the virtio-pmem prototype for now, I will look into plugging
it differently next. But this part in this series here is independent of
hotplug handler changes required to make it work for virtio devices.
v4 -> v5:
- Added a bunch of RB's
- Minor spelling fixed
- Dropped "memory-device: add class function get_device_id()"
- Added "memory-device: improve "range conflicts" error message
- Dropped "memory-device: handle integer overflows properly"
-- Will require more changes. But I am able to reproduce some overflows.
- "memory-device: document MemoryDeviceClass"
-- Changed documentation format as requested by Auger
- "memory-device: trace when pre_plugging/plugging/unplugging"
-- Include device ID and rename tracepoints.
v3 -> v4:
- Minor comment and subject fixes
- Added "memory-device: fix alignment error message"
- Added "pc-dimm: pass PCDIMMDevice to pc_dimm_.*plug"
- Dropped "hw/acpi-build: only indicate nvdimm and pc-dimm"
- "memory-device: document MemoryDeviceClass"
-- add more details about get_plugged_size
- "memory-device: add and use memory_device_get_region_size()"
-- fixed "local_err" usage
-- due to "pc-dimm: pass PCDIMMDevice to pc_dimm_.*plug", keep PC_DIMM cast
- "memory-device: add class function get_device_id()"
-- provide default handler
- "hmp: handle virtio-pmem when printing memory device infos"
-- avoid fall-through switch case
-- add g_assert_not_reached()
- "numa: handle virtio-pmem in NUMA stats"
-- avoid fall-through switch case
-- add g_assert_not_reached()
- Added "qdev: hotplug: provide do_unplug handler"
-- unplug/unplug_request are not called for devices inside a device hierarchy
This new handler is always called when unrealizing and doesn't trigger
the unrealize (in contrast to unplug/unplug_request)
- "pc: support for virtio-pmem" and "virtio-pmem: hotplug support functions"
-- use do_unplug handler
- Tested "device_del vp1". It works, and I can see in the traces the
address getting unassigned. QEMU crashes when shutting down, that most
most likely is a result of virtio-pmem not properly unrealizing and
cleaning up virtqueues. (@Pankaj if you read this )
v2 -> v3:
- Rephrased some patch subjects/descriptions
- Added "memory-device: handle integer overflows properly"
- "memory-device: forward errors in get_region_size()/get_plugged_size()"
-- drop superfluous error check
- "memory-device: document MemoryDeviceClass"
-- some rewording
- replaced "memory-device: convert get_region_size() to get_memory_region()"
by "memory-device: add and use memory_device_get_region_size()"
and "memory-device: factor out get_memory_region() from pc-dimm"
and "memory-device: drop get_region_size()"
- squashed "memory-device: add device class function set_addr()"
and "pc-dimm: implement memory device class function set_addr()"
- replaced "memory-device: ids of virtio based devices are special"
by "memory-device: add optional function get_device_id()"
- fixed up the virtio-pmem prototype
v1 -> v2:
- Include virtio-pmem prototype
- Add "memory-device: fix error message when hinted address is too small"
- Add "memory-device: use memory device terminology in error messages"
- Add "hw/acpi-build: only indicate nvdimm and pc-dimm"
- Add "memory-device: ids of virtio based devices are special"
- Add "memory-device: ids of virtio based devices are special"
- Minor changes/fixes for other patches
David Hildenbrand (16):
memory-device: fix alignment error message
memory-device: fix error message when hinted address is too small
memory-device: improve "range conflicts" error message
pc-dimm: pass PCDIMMDevice to pc_dimm_.*plug
memory-device: use memory device terminology in error messages
memory-device: introduce separate config option
memory-device: forward errors in get_region_size()/get_plugged_size()
memory-device: document MemoryDeviceClass
memory-device: add and use memory_device_get_region_size()
memory-device: factor out get_memory_region() from pc-dimm
memory-device: drop get_region_size()
memory-device: add device class function set_addr()
memory-device: complete factoring out pre_plug handling
memory-device: complete factoring out plug handling
memory-device: complete factoring out unplug handling
memory-device: trace when pre_plugging/plugging/unplugging
default-configs/i386-softmmu.mak | 3 +-
default-configs/ppc64-softmmu.mak | 3 +-
hw/Makefile.objs | 2 +-
hw/i386/pc.c | 6 +-
hw/mem/Makefile.objs | 4 +-
hw/mem/memory-device.c | 103 ++++++++++++++++++++++++------
hw/mem/nvdimm.c | 9 ++-
hw/mem/pc-dimm.c | 84 ++++++++----------------
hw/mem/trace-events | 5 +-
hw/ppc/spapr.c | 29 ++++-----
include/hw/mem/memory-device.h | 74 ++++++++++++++++++---
include/hw/mem/pc-dimm.h | 10 +--
qapi/misc.json | 2 +-
13 files changed, 210 insertions(+), 124 deletions(-)
--
2.17.1
- [Qemu-ppc] [PATCH v5 00/16] memory-device: complete refactoring,
David Hildenbrand <=
- [Qemu-ppc] [PATCH v5 16/16] memory-device: trace when pre_plugging/plugging/unplugging, David Hildenbrand, 2018/10/05
- [Qemu-ppc] [PATCH v5 15/16] memory-device: complete factoring out unplug handling, David Hildenbrand, 2018/10/05
- [Qemu-ppc] [PATCH v5 14/16] memory-device: complete factoring out plug handling, David Hildenbrand, 2018/10/05
- [Qemu-ppc] [PATCH v5 12/16] memory-device: add device class function set_addr(), David Hildenbrand, 2018/10/05
- [Qemu-ppc] [PATCH v5 10/16] memory-device: factor out get_memory_region() from pc-dimm, David Hildenbrand, 2018/10/05
- [Qemu-ppc] [PATCH v5 11/16] memory-device: drop get_region_size(), David Hildenbrand, 2018/10/05
- [Qemu-ppc] [PATCH v5 13/16] memory-device: complete factoring out pre_plug handling, David Hildenbrand, 2018/10/05
- [Qemu-ppc] [PATCH v5 08/16] memory-device: document MemoryDeviceClass, David Hildenbrand, 2018/10/05
- [Qemu-ppc] [PATCH v5 09/16] memory-device: add and use memory_device_get_region_size(), David Hildenbrand, 2018/10/05
- [Qemu-ppc] [PATCH v5 04/16] pc-dimm: pass PCDIMMDevice to pc_dimm_.*plug, David Hildenbrand, 2018/10/05