From ff5e4695cc58653dda06b0e861349a9d520d87cc Mon Sep 17 00:00:00 2001 From: Dan Crowell Date: Tue, 22 Jan 2019 15:32:10 -0600 Subject: Add retry to slave core wakeup path We are still seeing some very intermittent errors in the slave core wakeup path. It still seems like we may have a timing issue. Until we figure out exactly what is going on, I am adding a retry mechanism that should get the core to report in correctly. The retry is done by issuing an additional doorbell message to the core that didn't report in. Change-Id: Ib87e5d58e079674d1eebb44c10d0252a35ea0519 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70761 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Nicholas E. Bofferding Reviewed-by: Dean Sanner Reviewed-by: William G. Hoffa Reviewed-by: Daniel M. Crowell --- src/include/kernel/cpumgr.H | 11 ++++++++++- src/include/kernel/syscalls.H | 4 +++- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'src/include/kernel') diff --git a/src/include/kernel/cpumgr.H b/src/include/kernel/cpumgr.H index f8daf5ab3..9d741cd83 100644 --- a/src/include/kernel/cpumgr.H +++ b/src/include/kernel/cpumgr.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2010,2018 */ +/* Contributors Listed Below - COPYRIGHT 2010,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -186,6 +186,15 @@ class CpuManager static void startCore(uint64_t pir,uint64_t i_threads); + /** @fn wakeupCore + * Start the core, can only be run after startCore. + * + * @param[in] pir - PIR value of first thread in core. + * @param[in] i_threads - Bitstring of threads to enable (left-justified). + */ + static void wakeupCore(uint64_t pir,uint64_t i_threads); + + /** @fn forceMemoryPeriodic() * Force the memory free / coalesce operations to be performed on the * next "periodic" interval. diff --git a/src/include/kernel/syscalls.H b/src/include/kernel/syscalls.H index c606ad771..42e1a551b 100644 --- a/src/include/kernel/syscalls.H +++ b/src/include/kernel/syscalls.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2010,2018 */ +/* Contributors Listed Below - COPYRIGHT 2010,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -99,6 +99,8 @@ namespace Systemcalls MISC_CPUNAP, /** cpu_master_winkle() */ MISC_CPUWINKLE, + /** cpu_wakeup_core() */ + MISC_CPUWAKEUPCORE, /** mm_alloc_block() */ MM_ALLOC_BLOCK, -- cgit v1.2.3