memory-device: complete refactoring
Status from this message: Queued on machine-next, thanks!
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v5 Latest16 patches 4 repliesApplied
- v220 patches 20 repliesSuperseded
- v111 patches 2 repliesSuperseded
Changes in v5 from the cover letter
- 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.
Patches in v5 Applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/16 | memory-device: fix alignment error messagehw/ | +1 | 0 replies | |
| 2/16 | memory-device: fix error message when hinted address is too smallhw/ | +2 | 0 replies | |
| 3/16 | memory-device: improve "range conflicts" error messagehw/ | +2 | 2 replies | |
| 4/16 | pc-dimm: pass PCDIMMDevice to pc_dimm_.*plughw/ hw/ hw/ +1 more | +21 | 0 replies | |
| 5/16 | memory-device: use memory device terminology in error messageshw/ | +3 | 0 replies | |
| 6/16 | memory-device: introduce separate config optiondefault-configs/ default-configs/ hw/ +2 more | +8 | 0 replies | |
| 7/16 | memory-device: forward errors in get_region_size()/get_plugged_size()hw/ hw/ include/ | +8 | 0 replies | |
| 8/16 | memory-device: document MemoryDeviceClassinclude/ | +36 | 0 replies | |
| 9/16 | memory-device: add and use memory_device_get_region_size()hw/ hw/ hw/ +1 more | +23 | 0 replies | |
| 10/16 | memory-device: factor out get_memory_region() from pc-dimmhw/ hw/ include/ +1 more | +39 | 0 replies | |
| 11/16 | memory-device: drop get_region_size()hw/ hw/ include/ | +10 | 0 replies | |
| 12/16 | memory-device: add device class function set_addr()hw/ include/ | +15 | 0 replies | |
| 13/16 | memory-device: complete factoring out pre_plug handlinghw/ hw/ include/ | +34 | 0 replies | |
| 14/16 | memory-device: complete factoring out plug handlinghw/ hw/ include/ | +12 | 0 replies | |
| 15/16 | memory-device: complete factoring out unplug handlinghw/ hw/ include/ | +11 | 0 replies | |
| 16/16 | memory-device: trace when pre_plugging/plugging/unplugginghw/ hw/ hw/ | +12 | 0 replies |
Reviews trailers per patch
All 16 patches have a Reviewed-by or Acked-by.
| Patch | David Gibson | Igor Mammedov | Eric Auger | Dr. David Alan Gilbert | Philippe Mathieu-Daudé |
|---|---|---|---|---|---|
| 1/16 | R-b | R-b | |||
| 2/16 | R-b | R-b | R-b | ||
| 3/16 | R-b | R-b | |||
| 4/16 | R-b A-b | R-b | R-b | ||
| 5/16 | R-b | R-b | R-b | ||
| 6/16 | R-b A-b | R-b | |||
| 7/16 | R-b | R-b | R-b | ||
| 8/16 | R-b | R-b | |||
| 9/16 | R-b | R-b | |||
| 10/16 | R-b | R-b | |||
| 11/16 | R-b | R-b | |||
| 12/16 | R-b | R-b | R-b | ||
| 13/16 | R-b | R-b | |||
| 14/16 | R-b | R-b | R-b | ||
| 15/16 | R-b | R-b | R-b | ||
| 16/16 | R-b | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.
Cover letter [Qemu-devel] [PATCH v5 00/16] memory-device: complete refactoring
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(-)
Signature · 1 line
2.17.1