aboutsummaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2017-11-29 15:37:02 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-12-03 22:10:55 -0600
commit688c0d51e6e9773e7ad47eb4f6ce71ea032c671d (patch)
tree4119506ce784644cb83427b78199276b9d630600 /asm
parent0d84ea6bda03a00a1765dd7240a9e5231a537e96 (diff)
downloadskiboot-688c0d51e6e9773e7ad47eb4f6ce71ea032c671d.zip
skiboot-688c0d51e6e9773e7ad47eb4f6ce71ea032c671d.tar.gz
skiboot-688c0d51e6e9773e7ad47eb4f6ce71ea032c671d.tar.bz2
fast-reboot: quiesce opal before initiating a fast reboot
Switch fast reboot to use quiescing rather than "wait for a while". If firmware can not be quiesced, then fast reboot is skipped. This significantly improves the robustness of fast reboot in the face of bugs or unexpected latencies. Complexity of synchronization in fast-reboot is reduced, because we are guaranteed to be single-threaded when quiesce succeeds, so locks can be removed. In the case that firmware can be quiesced, then it will generally reduce fast reboot times by nearly 200ms, because quiescing usually takes very little time. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'asm')
-rw-r--r--asm/head.S10
1 files changed, 0 insertions, 10 deletions
diff --git a/asm/head.S b/asm/head.S
index 68a4e7b..eccf070 100644
--- a/asm/head.S
+++ b/asm/head.S
@@ -960,12 +960,6 @@ opal_entry:
addis %r2,%r2,(__toc_start - __head)@ha
addi %r2,%r2,(__toc_start - __head)@l
- /* Check for a reboot in progress */
- LOAD_ADDR_FROM_TOC(%r12, reboot_in_progress)
- lbz %r12,0(%r12)
- cmpwi %r12,0
- bne 2f
-
/* Check entry */
mr %r3,%r1
bl opal_entry_check
@@ -1003,10 +997,6 @@ opal_entry:
ld %r1,STACK_GPR1(%r1)
blr
-2: /* Reboot in progress, reject all calls */
- li %r3,OPAL_BUSY
- b 1b
-
.global start_kernel
start_kernel:
sync