Skip to content

Commit

Permalink
Disable fast-reset for POWER8
Browse files Browse the repository at this point in the history
There is a bug with fast-reset when CPU cores are busy, which can be
reproduced by running `stress` and then trying `reboot -ff` (this is
what the op-test test cases FastRebootHostStress and
FastRebootHostStressTorture do). What happens is the cores lock up,
which isn't the best thing in the world when you want them to start
executing instructions again.

A workaround is to use instruction ramming, which while greatly
increasing the reliability of fast-reset on p8, doesn't make it perfect.

Instruction ramming is what pdbg was modified to do in order to have the
sreset functionality work reliably on p8.
pdbg patches: https://patchwork.ozlabs.org/project/pdbg/list/?series=96593&state=*

Fixes: #185
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
  • Loading branch information
stewartsmith committed May 3, 2019
1 parent 1191089 commit 14f709b
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions core/platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,16 @@ static int64_t opal_cec_reboot(void)

opal_quiesce(QUIESCE_HOLD, -1);

/* Try fast-reset unless explicitly disabled */
if (!nvram_query_eq("fast-reset","0"))
if (proc_gen == proc_gen_p8 && nvram_query_eq("fast-reset","1")) {
/*
* Bugs in P8 mean fast reboot isn't 100% reliable when cores
* are busy, so only attempt if explicitly *enabled*.
*/
fast_reboot();
} else if (!nvram_query_eq("fast-reset","0")) {
/* Try fast-reset unless explicitly disabled */
fast_reboot();
}

console_complete_flush();

Expand Down

0 comments on commit 14f709b

Please sign in to comment.