diff options
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.C | 10 | ||||
-rw-r--r-- | src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml | 14 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.C b/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.C index 606c55624..a5b54489f 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.C +++ b/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.C @@ -742,6 +742,16 @@ fapi2::ReturnCode set_runtime_m_and_watt_limit( const std::vector< fapi2::Target //Calculate max power available / number of dimms configured on the VDDR rail l_watt_target = (l_vmem_power_limit_dimm * l_max_dimms) / l_count_dimms_vec; + // If we have too many dimms, deconfigure the first MCS + // We know there are MCSs on the vector due to the check above + FAPI_ASSERT( (l_count_dimms_vec <= l_max_dimms), + fapi2::MSS_DIMM_COUNT_EXCEEDS_VMEM_REGULATOR_LIMIT() + .set_MAX_DIMM_AMOUNT(l_max_dimms) + .set_DIMMS_SEEN(l_count_dimms_vec), + "The number of dimms counted (%d) on the vector of MCS surpasses the limit (%d)", + l_count_dimms_vec, + l_max_dimms); + FAPI_INF("Calculated ATTR_MSS_MEM_WATT_TARGET is %d, power_limit dimm is %d, max_dimms is %d, count dimms on vector is %d", l_watt_target, l_vmem_power_limit_dimm, diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml index e10f8532f..fdf43f9f1 100644 --- a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml +++ b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml @@ -217,5 +217,17 @@ </callout> </hwpError> - + <hwpError> + <rc>RC_MSS_DIMM_COUNT_EXCEEDS_VMEM_REGULATOR_LIMIT</rc> + <description> + The number of dimms counted on the vector of MCS passed into p9_mss_eff_config_thermal + exceeds the limit defined in ATTR_MSS_MRW_MAX_NUMBER_DIMMS_POSSIBLE_PER_VMEM_REGULATOR + </description> + <ffdc>MAX_DIMM_AMOUNT</ffdc> + <ffdc>DIMMS_SEEN</ffdc> + <callout> + <procedure>CODE</procedure> + <priority>HIGH</priority> + </callout> + </hwpError> </hwpErrors> |