diff options
author | Wael El-Essawy <welessa@us.ibm.com> | 2015-11-30 14:58:43 -0600 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2015-12-04 14:03:28 -0600 |
commit | 0694c6bb509e5d91a7f2c7b1f4924e114500dca1 (patch) | |
tree | 74f7869436c57df025578370670035a49e46979c /src/occ_405/amec/amec_sensors_core.c | |
parent | 74ad39e79ccd4d423adea15d82a87fa70ec9b56f (diff) | |
download | talos-occ-0694c6bb509e5d91a7f2c7b1f4924e114500dca1.tar.gz talos-occ-0694c6bb509e5d91a7f2c7b1f4924e114500dca1.zip |
Update Proc Core sensors in amec_slv_states for 24 cores
- maintain 8 core data collection states versus 16 rtls
ticks core scheduling scheme, utilizing substates to perform
4 ms full 24 cores data collection.
- introduce 4 substates, and distribute them over time (1,3,5,7)
- spread core data collection over 8 subsates, reading
3 cores data each time.
- eliminate gpe_bulk_core_data_t type
- reset dts elements using for loop instead of memset
- create amec_update_proc_core_group function and
G_sensor_update_pattern array to easily modify core data
sensors update pattern
Change-Id: Idd752c6ea77829ac308e2089f6582db472c8badc
RTC: 140094
RTC: 140183
RTC: 140186
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/22347
Tested-by: Wael Elessawy <welessa@us.ibm.com>
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_405/amec/amec_sensors_core.c')
-rwxr-xr-x | src/occ_405/amec/amec_sensors_core.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/occ_405/amec/amec_sensors_core.c b/src/occ_405/amec/amec_sensors_core.c index 37452e6..7527e44 100755 --- a/src/occ_405/amec/amec_sensors_core.c +++ b/src/occ_405/amec/amec_sensors_core.c @@ -52,9 +52,9 @@ /******************************************************************************/ /* Forward Declarations */ /******************************************************************************/ -void amec_calc_dts_sensors(gpe_bulk_core_data_t * i_core_data_ptr, uint8_t i_core); -void amec_calc_freq_and_util_sensors(gpe_bulk_core_data_t * i_core_data_ptr, uint8_t i_core); -void amec_calc_ips_sensors(gpe_bulk_core_data_t * i_core_data_ptr, uint8_t i_core); +void amec_calc_dts_sensors(CoreData * i_core_data_ptr, uint8_t i_core); +void amec_calc_freq_and_util_sensors(CoreData * i_core_data_ptr, uint8_t i_core); +void amec_calc_ips_sensors(CoreData * i_core_data_ptr, uint8_t i_core); void amec_calc_spurr(uint8_t i_core); //************************************************************************* @@ -72,7 +72,7 @@ void amec_calc_spurr(uint8_t i_core); // End Function Specification void amec_update_proc_core_sensors(uint8_t i_core) { - gpe_bulk_core_data_t *l_core_data_ptr; + CoreData *l_core_data_ptr; uint16_t l_temp16 = 0; uint32_t l_temp32 = 0; @@ -90,6 +90,7 @@ void amec_update_proc_core_sensors(uint8_t i_core) //------------------------------------------------------- amec_calc_dts_sensors(l_core_data_ptr, i_core); +// @TODO - TEMP: frequency and utilization sensors are not enabled yet. /* //------------------------------------------------------- // Util / Freq @@ -99,7 +100,7 @@ void amec_update_proc_core_sensors(uint8_t i_core) { amec_calc_freq_and_util_sensors(l_core_data_ptr,i_core); } - + //------------------------------------------------------- // Performance counter - This function should be called // after amec_calc_freq_and_util_sensors(). @@ -177,7 +178,7 @@ uint8_t G_quadWeight = 1; // Thread: RealTime Loop // // End Function Specification -void amec_calc_dts_sensors(gpe_bulk_core_data_t * i_core_data_ptr, uint8_t i_core) +void amec_calc_dts_sensors(CoreData * i_core_data_ptr, uint8_t i_core) { #define DTS_PER_CORE 2 #define DTS_INVALID_MASK 0x0C00 @@ -192,7 +193,10 @@ void amec_calc_dts_sensors(gpe_bulk_core_data_t * i_core_data_ptr, uint8_t i_cor uint8_t l_dtsCnt = 0; //Number of valid Core DTSs //Clear DTS array. - memset((void *)&(l_dts[0]), 0, sizeof(l_dts)); + for (k = 0; k < DTS_PER_CORE; k++) + { + l_dts[k] = 0; + } if (i_core_data_ptr != NULL) { @@ -271,8 +275,8 @@ void amec_calc_dts_sensors(gpe_bulk_core_data_t * i_core_data_ptr, uint8_t i_cor // // End Function Specification // TEMP - Not supported yet. -#if 0 -void amec_calc_freq_and_util_sensors(gpe_bulk_core_data_t * i_core_data_ptr, uint8_t i_core) +#if 0 +void amec_calc_freq_and_util_sensors(CoreData * i_core_data_ptr, uint8_t i_core) { BOOLEAN l_core_sleep_winkle = FALSE; uint32_t l_pm_state_hist_reg = 0; @@ -609,7 +613,7 @@ void amec_calc_freq_and_util_sensors(gpe_bulk_core_data_t * i_core_data_ptr, uin } -void amec_calc_ips_sensors(gpe_bulk_core_data_t * i_core_data_ptr, uint8_t i_core) +void amec_calc_ips_sensors(CoreData * i_core_data_ptr, uint8_t i_core) { #define TWO_PWR_24_MASK 0x00FFFFFF #define TWO_PWR_20_MASK 0x000FFFFF |