diff options
Diffstat (limited to 'src/usr/isteps/istep21/call_host_runtime_setup.C')
-rw-r--r-- | src/usr/isteps/istep21/call_host_runtime_setup.C | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/src/usr/isteps/istep21/call_host_runtime_setup.C b/src/usr/isteps/istep21/call_host_runtime_setup.C index af7699b6c..f32827fbf 100644 --- a/src/usr/isteps/istep21/call_host_runtime_setup.C +++ b/src/usr/isteps/istep21/call_host_runtime_setup.C @@ -153,24 +153,38 @@ void* call_host_runtime_setup (void *io_pArgs) if(l_activatePM) { - l_err = HBPM::loadPMAll(HBPM::PM_LOAD); + TARGETING::Target* l_failTarget = NULL; + bool pmStartSuccess = true; + + l_err = loadAndStartPMAll(HBPM::PM_LOAD, l_failTarget); if (l_err) { TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "loadPMAll failed"); + "loadAndStartPMAll failed"); // Commit the error and continue with the istep errlCommit(l_err, ISTEP_COMP_ID); + pmStartSuccess = false; } - l_err = HBPM::startPMAll(); - if (l_err) - { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "startPMAll failed"); - // Commit the error and continue with the istep - errlCommit(l_err, ISTEP_COMP_ID); +#ifdef CONFIG_HTMGT + // Report PM status to HTMGT + HTMGT::processOccStartStatus(pmStartSuccess,l_failTarget); +#else + // Verify all OCCs have reached the checkpoint + if (pmStartSuccess) + { + l_err = HBPM::verifyOccChkptAll(); + if (l_err) + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "verifyOccCheckpointAll failed"); + + // Commit the error and continue with the istep + errlCommit(l_err, ISTEP_COMP_ID); + } } +#endif } #if 0 //@TODO-RTC:164022-Support max pstate without OCC |