This sixth set of DRC cleanup patches is a complete rework of DRC
state management. We stop tracking some unnecessary things, and
change the basic state representation to a simpler and more robust
model.
Many of the patches in this set "break" migration from earlier git
snapshots, but not from any released qemu version. The previous
migration stream format had multiple problems, so better to fix them
now, before 2.10 is out.
Although there are certainly more things that can be improved in the
DRC system, with this series we should have a solid foundation for
migrating DRCs - the state trasferred is about as minimal and well
defined as it's possible to be.
Changes since v1:
* Rebased onto current tree
* Added cleanup to unplug path
* Added restriction of DR-indicator to physical DRCs
* Included revised version of Laurent's patch to correctly handle
things "hot" plugged before incoming migration
David Gibson (7):
spapr: Remove 'awaiting_allocation' DRC flag
spapr: Simplify unplug path
spapr: Refactor spapr_drc_detach()
spapr: Cleanups relating to DRC awaiting_release field
spapr: Consolidate DRC state variables
spapr: Remove sPAPRConfigureConnectorState sub-structure
spapr: Implement DR-indicator for physical DRCs only
Laurent Vivier (1):
spapr: Treat devices added before inbound migration as coldplugged
hw/ppc/spapr.c | 89 +++-------
hw/ppc/spapr_drc.c | 399 ++++++++++++++++++++++++---------------------
hw/ppc/spapr_pci.c | 17 +-
hw/ppc/trace-events | 3 +-
include/hw/ppc/spapr_drc.h | 74 ++++++---
5 files changed, 301 insertions(+), 281 deletions(-)