hostboot icon indicating copy to clipboard operation
hostboot copied to clipboard

Where is the variable "iv_occsStarted" set to true during the runtime for P10 opal?

Open Theo0208 opened this issue 1 year ago • 4 comments

The “processOccError” function in Hostboot for P10 needs to ensure that "iv_occsStarted" is true before continuing to handle OCC errors, but the iv_occsStarted is false during runtime. It seems that only phyp can set iv_occsStarted to true during runtime, so I want to konw where the variable iv_occsStarted is set to true during runtime for P10 opal.Thanks a lot.

Theo0208 avatar Mar 29 '24 05:03 Theo0208

There were cases where the external HBRT interfaces were called when the OCCs were not started or were reset, so this variable was added to not attempt talking to the OCCs prior to them being loaded/started. This prevents errors from being logged (missing OCC master, errors trying to collect data, etc)

The key would be to call the following function with the completion status (true == started, false == failed), similar to what the PHYP path does in RTPM::load_and_start_pm_complex()

            HTMGT::processOccStartStatus(true, // i_startCompleted
                                         nullptr); // failed proc

cjcain avatar Mar 29 '24 14:03 cjcain

Excuse me, could I understand it this way: Because PHYP system will not load and start PMC in the "call_host_runtime_setup" function during IPL, PMC can only be loaded and started by calling "load_start_pm_complex" through "callSetupPMCLoadStartCallback" in the "rt_start" function during runtime. But OPAL system will call "loadAndStartPMAll" and "processOccStartStatus" in the "call_host_runtime_setup" function during IPL, so for OPAL, it is unnecessary and will not to call "load_and_start_pm_complex" and "processOccStartStatus" function again during runtime, and this is the reason why the variable iv_occsStarted is false for P10 OPAL.

Theo0208 avatar Apr 03 '24 09:04 Theo0208

I am not sure if that last comment had a question or was just a statement. As I said, that HTMGT::processOccStartStatus() function is what sets the iv_occsStarted flag.

You do not need to call the load_and_start_pm_complex() function. You can add a direct call to HTMGT::processOccStartStatus() (similar to what was done in load_and_start_pm_complex)

cjcain avatar Apr 03 '24 15:04 cjcain

Okay,thanks.

Theo0208 avatar Apr 15 '24 02:04 Theo0208