[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 00/10] Multi-phase reset mechanism
From: |
Damien Hedde |
Subject: |
Re: [Qemu-devel] [PATCH v4 00/10] Multi-phase reset mechanism |
Date: |
Tue, 10 Sep 2019 12:33:36 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.0 |
ping !
Any comments ?
Thanks,
Damien
On 8/21/19 6:33 PM, Damien Hedde wrote:
> Hi all,
>
> Here's the 4th version of the multi-phase reset proposal patches.
> Previous version can be found here:
> https://lists.gnu.org/archive/html/qemu-devel/2019-07/msg06365.html
>
> The purpose of this series is to split the current reset procedure into
> multiple phases. This will help to solve some ordering difficulties we have
> during reset. Please see patch 4 which adds documentation for more details.
>
> Compared to previous version, I've reduced the scope of the series to
> multi-phase basics. In particular, I've removed migration-related features
> which can be added and discussed later when we've settled the api. I've also
> not included the change to the new api for the ~20 impacted files because it
> highly depends on whether we handle cold vs warm reset difference or not. I'll
> handle them when we'll advance on this point.
>
> I've isolated in patch 2 to 4, the multi-phase base mechanism handling only
> cold reset as suggested by David.
> Patches 5 and 6 do trivial modifications related to the registration of reset
> handler in the main system reset.
> Patch 7 handles the hotplug device reset case.
> These first 7 patches form a multi-phase basics independent subset; the first
> 6
> do not modify the behavior. I'd really like to move forward on them as we have
> things depending on the basic multi-phase capability only (in particular the
> clock-tree support).
>
> Nevertheless I've kept in this series the addition of warm reset (in patches 8
> to 10) so we can continue the discussion. Even if we don't introduce warm
> reset, it allows discussion about multiple reset type support.
> Maybe I should have put these 3 patches in their own (rfc ?) series, since
> there was lot of questioning about the warm reset and talking about handling
> other resets like bus specific ones.
>
> I've tested that the actual reset order was not modified by these patches by
> tracing calls to individual reset method after and before applying the series.
>
>
> Changes v3 -> v4
> general:
> + various comments and typos
> patch 1: add device_legacy_reset function to prepare for reset api change
> + squash of 2 patches from v3 (asked by Peter and David)
> patch 2: Create Resettable QOM interface
> + ResetType enum (only cold for now) (David and Philippe's remark)
> + ResetState to factorize most of the code (to address David's concern)
> + all phases order is now children-to-parent (Peter's remark)
> + assert/deassert removed to isolate migration related features
> patch 3: add Resettable interface in Bus and Device classes
> + squash of 2 patches (make Device and Bus Resettable & switch to
> resettable api) since patch 2 has reduced their size.
> + adaptation to patch 2 changes (warm reset, state and methods)
> + isolate hotplug reset change into patch 7 (Peter's remark)
> + fix qdev/qbus_reset_not doing a cold reset (Peter's remark)
> + call helper device_reset_cold instead of device_reset (David's remark)
> patch 4: docs/devel/reset.txt: create doc about Resettable interface
> + various improvements
> + in this patch, doc is reduced to cold multi-phase reset with no "in
> reset"
> state (other parts are kept for following commits)
> patch 5: vl.c: replace deprecated qbus_reset_all registration
> + suggested comment improvement from Peter
> patch 6: hw/s390x/ipl.c: replace deprecated qbus_reset_all registration
> + suggested comment improvement from Peter
>
> Thanks for your feedback,
> Damien
>
> Damien Hedde (10):
> add device_legacy_reset function to prepare for reset api change
> hw/core: create Resettable QOM interface
> hw/core: add Resettable interface in Bus and Device classes
> docs/devel/reset.txt: create doc about Resettable interface
> vl.c: replace deprecated qbus_reset_all registration
> hw/s390x/ipl.c: replace deprecated qbus_reset_all registration
> hw/core/qdev: replace deprecated device_legacy_reset when hotplugging
> device
> hw/core/resettable: add support for warm reset
> hw/core/: add warm reset helpers for devices and buses
> docs/devel/reset.txt: add documentation about warm reset
>
> Makefile.objs | 1 +
> docs/devel/reset.txt | 284 +++++++++++++++++++++++++++++++++++++++
> hw/audio/intel-hda.c | 2 +-
> hw/core/Makefile.objs | 1 +
> hw/core/bus.c | 64 +++++++++
> hw/core/qdev.c | 86 +++++++++---
> hw/core/resettable.c | 199 +++++++++++++++++++++++++++
> hw/core/trace-events | 36 +++++
> hw/hyperv/hyperv.c | 2 +-
> hw/i386/pc.c | 2 +-
> hw/ide/microdrive.c | 8 +-
> hw/intc/spapr_xive.c | 2 +-
> hw/ppc/pnv_psi.c | 2 +-
> hw/ppc/spapr_pci.c | 2 +-
> hw/ppc/spapr_vio.c | 2 +-
> hw/s390x/ipl.c | 10 +-
> hw/s390x/s390-pci-inst.c | 2 +-
> hw/scsi/vmw_pvscsi.c | 2 +-
> hw/sd/omap_mmc.c | 2 +-
> hw/sd/pl181.c | 2 +-
> include/hw/qdev-core.h | 100 +++++++++++++-
> include/hw/resettable.h | 171 +++++++++++++++++++++++
> tests/Makefile.include | 1 +
> vl.c | 10 +-
> 24 files changed, 949 insertions(+), 44 deletions(-)
> create mode 100644 docs/devel/reset.txt
> create mode 100644 hw/core/resettable.c
> create mode 100644 hw/core/trace-events
> create mode 100644 include/hw/resettable.h
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v4 00/10] Multi-phase reset mechanism,
Damien Hedde <=