All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v5 00/16] memory-device: complete refactoring
@ 2018-10-05  9:20 David Hildenbrand
  2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 01/16] memory-device: fix alignment error message David Hildenbrand
                   ` (16 more replies)
  0 siblings, 17 replies; 21+ messages in thread
From: David Hildenbrand @ 2018-10-05  9:20 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-ppc, Dr . David Alan Gilbert, Michael S . Tsirkin,
	Igor Mammedov, Marcel Apfelbaum, Paolo Bonzini,
	Richard Henderson, Eduardo Habkost, Eric Blake,
	Markus Armbruster, Pankaj Gupta, Luiz Capitulino, Xiao Guangrong,
	David Gibson, Alexander Graf, Auger Eric, David Hildenbrand

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

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2018-10-11 17:44 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-05  9:20 [Qemu-devel] [PATCH v5 00/16] memory-device: complete refactoring David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 01/16] memory-device: fix alignment error message David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 02/16] memory-device: fix error message when hinted address is too small David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 03/16] memory-device: improve "range conflicts" error message David Hildenbrand
2018-10-08  2:05   ` David Gibson
2018-10-09 10:59   ` Philippe Mathieu-Daudé
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 04/16] pc-dimm: pass PCDIMMDevice to pc_dimm_.*plug David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 05/16] memory-device: use memory device terminology in error messages David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 06/16] memory-device: introduce separate config option David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 07/16] memory-device: forward errors in get_region_size()/get_plugged_size() David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 08/16] memory-device: document MemoryDeviceClass David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 09/16] memory-device: add and use memory_device_get_region_size() David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 10/16] memory-device: factor out get_memory_region() from pc-dimm David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 11/16] memory-device: drop get_region_size() David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 12/16] memory-device: add device class function set_addr() David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 13/16] memory-device: complete factoring out pre_plug handling David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 14/16] memory-device: complete factoring out plug handling David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 15/16] memory-device: complete factoring out unplug handling David Hildenbrand
2018-10-05  9:20 ` [Qemu-devel] [PATCH v5 16/16] memory-device: trace when pre_plugging/plugging/unplugging David Hildenbrand
2018-10-09  9:32 ` [Qemu-devel] [PATCH v5 00/16] memory-device: complete refactoring David Hildenbrand
2018-10-11 17:44   ` Eduardo Habkost

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.