[Skiboot] [PATCH v2 00/25] move direct controls out of fast-reboot, generalize them, add quiescing
Nicholas Piggin
npiggin at gmail.com
Sat Nov 25 01:08:09 AEDT 2017
Here's a set of patches that move the p8 direct controls out of
fast-reboot and into direct-controls. The fast reboot APIs are
implemented on top of direct controls API. This should allow fast
reboot to use sreset on p9, and cleans things up.
Also added opal quiescing and implements it in fast reboot, which
is also useful for the host.
Since this was last posted, I've made quite a few changes (thanks
to review and testing with op-test-framework).
Changes:
- better debugging output for opal quiesce errors
- fix un-quiescing bug upon timeout failure
- Don't de-assert special wakeup before secondaries have called in (this
seemed to be the cause of the reduced reliability of v1).
- add error checking for p8 scoms
- document p8 sreset limitations
- split up patches better
- improved changelog comments
- fix up CPU iterator loops to follow existing iterator patterns
- document mutual exclusion and acquire/release semantics of opal quiescing
Thanks,
Nick
Nicholas Piggin (25):
fast-reboot: restore SMT priority on spin loop exit
fast-reboot: factor out direct control loops for sreset
fast-reboot: remove last man standing logic
fast-reboot: clean up some common cpu iteration processes with macros
fast-reboot: factor out the mambo sreset code
fast-reboot: add sreset_all_others error handling
fast-reboot: make spin loops consistent and SMT friendly
fast-reboot: add sreset timeout detection and handling
fast-reboot: add more barriers around cpu state changes
fast-reboot: remove delay after sreset
fast-reboot: inline fast_reset_p8 into fast_reboot
fast-reboot: move de-asserting of special wakeups to the initiator
fast-reboot: allow mambo fast reboot independent of CPU type
fast-reboot: move sreset direct controls to direct-controls.c
direct-controls: change p8_sreset_all_others sequence
direct-controls: p8 implementation of generic direct controls
direct-controls: add xscom error handling for p8
core/lock: Introduce atomic cmpxchg and implement try_lock with it
core/lock: improve bust_locks
asm/head: add entry/exit calls
asm/head: move opal entry token check into C
core/opal: always verify cpu->pir on entry
core: Add support for quiescing OPAL
fast-reboot: quiesce opal before initiating a fast reboot
fast-reboot: improve failure error messages
asm/Makefile.inc | 2 +-
asm/head.S | 35 +--
core/cpu.c | 36 +++
core/direct-controls.c | 349 ++++++++++++++++++++-
core/fast-reboot.c | 435 ++++++--------------------
core/lock.c | 29 +-
core/opal.c | 204 +++++++++++-
core/platform.c | 6 +
doc/opal-api/opal-quiesce-158.rst | 59 ++++
doc/opal-api/opal-signal-system-reset-145.rst | 7 +
include/cpu.h | 12 +
asm/lock.S => include/direct-controls.h | 36 +--
include/lock.h | 58 +++-
include/opal-api.h | 9 +-
include/opal-internal.h | 2 +
15 files changed, 861 insertions(+), 418 deletions(-)
create mode 100644 doc/opal-api/opal-quiesce-158.rst
rename asm/lock.S => include/direct-controls.h (56%)
--
2.15.0
More information about the Skiboot
mailing list