From 321ce4299b31ad8f54172079b32d20ead5d24a30 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Mon, 1 Apr 2013 10:29:05 -0500 Subject: Allow winkle of all threads for multi-drawer add. RTC: 63124 Change-Id: I1ad1d6bdf6a2848b686b25504fabddddb701d440 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3813 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert Reviewed-by: Daniel M. Crowell Reviewed-by: Michael Baiocchi Reviewed-by: A. Patrick Williams III --- src/include/sys/misc.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/include/sys') diff --git a/src/include/sys/misc.h b/src/include/sys/misc.h index a4ae8d006..d680548b8 100644 --- a/src/include/sys/misc.h +++ b/src/include/sys/misc.h @@ -58,6 +58,17 @@ enum ShutdownStatus SHUTDOWN_STATUS_INITSVC_FAILED = 0x01230004, }; +/** + * @enum WinkleScopes + * + * Scope of the winkle operation. + */ +enum WinkleScope +{ + WINKLE_SCOPE_MASTER = 0x0, + WINKLE_SCOPE_ALL = 0x1, +}; + #ifdef __cplusplus extern "C" { @@ -161,6 +172,19 @@ uint64_t cpu_spr_value(CpuSprNames spr); */ int cpu_master_winkle(); +/** @fn cpu_all_winkle + * @brief Winkle all the threads. + * + * This is used in multi-node systems to quiesce all the cores in a drawer + * prior to the fabric being stitched together. + * + * @retval 0 - Success + * + * @note This function will migrate the task to the master thread and in the + * process will unset any task affinity. See task_affinity_unpin(). + */ +int cpu_all_winkle(); + /** @fn cpu_crit_assert * @brief Forces a Terminate Immediate after a crit-assert is issued * @param[in] i_failAddr - value in the linkRegister of the address -- cgit v1.2.1