summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.C10
-rw-r--r--src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml14
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>
OpenPOWER on IntegriCloud