From 8a315b7ce843dcd9cdc0bfd909adc55a0bcb8f5d Mon Sep 17 00:00:00 2001 From: William Bryan Date: Tue, 18 Jun 2019 15:19:45 -0500 Subject: Remove unused sensors to free up needed SRAM space Change-Id: Id397e84fa936d261c91b2883bc246b081beee724 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79148 Tested-by: FSP CI Jenkins Reviewed-by: Christopher J. Cain Reviewed-by: Martha Broyles --- src/occ_405/amec/amec_sensors_centaur.c | 227 +------------------------------- src/occ_405/amec/amec_sensors_ocmb.c | 113 +--------------- src/occ_405/amec/amec_sys.h | 21 --- src/occ_405/occbuildname.c | 2 +- src/occ_405/sensor/sensor_enum.h | 173 +----------------------- src/occ_405/sensor/sensor_info.c | 16 +-- src/occ_405/sensor/sensor_table.c | 27 +--- 7 files changed, 8 insertions(+), 571 deletions(-) diff --git a/src/occ_405/amec/amec_sensors_centaur.c b/src/occ_405/amec/amec_sensors_centaur.c index 137a522..35fd262 100644 --- a/src/occ_405/amec/amec_sensors_centaur.c +++ b/src/occ_405/amec/amec_sensors_centaur.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2018 */ +/* Contributors Listed Below - COPYRIGHT 2011,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -483,7 +483,6 @@ void amec_perfcount_getmc( CentaurMemData * i_sensor_cache, UINT32 temp32new = 0; UINT32 temp32 = 0; UINT16 tempreg = 0; - UINT16 tempreg2 = 0; uint8_t i_mc_id = 0; static uint32_t L_num_ticks[MAX_NUM_CENTAURS] = {0}; @@ -541,228 +540,6 @@ void amec_perfcount_getmc( CentaurMemData * i_sensor_cache, tempreg = ((temp32*125)/10000); g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.memread2ms = tempreg; - - // Go after second MC performance counter (power ups and activations) - if (i_mc_id == 0) - { - tempu = l_sensor_cache->scache.mba01_act; - templ = l_sensor_cache->scache.mba01_powerups; - } - else - { - tempu = l_sensor_cache->scache.mba23_act; - templ = l_sensor_cache->scache.mba23_powerups; - } - - // ---------------------------------------------------------------- - // Sensor: MPUMx (0.01 Mrps) Memory power-up requests per sec - // ---------------------------------------------------------------- - // Extract power up count - temp32new = (templ); // left shift into top 20 bits of 32 bits - - // For DD1.0, we only have 1 channel field that we use; DD2.0 we need to add another channel - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.pwrup_cnt_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.pwrup_cnt_accum = temp32new; // Save latest accumulator away for next time - tempreg=(UINT16)(temp32>>12); // Select upper 20 bits - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.pwrup_cnt=(UINT16)tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update(AMECSENSOR_PORTPAIR_PTR(mpu2ms,i_centaur,i_mc_id), tempreg); - } - // ------------------------------------------------------------------- - // Sensor: MACMx (0.01 Mrps) Memory activation requests per sec - // ------------------------------------------------------------------- - // Extract activation count - temp32 = templ; - temp32 += tempu; - - temp32new = (temp32); // left shift into top 20 bits of 32 bits - // For DD1.0, we only have 1 channel field that we use; DD2.0 we need to add another channel - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.act_cnt_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.act_cnt_accum = temp32new; // Save latest accumulator away for next time - tempreg=(UINT16)(temp32>>12); // Select lower 16 of 20 bits - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.act_cnt=(UINT16)tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update(AMECSENSOR_PORTPAIR_PTR(mac2ms,i_centaur,i_mc_id), tempreg); - } - - // -------------------------------------------------------------------------- - // Sensor: MTS (count) Last received Timestamp (frame count) from Centaur - // -------------------------------------------------------------------------- - // Extract framecount (clock is 266.6666666MHz * 0.032 / 4096)=2083. - temp32new = l_sensor_cache->scache.frame_count; - - // For DD1.0, we only have 1 channel field that we use; DD2.0 we need to add another channel - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.fr2_cnt_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.fr2_cnt_accum = temp32new; // Save latest accumulator away for next time - tempreg=(UINT16)(temp32>>12); // Select upper 20 bits - - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.fr2_cnt=(UINT16)tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update(AMECSENSOR_PORTPAIR_PTR(mts2ms,i_centaur,i_mc_id), tempreg); - } - - if (i_mc_id == 0) - { - tempu = l_sensor_cache->scache.mba01_cache_hits_rd; - templ = l_sensor_cache->scache.mba01_cache_hits_wr; - } - else - { - tempu = l_sensor_cache->scache.mba23_cache_hits_rd; - templ = l_sensor_cache->scache.mba23_cache_hits_wr; - } - // ---------------------------------------------------------------------- - // Sensor: M4RD (0.01 Mrps) Memory cached (L4) read requests per sec - // ---------------------------------------------------------------------- - temp32new = (tempu); // left shift into top 20 bits of 32 bits - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.l4_rd_cnt_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.l4_rd_cnt_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - tempreg2 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.memread2ms; - // Firmware workaround for hardware bug: hits - memreads ~= hits - tempreg = tempreg - tempreg2; - // Deal with maintenance commands or quantization in counters being off by 12 and force to 0 - if ((tempreg > 32767) || (tempreg <= 12)) - { - tempreg=0; - } - - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.l4rd2ms = tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update(AMECSENSOR_PORTPAIR_PTR(m4rd2ms,i_centaur,i_mc_id), tempreg); - } - - // ----------------------------------------------------------------------- - // Sensor: M4WR (0.01 Mrps) Memory cached (L4) write requests per sec - // ----------------------------------------------------------------------- - temp32new = (templ); // left shift into top 20 bits of 32 bits - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.l4_wr_cnt_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.l4_wr_cnt_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - - tempreg2 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.memwrite2ms; - // Firmware workaround for hardware bug: hits - memwrites ~= hits - tempreg = tempreg - tempreg2; - // Deal with maintenance commands or quantization in counters being off by 12 and force to 0 - if ((tempreg > 32767) || (tempreg <= 12)) - { - tempreg=0; - } - - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.l4wr2ms = tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update(AMECSENSOR_PORTPAIR_PTR(m4wr2ms,i_centaur,i_mc_id), tempreg); - } - - // ------------------------------------------------------------------------------ - // Sensor: MIRB (0.01 Mevents/s) Memory Inter-request arrival idle intervals - // ------------------------------------------------------------------------------ - temp32new = (i_mc_id == 0) ? l_sensor_cache->scache.mba01_intreq_arr_cnt_base : l_sensor_cache->scache.mba23_intreq_arr_cnt_base; - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.intreq_base_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.intreq_base_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.mirb2ms = tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update(AMECSENSOR_PORTPAIR_PTR(mirb2ms,i_centaur,i_mc_id), tempreg); - } - - // -------------------------------------------------------------------------------------------------------- - // Sensor: MIRL (0.01 Mevents/s) Memory Inter-request arrival idle intervals longer than low threshold - // -------------------------------------------------------------------------------------------------------- - temp32new = (i_mc_id == 0) ? l_sensor_cache->scache.mba01_intreq_arr_cnt_low : l_sensor_cache->scache.mba23_intreq_arr_cnt_low; - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.intreq_low_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.intreq_low_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.mirl2ms = tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update(AMECSENSOR_PORTPAIR_PTR(mirl2ms,i_centaur,i_mc_id), tempreg); - } - - // ----------------------------------------------------------------------------------------------------------- - // Sensor: MIRM (0.01 Mevents/s) Memory Inter-request arrival idle intervals longer than medium threshold - // ----------------------------------------------------------------------------------------------------------- - temp32new = (i_mc_id == 0) ? l_sensor_cache->scache.mba01_intreq_arr_cnt_med : l_sensor_cache->scache.mba23_intreq_arr_cnt_med; - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.intreq_med_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.intreq_med_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.mirm2ms = tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update(AMECSENSOR_PORTPAIR_PTR(mirm2ms,i_centaur,i_mc_id), tempreg); - } - - // --------------------------------------------------------------------------------------------------------- - // Sensor: MIRH (0.01 Mevents/s) Memory Inter-request arrival idle intervals longer than high threshold - // --------------------------------------------------------------------------------------------------------- - temp32new = (i_mc_id == 0) ? l_sensor_cache->scache.mba01_intreq_arr_cnt_high : l_sensor_cache->scache.mba23_intreq_arr_cnt_high; - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.intreq_high_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.intreq_high_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.mirh2ms = tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update(AMECSENSOR_PORTPAIR_PTR(mirh2ms,i_centaur,i_mc_id), tempreg); - } - } - - // -------------------------------------------------------------------------------------------------------------- - // Sensor: MIRC (0.01 Mevents/s) Memory Inter-request arrival idle interval longer than programmed threshold - // -------------------------------------------------------------------------------------------------------------- - temp32new = l_sensor_cache->scache.intreq_arr_cnt_high_latency; - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.perf.intreq_highlatency_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.perf.intreq_highlatency_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_centaur].centaur.perf.mirc2ms = tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update((&(g_amec->proc[0].memctl[i_centaur].centaur.mirc2ms)), tempreg); - } - - // ---------------------------------------------------- - // Sensor: MLP2 (events/s) Number of LP2 exits - // ---------------------------------------------------- - temp32new = l_sensor_cache->scache.lp2_exits; - temp32 = g_amec->proc[0].memctl[i_centaur].centaur.perf.lp2exit_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_centaur].centaur.perf.lp2exit_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_centaur].centaur.perf.mlp2_2ms = tempreg; - if(L_num_ticks[i_centaur] >= NUM_TICKS_TO_DELAY_SENSOR_UPDATE) - { - sensor_update((&(g_amec->proc[0].memctl[i_centaur].centaur.mlp2ms)), tempreg); } // ------------------------------------------------------------ @@ -793,5 +570,5 @@ void amec_perfcount_getmc( CentaurMemData * i_sensor_cache, return; } -/*----------------------------------------------------------------------------*/ /* End */ +/*----------------------------------------------------------------------------*/ /* End */ /*----------------------------------------------------------------------------*/ diff --git a/src/occ_405/amec/amec_sensors_ocmb.c b/src/occ_405/amec/amec_sensors_ocmb.c index 3e57266..0a9f072 100644 --- a/src/occ_405/amec/amec_sensors_ocmb.c +++ b/src/occ_405/amec/amec_sensors_ocmb.c @@ -1,11 +1,11 @@ /* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ -/* $Source: src/occ_405/amec/amec_sensors_centaur.c $ */ +/* $Source: src/occ_405/amec/amec_sensors_ocmb.c $ */ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2018 */ +/* Contributors Listed Below - COPYRIGHT 2011,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -503,115 +503,6 @@ void amec_perfcount_ocmb_getmc( OcmbMemData * i_sensor_cache, tempu = l_sensor_cache->mba_act; templ = l_sensor_cache->mba_powerups; - // ---------------------------------------------------------------- - // Sensor: MPUMx (0.01 Mrps) Memory power-up requests per sec - // ---------------------------------------------------------------- - // Extract power up count - temp32new = (templ); // left shift into top 20 bits of 32 bits - - // For DD1.0, we only have 1 channel field that we use; DD2.0 we need to add another channel - temp32 = g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.pwrup_cnt_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.pwrup_cnt_accum = temp32new; // Save latest accumulator away for next time - tempreg=(uint16_t)(temp32>>12); // Select upper 20 bits - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.pwrup_cnt=(uint16_t)tempreg; - sensor_update(AMECSENSOR_PORTPAIR_PTR(mpu2ms,i_membuf,0), tempreg); - - // ------------------------------------------------------------------- - // Sensor: MACMx (0.01 Mrps) Memory activation requests per sec - // ------------------------------------------------------------------- - // Extract activation count - temp32 = templ; - temp32 += tempu; - - temp32new = (temp32); // left shift into top 20 bits of 32 bits - // For DD1.0, we only have 1 channel field that we use; DD2.0 we need to add another channel - temp32 = g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.act_cnt_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.act_cnt_accum = temp32new; // Save latest accumulator away for next time - tempreg=(uint16_t)(temp32>>12); // Select lower 16 of 20 bits - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.act_cnt=(uint16_t)tempreg; - sensor_update(AMECSENSOR_PORTPAIR_PTR(mac2ms,i_membuf,0), tempreg); - - // -------------------------------------------------------------------------- - // Sensor: MTS (count) Last received Timestamp (frame count) from Centaur - // -------------------------------------------------------------------------- - // Extract framecount (clock is 266.6666666MHz * 0.032 / 4096)=2083. - temp32new = l_sensor_cache->frame_count; - - temp32 = g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.fr2_cnt_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.fr2_cnt_accum = temp32new; // Save latest accumulator away for next time - tempreg=(uint16_t)(temp32>>12); // Select upper 20 bits - - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.fr2_cnt=(uint16_t)tempreg; - sensor_update(AMECSENSOR_PORTPAIR_PTR(mts2ms,i_membuf,0), tempreg); - - // ------------------------------------------------------------------------------ - // Sensor: MIRB (0.01 Mevents/s) Memory Inter-request arrival idle intervals - // ------------------------------------------------------------------------------ - temp32new = l_sensor_cache->mba_arr_cnt_base; - temp32 = g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.intreq_base_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.intreq_base_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.mirb2ms = tempreg; - sensor_update(AMECSENSOR_PORTPAIR_PTR(mirb2ms,i_membuf,0), tempreg); - - // -------------------------------------------------------------------------------------------------------- - // Sensor: MIRL (0.01 Mevents/s) Memory Inter-request arrival idle intervals longer than low threshold - // -------------------------------------------------------------------------------------------------------- - temp32new = l_sensor_cache->mba_arr_cnt_low; - temp32 = g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.intreq_low_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.intreq_low_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.mirl2ms = tempreg; - sensor_update(AMECSENSOR_PORTPAIR_PTR(mirl2ms,i_membuf,0), tempreg); - - // ----------------------------------------------------------------------------------------------------------- - // Sensor: MIRM (0.01 Mevents/s) Memory Inter-request arrival idle intervals longer than medium threshold - // ----------------------------------------------------------------------------------------------------------- - temp32new = l_sensor_cache->mba_arr_cnt_med; - temp32 = g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.intreq_med_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.intreq_med_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.mirm2ms = tempreg; - sensor_update(AMECSENSOR_PORTPAIR_PTR(mirm2ms,i_membuf,0), tempreg); - - // --------------------------------------------------------------------------------------------------------- - // Sensor: MIRH (0.01 Mevents/s) Memory Inter-request arrival idle intervals longer than high threshold - // --------------------------------------------------------------------------------------------------------- - temp32new = l_sensor_cache->mba_arr_cnt_high; - temp32 = g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.intreq_high_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.intreq_high_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_membuf].centaur.portpair[0].perf.mirh2ms = tempreg; - sensor_update(AMECSENSOR_PORTPAIR_PTR(mirh2ms,i_membuf,0), tempreg); - - // ---------------------------------------------------- - // Sensor: MLP2 (events/s) Number of LP2 exits - // ---------------------------------------------------- - temp32new = l_sensor_cache->self_timed_refresh; - temp32 = g_amec->proc[0].memctl[i_membuf].centaur.perf.lp2exit_accum; - temp32 = amec_diff_adjust_for_overflow(temp32new, temp32); - g_amec->proc[0].memctl[i_membuf].centaur.perf.lp2exit_accum = temp32new; // Save latest accumulator away for next time - - // Read every 8 ms....to convert to 0.01 Mrps = ((8ms read * 125)/10000) - tempreg = ((temp32*125)/10000); - g_amec->proc[0].memctl[i_membuf].centaur.perf.mlp2_2ms = tempreg; - sensor_update((&(g_amec->proc[0].memctl[i_membuf].centaur.mlp2ms)), tempreg); - // ------------------------------------------------------------ // Sensor: MRDMx (0.01 Mrps) Memory read requests per sec // ------------------------------------------------------------ diff --git a/src/occ_405/amec/amec_sys.h b/src/occ_405/amec/amec_sys.h index ffb392d..0509daf 100755 --- a/src/occ_405/amec/amec_sys.h +++ b/src/occ_405/amec/amec_sys.h @@ -173,16 +173,6 @@ typedef union typedef struct { // Sensors - sensor_t mac2ms; - sensor_t mpu2ms; - sensor_t mirb2ms; - sensor_t mirl2ms; - sensor_t mirm2ms; - sensor_t mirh2ms; - sensor_t mts2ms; - sensor_t m4rd2ms; - sensor_t m4wr2ms; - amec_chpair_perf_counter_t perf; // The most recent throttle value sent to this MBA @@ -190,15 +180,6 @@ typedef struct amec_cent_mem_speed_t last_mem_speed_sent; } amec_portpair_t; -typedef struct -{ - uint32_t intreq_highlatency_accum; - uint32_t lp2exit_accum; - - uint16_t mirc2ms; - uint16_t mlp2_2ms; -} amec_centaur_perf_counter_t; - #define FRU_SENSOR_STATUS_STALLED 0x01 #define FRU_SENSOR_STATUS_ERROR 0x02 #define FRU_SENSOR_STATUS_VALID_OLD 0x04 @@ -245,8 +226,6 @@ typedef struct // Sensor ID for reporting temperature to BMC and FSP uint32_t temp_sid; - amec_centaur_perf_counter_t perf; - } amec_centaur_t; typedef struct diff --git a/src/occ_405/occbuildname.c b/src/occ_405/occbuildname.c index 877f7c4..fb09138 100755 --- a/src/occ_405/occbuildname.c +++ b/src/occ_405/occbuildname.c @@ -34,6 +34,6 @@ volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = #else -volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = /**/ "op_occ_190607a\0" /**/ ; +volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = /**/ "op_occ_190624a\0" /**/ ; #endif diff --git a/src/occ_405/sensor/sensor_enum.h b/src/occ_405/sensor/sensor_enum.h index d2a0aed..481e912 100755 --- a/src/occ_405/sensor/sensor_enum.h +++ b/src/occ_405/sensor/sensor_enum.h @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2018 */ +/* Contributors Listed Below - COPYRIGHT 2011,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -489,24 +489,6 @@ enum e_gsid MEMSPSTATM6, MEMSPSTATM7, - MIRCM0, - MIRCM1, - MIRCM2, - MIRCM3, - MIRCM4, - MIRCM5, - MIRCM6, - MIRCM7, - - MLP2M0, - MLP2M1, - MLP2M2, - MLP2M3, - MLP2M4, - MLP2M5, - MLP2M6, - MLP2M7, - // Individual DIMM temperatures (NIMBUS) TEMPDIMM00, TEMPDIMM01, @@ -549,159 +531,6 @@ enum e_gsid // ------------------------------------------------------ // Centaur Sensors - 8 MemC/Proc - 1 Cent/MemC - 2 PP/Cent // ------------------------------------------------------ - MACM0C0P0, - MACM0C0P1, - MACM1C0P0, - MACM1C0P1, - MACM2C0P0, - MACM2C0P1, - MACM3C0P0, - MACM3C0P1, - MACM4C0P0, - MACM4C0P1, - MACM5C0P0, - MACM5C0P1, - MACM6C0P0, - MACM6C0P1, - MACM7C0P0, - MACM7C0P1, - - MPUM0C0P0, - MPUM0C0P1, - MPUM1C0P0, - MPUM1C0P1, - MPUM2C0P0, - MPUM2C0P1, - MPUM3C0P0, - MPUM3C0P1, - MPUM4C0P0, - MPUM4C0P1, - MPUM5C0P0, - MPUM5C0P1, - MPUM6C0P0, - MPUM6C0P1, - MPUM7C0P0, - MPUM7C0P1, - - MIRBM0C0P0, - MIRBM0C0P1, - MIRBM1C0P0, - MIRBM1C0P1, - MIRBM2C0P0, - MIRBM2C0P1, - MIRBM3C0P0, - MIRBM3C0P1, - MIRBM4C0P0, - MIRBM4C0P1, - MIRBM5C0P0, - MIRBM5C0P1, - MIRBM6C0P0, - MIRBM6C0P1, - MIRBM7C0P0, - MIRBM7C0P1, - - MIRLM0C0P0, - MIRLM0C0P1, - MIRLM1C0P0, - MIRLM1C0P1, - MIRLM2C0P0, - MIRLM2C0P1, - MIRLM3C0P0, - MIRLM3C0P1, - MIRLM4C0P0, - MIRLM4C0P1, - MIRLM5C0P0, - MIRLM5C0P1, - MIRLM6C0P0, - MIRLM6C0P1, - MIRLM7C0P0, - MIRLM7C0P1, - - MIRMM0C0P0, - MIRMM0C0P1, - MIRMM1C0P0, - MIRMM1C0P1, - MIRMM2C0P0, - MIRMM2C0P1, - MIRMM3C0P0, - MIRMM3C0P1, - MIRMM4C0P0, - MIRMM4C0P1, - MIRMM5C0P0, - MIRMM5C0P1, - MIRMM6C0P0, - MIRMM6C0P1, - MIRMM7C0P0, - MIRMM7C0P1, - - MIRHM0C0P0, - MIRHM0C0P1, - MIRHM1C0P0, - MIRHM1C0P1, - MIRHM2C0P0, - MIRHM2C0P1, - MIRHM3C0P0, - MIRHM3C0P1, - MIRHM4C0P0, - MIRHM4C0P1, - MIRHM5C0P0, - MIRHM5C0P1, - MIRHM6C0P0, - MIRHM6C0P1, - MIRHM7C0P0, - MIRHM7C0P1, - - MTSM0C0P0, - MTSM0C0P1, - MTSM1C0P0, - MTSM1C0P1, - MTSM2C0P0, - MTSM2C0P1, - MTSM3C0P0, - MTSM3C0P1, - MTSM4C0P0, - MTSM4C0P1, - MTSM5C0P0, - MTSM5C0P1, - MTSM6C0P0, - MTSM6C0P1, - MTSM7C0P0, - MTSM7C0P1, - - M4RDM0C0P0, - M4RDM0C0P1, - M4RDM1C0P0, - M4RDM1C0P1, - M4RDM2C0P0, - M4RDM2C0P1, - M4RDM3C0P0, - M4RDM3C0P1, - M4RDM4C0P0, - M4RDM4C0P1, - M4RDM5C0P0, - M4RDM5C0P1, - M4RDM6C0P0, - M4RDM6C0P1, - M4RDM7C0P0, - M4RDM7C0P1, - - M4WRM0C0P0, - M4WRM0C0P1, - M4WRM1C0P0, - M4WRM1C0P1, - M4WRM2C0P0, - M4WRM2C0P1, - M4WRM3C0P0, - M4WRM3C0P1, - M4WRM4C0P0, - M4WRM4C0P1, - M4WRM5C0P0, - M4WRM5C0P1, - M4WRM6C0P0, - M4WRM6C0P1, - M4WRM7C0P0, - M4WRM7C0P1, - TEMPCENT, TEMPDIMMTHRM, diff --git a/src/occ_405/sensor/sensor_info.c b/src/occ_405/sensor/sensor_info.c index b622608..d0f4ea1 100755 --- a/src/occ_405/sensor/sensor_info.c +++ b/src/occ_405/sensor/sensor_info.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2018 */ +/* Contributors Listed Below - COPYRIGHT 2011,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -353,26 +353,12 @@ const sensor_info_t G_sensor_info[] = SENS_MEMC_ENTRY_SET( MWRM, "GBs\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP(128, -5) ), SENS_MEMC_ENTRY_SET( MEMSPM, "%\0", AMEC_SENSOR_TYPE_UTIL, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, -1) ), SENS_MEMC_ENTRY_SET( MEMSPSTATM, "%\0", AMEC_SENSOR_TYPE_UTIL, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, -1) ), - SENS_MEMC_ENTRY_SET( MIRCM, "eps\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), - SENS_MEMC_ENTRY_SET( MLP2M, "eps\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), SENS_DIMM_ENTRY_SET( TEMPDIMM, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_128TH_TICK_HZ, AMEFP( 1, 0) ), SENS_MEMC_ENTRY_SET( TEMPDIMMAXM, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), SENS_MEMC_ENTRY_SET( LOCDIMMAXM, "loc\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( MEMPWRTHROT, "#\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_TICK_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( MEMOTTHROT, "#\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_64TH_TICK_HZ, AMEFP( 1, 0) ), - /* ==CentaurSensors== NameString Units Type Location Number Freq ScaleFactor */ - SEN_CENTR_ENTRY_SET( MACM, "rps\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), - SEN_CENTR_ENTRY_SET( MPUM, "rps\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), - SEN_CENTR_ENTRY_SET( MIRBM, "eps\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), - SEN_CENTR_ENTRY_SET( MIRLM, "eps\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), - SEN_CENTR_ENTRY_SET( MIRMM, "eps\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), - SEN_CENTR_ENTRY_SET( MIRHM, "eps\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), - SEN_CENTR_ENTRY_SET( MTSM, "cnt\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), - SEN_CENTR_ENTRY_SET( M4RDM, "GBs\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 128, -5) ), - SEN_CENTR_ENTRY_SET( M4WRM, "GBs\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 128, -5) ), - - /* ==MemSummarySensors== NameString Units Type Location Number Freq ScaleFactor */ SENSOR_INFO_T_ENTRY( TEMPCENT, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_8TH_TICK_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( TEMPDIMMTHRM, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_EVERY_128TH_TICK_HZ, AMEFP( 1, 0) ), diff --git a/src/occ_405/sensor/sensor_table.c b/src/occ_405/sensor/sensor_table.c index 77f0005..64f40b0 100755 --- a/src/occ_405/sensor/sensor_table.c +++ b/src/occ_405/sensor/sensor_table.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2018 */ +/* Contributors Listed Below - COPYRIGHT 2011,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -401,25 +401,12 @@ const sensor_ptr_t G_amec_sensor_list[] = MEMCONTROL_SENSOR_PTRS(MWRM, &g_amec_sys.proc[0].memctl, mwr), MEMCONTROL_SENSOR_PTRS(MEMSPM, &g_amec_sys.proc[0].memctl, memsp), MEMCONTROL_SENSOR_PTRS(MEMSPSTATM, &g_amec_sys.proc[0].memctl, memspstat), - MEMCONTROL_SENSOR_PTRS(MIRCM, &g_amec_sys.proc[0].memctl, centaur.mirc2ms), - MEMCONTROL_SENSOR_PTRS(MLP2M, &g_amec_sys.proc[0].memctl, centaur.mlp2ms), DIMM_SENSOR_PTRS(TEMPDIMM, &g_amec_sys.proc[0], tempdimm), MEMCONTROL_SENSOR_PTRS(TEMPDIMMAXM, &g_amec_sys.proc[0].memctl, centaur.tempdimmax), MEMCONTROL_SENSOR_PTRS(LOCDIMMAXM, &g_amec_sys.proc[0].memctl, centaur.locdimmax), SENSOR_PTR(MEMPWRTHROT, &g_amec_sys.proc[0].mempwrthrot), SENSOR_PTR(MEMOTTHROT, &g_amec_sys.proc[0].memotthrot), - PORTPAIR_SENSOR_PTRS(MACM, &g_amec_sys.proc[0].memctl, centaur.portpair, mac2ms), - PORTPAIR_SENSOR_PTRS(MPUM, &g_amec_sys.proc[0].memctl, centaur.portpair, mpu2ms), - PORTPAIR_SENSOR_PTRS(MIRBM, &g_amec_sys.proc[0].memctl, centaur.portpair, mirb2ms), - PORTPAIR_SENSOR_PTRS(MIRLM, &g_amec_sys.proc[0].memctl, centaur.portpair, mirl2ms), - PORTPAIR_SENSOR_PTRS(MIRMM, &g_amec_sys.proc[0].memctl, centaur.portpair, mirm2ms), - PORTPAIR_SENSOR_PTRS(MIRHM, &g_amec_sys.proc[0].memctl, centaur.portpair, mirh2ms), - PORTPAIR_SENSOR_PTRS(MTSM, &g_amec_sys.proc[0].memctl, centaur.portpair, mts2ms), - PORTPAIR_SENSOR_PTRS(M4RDM, &g_amec_sys.proc[0].memctl, centaur.portpair, m4rd2ms), - PORTPAIR_SENSOR_PTRS(M4WRM, &g_amec_sys.proc[0].memctl, centaur.portpair, m4wr2ms), - - SENSOR_PTR(TEMPCENT, &g_amec_sys.proc[0].temp2mscent), SENSOR_PTR(TEMPDIMMTHRM, &g_amec_sys.proc[0].tempdimmthrm), @@ -580,8 +567,6 @@ const minisensor_ptr_t G_amec_mini_sensor_list[] INIT_SECTION = MEMCONTROL_MINI_SENSOR_PTRS(MWRM, &G_dcom_slv_outbox_tx.mwr), MEMCONTROL_MINI_SENSOR_PTRS_NULL(MEMSPM), MEMCONTROL_MINI_SENSOR_PTRS_NULL(MEMSPSTATM), - MEMCONTROL_MINI_SENSOR_PTRS_NULL(MIRCM), - MEMCONTROL_MINI_SENSOR_PTRS_NULL(MLP2M), MINI_SENSOR_PTR( TEMPDIMM00, NULL), MINI_SENSOR_PTR( TEMPDIMM01, NULL), @@ -606,16 +591,6 @@ const minisensor_ptr_t G_amec_mini_sensor_list[] INIT_SECTION = MINI_SENSOR_PTR( MEMPWRTHROT, NULL), MINI_SENSOR_PTR( MEMOTTHROT, NULL), - PORTPAIR_MINI_SENSOR_PTRS_NULL(MACM), - PORTPAIR_MINI_SENSOR_PTRS_NULL(MPUM), - PORTPAIR_MINI_SENSOR_PTRS_NULL(MIRBM), - PORTPAIR_MINI_SENSOR_PTRS_NULL(MIRLM), - PORTPAIR_MINI_SENSOR_PTRS_NULL(MIRMM), - PORTPAIR_MINI_SENSOR_PTRS_NULL(MIRHM), - PORTPAIR_MINI_SENSOR_PTRS_NULL(MTSM), - PORTPAIR_MINI_SENSOR_PTRS_NULL(M4RDM), - PORTPAIR_MINI_SENSOR_PTRS_NULL(M4WRM), - MINI_SENSOR_PTR( TEMPCENT, &G_dcom_slv_outbox_tx.temp2mscent), MINI_SENSOR_PTR( TEMPDIMMTHRM, &G_dcom_slv_outbox_tx.tempdimmthrm), -- cgit v1.2.1