qemu-devel
[Top][All Lists]
Advanced

[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
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]