summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/istep13
diff options
context:
space:
mode:
authorIlya Smirnov <ismirno@us.ibm.com>2019-04-11 09:42:19 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-04-24 13:52:59 -0500
commita1f8b3160946b44d37ac947de70430f4a49b28cd (patch)
tree5f09163e170d4d56e4b7b33857d4f00a03018729 /src/usr/isteps/istep13
parent2007c4f940856589a087452beac9a20359098b0b (diff)
downloadtalos-hostboot-a1f8b3160946b44d37ac947de70430f4a49b28cd.tar.gz
talos-hostboot-a1f8b3160946b44d37ac947de70430f4a49b28cd.zip
Add Child RC Checking to Thread Pool
Add logic for Thread Pool to return error log when shutdown() is called if a child thread (or multiple child threads) had crashed. This is a default behavior, but a constructor option can switch this functionality off. The new logic will aid in debugging of the failures of child processes, as the failures could be catched when they occurred and not at some point after. Change-Id: I9736d659a086701b8e4f18f41504df4864924d88 RTC: 208517 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75897 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-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: Michael Baiocchi <mbaiocch@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps/istep13')
-rw-r--r--src/usr/isteps/istep13/call_mss_draminit_trainadv.C13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/usr/isteps/istep13/call_mss_draminit_trainadv.C b/src/usr/isteps/istep13/call_mss_draminit_trainadv.C
index fc42f7264..f50916be7 100644
--- a/src/usr/isteps/istep13/call_mss_draminit_trainadv.C
+++ b/src/usr/isteps/istep13/call_mss_draminit_trainadv.C
@@ -154,7 +154,7 @@ void MembufWorkItem::operator()()
mutex_unlock(&g_stepErrorMutex);
// Commit Error
- errlCommit( l_err, HWPF_COMP_ID );
+ errlCommit( l_err, ISTEP_COMP_ID );
break;
}
@@ -210,7 +210,7 @@ void* call_mss_draminit_trainadv (void *io_pArgs)
l_stepError.addErrorDetails( l_err );
// Commit Error
- errlCommit( l_err, HWPF_COMP_ID );
+ errlCommit( l_err, ISTEP_COMP_ID );
}
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
@@ -252,7 +252,14 @@ void* call_mss_draminit_trainadv (void *io_pArgs)
tp.start();
//wait for all workitems to complete, then clean up all threads.
- tp.shutdown();
+ l_err = tp.shutdown();
+ if(l_err)
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ ERR_MRK"call_mss_draminit_trainadv: thread pool returned an error");
+ l_stepError.addErrorDetails(l_err);
+ errlCommit(l_err, ISTEP_COMP_ID);
+ }
}
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
OpenPOWER on IntegriCloud