diff options
author | Wael El-Essawy <welessa@us.ibm.com> | 2016-08-29 19:33:20 -0500 |
---|---|---|
committer | Wael El-Essawy <welessa@us.ibm.com> | 2016-09-16 11:19:15 -0400 |
commit | 8a7d7b2d13098453380fbdf69c0136515ba33b06 (patch) | |
tree | 9ce20ff68625d0a6d4b5d118514a48949232e173 /src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h | |
parent | 444caf2b8e674263f27963b3c9739e48aa793d00 (diff) | |
download | talos-occ-8a7d7b2d13098453380fbdf69c0136515ba33b06.tar.gz talos-occ-8a7d7b2d13098453380fbdf69c0136515ba33b06.zip |
Memory Temperature Control Loop (memory throttling)
* Memory throttling due to over temp
* Throttle when reach timeout getting new temperature readings
* Log error for temperature exceeding ERROR threshold
Change-Id: I089c88aadba84e7296ad87b8cb87fa8c045ff912
RTC: 131188
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28933
Reviewed-by: Wael El-Essawy <welessa@us.ibm.com>
Tested-by: Wael El-Essawy <welessa@us.ibm.com>
Diffstat (limited to 'src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h')
-rwxr-xr-x | src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h | 76 |
1 files changed, 32 insertions, 44 deletions
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h index 4857671..4c0f3ad 100755 --- a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h +++ b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h @@ -287,68 +287,56 @@ typedef struct __attribute__ ((packed)) // Provides memory throttle min and max values for Nimbus systems typedef struct __attribute__ ((packed)) { - uint8_t mc_num; // Physical MC: [0=MC01, 2=MC23] - uint8_t port_num; // Physical port # [0-3] - - uint16_t min_n_per_port; // Lowest per port allowed numerator - uint16_t min_mem_power; // Max mem Power @min (x0.1W) - - uint16_t pcap1_n_per_port; // Static per port numerator @PCAP1 - uint16_t pcap1_n_per_chip; // Static per chip numerator @PCAP1 - uint16_t pcap1_mem_power; // Max memory power @PCAP1 (x0.1W) - - uint16_t pcap2_n_per_port; // Static per port numerator @PCAP2 - uint16_t pcap2_n_per_chip; // Static per chip numerator @PCAP2 - uint16_t pcap2_mem_power; // Max memory power @PCAP2 (x0.1W) - - uint16_t nom_n_per_port; // Static per port @Redundant (no ovs) - uint16_t nom_n_per_slot; // Static per slot @Redundant - uint16_t nom_mem_power; // Max memory power @Redundant(x0.1W) - - uint16_t ovs_n_per_port; // Static per port @Oversubscription - uint16_t ovs_n_per_slot; // Static per slot @Oversubscription - uint16_t ovs_mem_power; // Max memory power @Oversubscription (x0.1W) -}nimbus_mem_throt_t; + uint8_t mc_num; // Physical MC: [0=MC01, 2=MC23] + uint8_t port_num; // Physical port # [0-3] +} cmdh_mem_throt_nimbus_info_t; // Provides memory throttle min and max values for Cumulus systems typedef struct __attribute__ ((packed)) { - uint8_t centaur_num; // Physical centaur# [0-7] - uint8_t mba_num; // Memory Buffer within centaur [0-1] + uint8_t centaur_num; // Physical centaur# [0-7] + uint8_t mba_num; // Memory Buffer within centaur [0-1] +} cmdh_mem_throt_cumulus_info_t; - uint16_t min_n_per_mba; // Lowest per MBA allowed numerator - uint16_t min_mem_power; // Max mem Power @min (x0.1W) +// Nimbus/Cumulus dimm/centaur Info +typedef union cmdh_mem_throt_data_set +{ + cmdh_mem_throt_nimbus_info_t nimbus; + cmdh_mem_throt_cumulus_info_t cumulus; +} cmdh_mem_throt_info_t; - uint16_t pcap1_n_per_mba; // Static per MBA numerator @PCAP1 - uint16_t pcap1_n_per_chip; // Static per chip numerator @PCAP1 - uint16_t pcap1_mem_power; // Max memory power @PCAP1 (x0.1W) +typedef struct __attribute__ ((packed)) +{ + cmdh_mem_throt_info_t mem_throt_info; // Nimbus/Cumulus information header - uint16_t pcap2_n_per_mba; // Static per MBA numerator @PCAP2 - uint16_t pcap2_n_per_chip; // Static per chip numerator @PCAP2 - uint16_t pcap2_mem_power; // Max memory power @PCAP2 (x0.1W) + uint16_t min_n_per_mba; // Lowest per MBA allowed numerator + uint16_t min_mem_power; // Max mem Power @min (x0.1W) - uint16_t nom_n_per_mba; // Static per MBA @Redundant (no ovs) - uint16_t nom_n_per_chip; // Static per chip @Redundant - uint16_t nom_mem_power; // Max memory power @Redundant(x0.1W) + uint16_t turbo_n_per_mba; // Static per MBA numerator @Turbo + uint16_t turbo_n_per_chip; // Static per chip numerator @Turbo + uint16_t turbo_mem_power; // Max memory power @Turbo (x0.1W) - uint16_t ovs_n_per_mba; // Static per MBA @Oversubscription - uint16_t ovs_n_per_chip; // Static per chip @Oversubscription - uint16_t ovs_mem_power; // Max memory power @Oversubscription (x0.1W) -}cumulus_mem_throt_t; + uint16_t pcap_n_per_mba; // Static per MBA numerator @PCAP + uint16_t pcap_n_per_chip; // Static per chip numerator @PCAP + uint16_t pcap_mem_power; // Max memory power @PCAP (x0.1W) -typedef union cmdh_mem_throt_data_set -{ - nimbus_mem_throt_t nimbus; - cumulus_mem_throt_t cumulus; + uint16_t nom_n_per_mba; // Static per MBA @Redundant (no ovs) + uint16_t nom_n_per_chip; // Static per chip @Redundant + uint16_t nom_mem_power; // Max memory power @Redundant(x0.1W) + + uint16_t reserved_n_per_mba; // reserved + uint16_t reserved_n_per_chip; // reserved + uint16_t reserved_mem_power; // reserved } cmdh_mem_throt_data_set_t; + // Config packet definition used by TMGT to // send mem throttle min/max settings. typedef struct __attribute__ ((packed)) { cmdh_mem_throt_header_t header; cmdh_mem_throt_data_set_t data_set[1]; -}cmdh_mem_throt_t; +} cmdh_mem_throt_t; // Used to mark present the config data TMGT has sent us. typedef struct data_cnfg |