diff options
| author | Mike Baiocchi <mbaiocch@us.ibm.com> | 2018-03-22 17:23:18 -0500 |
|---|---|---|
| committer | William G. Hoffa <wghoffa@us.ibm.com> | 2018-03-29 10:44:08 -0400 |
| commit | 95c1dd78c27aca67b4298854306702fe605f906e (patch) | |
| tree | c192b7b6885034191af2699072d8d1e5345e8a4c /src/usr/mbox | |
| parent | 42e4c422f63b24bc73d2ce3a0e9b086ccee75aee (diff) | |
| download | blackbird-hostboot-95c1dd78c27aca67b4298854306702fe605f906e.tar.gz blackbird-hostboot-95c1dd78c27aca67b4298854306702fe605f906e.zip | |
Close and Disable TCEs on Non-Master Nodes
During istep21.1 this commit sends a message to all non-Master nodes
to close and disable their TCEs using the ipc mailbox interface to
the FSP.
Change-Id: I5575228c9f237025a48e0aeca23e741724ec7886
RTC:187335
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56269
CI-Ready: Michael Baiocchi <mbaiocch@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Reviewed-by: ILYA SMIRNOV <ismirno@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr/mbox')
| -rw-r--r-- | src/usr/mbox/ipcSp.C | 72 |
1 files changed, 70 insertions, 2 deletions
diff --git a/src/usr/mbox/ipcSp.C b/src/usr/mbox/ipcSp.C index 5878a1bf1..d2c824f03 100644 --- a/src/usr/mbox/ipcSp.C +++ b/src/usr/mbox/ipcSp.C @@ -32,8 +32,9 @@ #include <mbox/mbox_reasoncodes.H> #include <intr/interrupt.H> #include <initservice/initserviceif.H> -#include <sbeio/sbeioif.H> - +#include <sbeio/sbeioif.H> +#include <util/utiltce.H> +#include <targeting/targplatutil.H> namespace ISTEP_21 { @@ -321,6 +322,73 @@ void IpcSp::msgHandler() break; } + + case IPC_CLOSE_TCES: + { + TRACFCOMP( g_trac_ipc, + "Closing TCEs on this node (%d)", + TARGETING::UTIL::getCurrentNodePhysId()); + + // make sure util module is loaded + const char * libutil = "libutil.so"; + if ( !VFS::module_is_loaded( libutil ) ) + { + err = VFS::module_load( libutil ); + + if ( err ) + { + TRACFCOMP( g_trac_ipc, + "Could not load util module" ); + } + else + { + mod_loaded = true; + } + } + + if(!err) + { + err = TCE::utilClosePayloadTces(); + } + + if(!err) + { + err = TCE::utilDisableTces(); + } + + if(err) + { + uint32_t l_errPlid = err->plid(); + errlCommit(err, IPC_COMP_ID); + INITSERVICE::doShutdown(l_errPlid, true); + } + + if(mod_loaded) + { + err = VFS::module_unload( libutil ); + + if (err) + { + errlCommit(err, IPC_COMP_ID); + } + else + { + mod_loaded = false; + } + } + + // Respond + err = MBOX::send(MBOX::HB_CLOSE_TCES_MSGQ, msg, msg->data[1] ); + if (err) + { + uint32_t l_errPlid = err->plid(); + errlCommit(err,IPC_COMP_ID); + INITSERVICE::doShutdown(l_errPlid, true); + } + + break; + } + default: TRACFCOMP( g_trac_ipc, |

