diff options
author | Bill Hoffa <wghoffa@us.ibm.com> | 2016-08-10 09:31:13 -0500 |
---|---|---|
committer | Matthew A. Ploetz <maploetz@us.ibm.com> | 2016-08-10 14:51:24 -0400 |
commit | c61d7f1c774442fc0830aa7bc0fd1c41eda0889f (patch) | |
tree | 6d731c7204e348d5e0fd763224c4d41169610e54 /src/usr/intr | |
parent | 0f64c7b414998e6f9b1b7211f55f0ca481208070 (diff) | |
download | talos-hostboot-c61d7f1c774442fc0830aa7bc0fd1c41eda0889f.tar.gz talos-hostboot-c61d7f1c774442fc0830aa7bc0fd1c41eda0889f.zip |
Refactor Polling for PSU Interrupt handling by INTRP
Change-Id: I4875bf436e5b258b7cd932b370e42b12cfdeea86
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28101
Reviewed-by: Dean Sanner <dsanner@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Elizabeth K. Liner <eliner@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
Diffstat (limited to 'src/usr/intr')
-rw-r--r-- | src/usr/intr/intrrp.C | 8 | ||||
-rw-r--r-- | src/usr/intr/intrrp.H | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/usr/intr/intrrp.C b/src/usr/intr/intrrp.C index 25bf01d82..dcabd16f1 100644 --- a/src/usr/intr/intrrp.C +++ b/src/usr/intr/intrrp.C @@ -1049,7 +1049,7 @@ errlHndl_t IntrRp::handlePsuInterrupt(ext_intr_t i_type) uint32_t l_addr = PSI_BRIDGE_PSU_DOORBELL_REG; size_t scom_len = sizeof(uint64_t); uint64_t reg = 0x0; - uint64_t l_num_yields = 0; + uint64_t l_elapsed_time_ns = 0; TARGETING::Target* procTarget = NULL; TARGETING::targetService().masterProcChipTargetHandle( procTarget ); @@ -1074,15 +1074,15 @@ errlHndl_t IntrRp::handlePsuInterrupt(ext_intr_t i_type) TRACDCOMP(g_trac_intr, "Host/SBE Mailbox " "response. Wait for Polling to handle" " response"); - task_yield(); // allow PSU mbox task to handle - l_num_yields += 1; + nanosleep(0,10000); + l_elapsed_time_ns += 10000; } else { //Polling Complete break; } - if (l_num_yields > 30) + if (l_elapsed_time_ns > MAX_PSU_LONG_TIMEOUT_NS) { TRACFCOMP(g_trac_intr, "PSU Timeout hit"); /*@ errorlog tag diff --git a/src/usr/intr/intrrp.H b/src/usr/intr/intrrp.H index 7b424fa02..a8a1eafba 100644 --- a/src/usr/intr/intrrp.H +++ b/src/usr/intr/intrrp.H @@ -218,7 +218,7 @@ namespace INTR XIVE_RESET_UNIT_ENABLE = 0x8000000000000000, ACK_HYPERVISOR_INT_REG_OFFSET = 0x830/sizeof(uint16_t), POWERBUS_STATE_QUIESCE = 0xC000000000000000, - MAX_PSU_LONG_TIMEOUT_NS = 100000*NS_PER_MSEC, + MAX_PSU_LONG_TIMEOUT_NS = 5000*NS_PER_MSEC, //5 seconds ESB_STATE_RESET = 0, ESB_STATE_OFF = 1, |