[Qemu-devel] [PATCH v4 00/10] Multi-phase reset mechanism

Damien Hedde posted 10 patches 4 years, 7 months ago
Test docker-clang@ubuntu passed
Test FreeBSD passed
Test docker-mingw@fedora passed
Test checkpatch failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190821163341.16309-1-damien.hedde@greensocs.com
Maintainers: Richard Henderson <rth@twiddle.net>, Fam Zheng <fam@euphon.net>, David Gibson <david@gibson.dropbear.id.au>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Gerd Hoffmann <kraxel@redhat.com>, Thomas Huth <thuth@redhat.com>, Collin Walling <walling@linux.ibm.com>, David Hildenbrand <david@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, John Snow <jsnow@redhat.com>, Cornelia Huck <cohuck@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>, "Cédric Le Goater" <clg@kaod.org>, Dmitry Fleytman <dmitry.fleytman@gmail.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Halil Pasic <pasic@linux.ibm.com>
There is a newer version of this series
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
[Qemu-devel] [PATCH v4 00/10] Multi-phase reset mechanism
Posted by Damien Hedde 4 years, 7 months ago
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

-- 
2.22.0


Re: [Qemu-devel] [PATCH v4 00/10] Multi-phase reset mechanism
Posted by no-reply@patchew.org 4 years, 7 months ago
Patchew URL: https://patchew.org/QEMU/20190821163341.16309-1-damien.hedde@greensocs.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Subject: [Qemu-devel] [PATCH v4 00/10] Multi-phase reset mechanism
Message-id: 20190821163341.16309-1-damien.hedde@greensocs.com

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20190821163341.16309-1-damien.hedde@greensocs.com -> patchew/20190821163341.16309-1-damien.hedde@greensocs.com
Submodule 'capstone' (https://git.qemu.org/git/capstone.git) registered for path 'capstone'
Submodule 'dtc' (https://git.qemu.org/git/dtc.git) registered for path 'dtc'
Submodule 'roms/QemuMacDrivers' (https://git.qemu.org/git/QemuMacDrivers.git) registered for path 'roms/QemuMacDrivers'
Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF'
Submodule 'roms/edk2' (https://git.qemu.org/git/edk2.git) registered for path 'roms/edk2'
Submodule 'roms/ipxe' (https://git.qemu.org/git/ipxe.git) registered for path 'roms/ipxe'
Submodule 'roms/openbios' (https://git.qemu.org/git/openbios.git) registered for path 'roms/openbios'
Submodule 'roms/openhackware' (https://git.qemu.org/git/openhackware.git) registered for path 'roms/openhackware'
Submodule 'roms/opensbi' (https://git.qemu.org/git/opensbi.git) registered for path 'roms/opensbi'
Submodule 'roms/qemu-palcode' (https://git.qemu.org/git/qemu-palcode.git) registered for path 'roms/qemu-palcode'
Submodule 'roms/seabios' (https://git.qemu.org/git/seabios.git/) registered for path 'roms/seabios'
Submodule 'roms/seabios-hppa' (https://git.qemu.org/git/seabios-hppa.git) registered for path 'roms/seabios-hppa'
Submodule 'roms/sgabios' (https://git.qemu.org/git/sgabios.git) registered for path 'roms/sgabios'
Submodule 'roms/skiboot' (https://git.qemu.org/git/skiboot.git) registered for path 'roms/skiboot'
Submodule 'roms/u-boot' (https://git.qemu.org/git/u-boot.git) registered for path 'roms/u-boot'
Submodule 'roms/u-boot-sam460ex' (https://git.qemu.org/git/u-boot-sam460ex.git) registered for path 'roms/u-boot-sam460ex'
Submodule 'slirp' (https://git.qemu.org/git/libslirp.git) registered for path 'slirp'
Submodule 'tests/fp/berkeley-softfloat-3' (https://git.qemu.org/git/berkeley-softfloat-3.git) registered for path 'tests/fp/berkeley-softfloat-3'
Submodule 'tests/fp/berkeley-testfloat-3' (https://git.qemu.org/git/berkeley-testfloat-3.git) registered for path 'tests/fp/berkeley-testfloat-3'
Submodule 'ui/keycodemapdb' (https://git.qemu.org/git/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into 'capstone'...
Submodule path 'capstone': checked out '22ead3e0bfdb87516656453336160e0a37b066bf'
Cloning into 'dtc'...
Submodule path 'dtc': checked out '88f18909db731a627456f26d779445f84e449536'
Cloning into 'roms/QemuMacDrivers'...
Submodule path 'roms/QemuMacDrivers': checked out '90c488d5f4a407342247b9ea869df1c2d9c8e266'
Cloning into 'roms/SLOF'...
Submodule path 'roms/SLOF': checked out '7bfe584e321946771692711ff83ad2b5850daca7'
Cloning into 'roms/edk2'...
Submodule path 'roms/edk2': checked out '20d2e5a125e34fc8501026613a71549b2a1a3e54'
Submodule 'SoftFloat' (https://github.com/ucb-bar/berkeley-softfloat-3.git) registered for path 'ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3'
Submodule 'CryptoPkg/Library/OpensslLib/openssl' (https://github.com/openssl/openssl) registered for path 'CryptoPkg/Library/OpensslLib/openssl'
Cloning into 'ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3'...
Submodule path 'roms/edk2/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3': checked out 'b64af41c3276f97f0e181920400ee056b9c88037'
Cloning into 'CryptoPkg/Library/OpensslLib/openssl'...
Submodule path 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl': checked out '50eaac9f3337667259de725451f201e784599687'
Submodule 'boringssl' (https://boringssl.googlesource.com/boringssl) registered for path 'boringssl'
Submodule 'krb5' (https://github.com/krb5/krb5) registered for path 'krb5'
Submodule 'pyca.cryptography' (https://github.com/pyca/cryptography.git) registered for path 'pyca-cryptography'
Cloning into 'boringssl'...
Submodule path 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl': checked out '2070f8ad9151dc8f3a73bffaa146b5e6937a583f'
Cloning into 'krb5'...
Submodule path 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5': checked out 'b9ad6c49505c96a088326b62a52568e3484f2168'
Cloning into 'pyca-cryptography'...
Submodule path 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl/pyca-cryptography': checked out '09403100de2f6f1cdd0d484dcb8e620f1c335c8f'
Cloning into 'roms/ipxe'...
Submodule path 'roms/ipxe': checked out 'de4565cbe76ea9f7913a01f331be3ee901bb6e17'
Cloning into 'roms/openbios'...
Submodule path 'roms/openbios': checked out 'c79e0ecb84f4f1ee3f73f521622e264edd1bf174'
Cloning into 'roms/openhackware'...
Submodule path 'roms/openhackware': checked out 'c559da7c8eec5e45ef1f67978827af6f0b9546f5'
Cloning into 'roms/opensbi'...
Submodule path 'roms/opensbi': checked out 'ce228ee0919deb9957192d723eecc8aaae2697c6'
Cloning into 'roms/qemu-palcode'...
Submodule path 'roms/qemu-palcode': checked out 'bf0e13698872450164fa7040da36a95d2d4b326f'
Cloning into 'roms/seabios'...
Submodule path 'roms/seabios': checked out 'a5cab58e9a3fb6e168aba919c5669bea406573b4'
Cloning into 'roms/seabios-hppa'...
Submodule path 'roms/seabios-hppa': checked out '0f4fe84658165e96ce35870fd19fc634e182e77b'
Cloning into 'roms/sgabios'...
Submodule path 'roms/sgabios': checked out 'cbaee52287e5f32373181cff50a00b6c4ac9015a'
Cloning into 'roms/skiboot'...
Submodule path 'roms/skiboot': checked out '261ca8e779e5138869a45f174caa49be6a274501'
Cloning into 'roms/u-boot'...
Submodule path 'roms/u-boot': checked out 'd3689267f92c5956e09cc7d1baa4700141662bff'
Cloning into 'roms/u-boot-sam460ex'...
Submodule path 'roms/u-boot-sam460ex': checked out '60b3916f33e617a815973c5a6df77055b2e3a588'
Cloning into 'slirp'...
Submodule path 'slirp': checked out '126c04acbabd7ad32c2b018fe10dfac2a3bc1210'
Cloning into 'tests/fp/berkeley-softfloat-3'...
Submodule path 'tests/fp/berkeley-softfloat-3': checked out 'b64af41c3276f97f0e181920400ee056b9c88037'
Cloning into 'tests/fp/berkeley-testfloat-3'...
Submodule path 'tests/fp/berkeley-testfloat-3': checked out '5a59dcec19327396a011a17fd924aed4fec416b3'
Cloning into 'ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce'
Switched to a new branch 'test'
89a6fbd docs/devel/reset.txt: add documentation about warm reset
e23e78e hw/core/: add warm reset helpers for devices and buses
02fd837 hw/core/resettable: add support for warm reset
015bdfc hw/core/qdev: replace deprecated device_legacy_reset when hotplugging device
2467320 hw/s390x/ipl.c: replace deprecated qbus_reset_all registration
52a1958 vl.c: replace deprecated qbus_reset_all registration
335ff4c docs/devel/reset.txt: create doc about Resettable interface
9b58ee1 hw/core: add Resettable interface in Bus and Device classes
aa62637 hw/core: create Resettable QOM interface
6336094 add device_legacy_reset function to prepare for reset api change

=== OUTPUT BEGIN ===
1/10 Checking commit 6336094315df (add device_legacy_reset function to prepare for reset api change)
2/10 Checking commit aa62637a8f9b (hw/core: create Resettable QOM interface)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#62: 
new file mode 100644

total: 0 errors, 1 warnings, 395 lines checked

Patch 2/10 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
3/10 Checking commit 9b58ee15ffc4 (hw/core: add Resettable interface in Bus and Device classes)
4/10 Checking commit 335ff4c97c54 (docs/devel/reset.txt: create doc about Resettable interface)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#14: 
new file mode 100644

total: 0 errors, 1 warnings, 237 lines checked

Patch 4/10 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
5/10 Checking commit 52a19580dc1c (vl.c: replace deprecated qbus_reset_all registration)
6/10 Checking commit 246732015660 (hw/s390x/ipl.c: replace deprecated qbus_reset_all registration)
7/10 Checking commit 015bdfcc4bf7 (hw/core/qdev: replace deprecated device_legacy_reset when hotplugging device)
8/10 Checking commit 02fd837431e5 (hw/core/resettable: add support for warm reset)
9/10 Checking commit e23e78e680c6 (hw/core/: add warm reset helpers for devices and buses)
ERROR: return is not a function, parentheses are not required
#34: FILE: hw/core/bus.c:90:
+    return (cur_type & type);

ERROR: return is not a function, parentheses are not required
#61: FILE: hw/core/qdev.c:297:
+    return (cur_type & type);

total: 2 errors, 0 warnings, 95 lines checked

Patch 9/10 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

10/10 Checking commit 89a6fbdf06e7 (docs/devel/reset.txt: add documentation about warm reset)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20190821163341.16309-1-damien.hedde@greensocs.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [Qemu-devel] [PATCH v4 00/10] Multi-phase reset mechanism
Posted by Damien Hedde 4 years, 6 months ago
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
>