Menu

#279 remove unsupported POWER8 PMU events from OProfile/libpfm4

None
closed-fixed
None
5
2019-07-08
2015-09-13
No

The OProfile commands report a large set of events for POWER8 which are not supported, and these should be removed. What follows is the list I came up with, based solely on operf reporting that the event was "<not supported="">". It is not guaranteed to be exhaustive or accurate.

PM_CO_DISP_FAIL <not supported=""> r0000517082
PM_CO_TM_SC_FOOTPRINT <not supported=""> r0000527084
PM_ISIDE_DISP <not supported=""> r0000617082
PM_ISIDE_DISP_FAIL <not supported=""> r0000627084
PM_ISIDE_DISP_FAIL_OTHER <not supported=""> r0000627086
PM_ISIDE_MRU_TOUCH <not supported=""> r000044608e
PM_L2_CASTOUT_MOD <not supported=""> r0000417080
PM_L2_CASTOUT_SHR <not supported=""> r0000417082
PM_L2_DC_INV <not supported=""> r0000427086
PM_L2_DISP_ALL_L2MISS <not supported=""> r000044608c
PM_L2_GROUP_PUMP <not supported=""> r000064608e
PM_L2_GRP_GUESS_CORRECT <not supported=""> r0000626084
PM_L2_GRP_GUESS_WRONG <not supported=""> r0000626086
PM_L2_IC_INV <not supported=""> r0000427084
PM_L2_INST <not supported=""> r0000436088
PM_L2_INST_MISS <not supported=""> r000043608a
PM_L2_LD <not supported=""> r0000416080
PM_L2_LD_DISP <not supported=""> r0000437088
PM_L2_LD_HIT <not supported=""> r000043708a
PM_L2_LD_MISS <not supported=""> r0000426084
PM_L2_LOC_GUESS_CORRECT <not supported=""> r0000616080
PM_L2_LOC_GUESS_WRONG <not supported=""> r0000616082
PM_L2_RCLD_DISP <not supported=""> r0000516080
PM_L2_RCLD_DISP_FAIL_ADDR <not supported=""> r0000516082
PM_L2_RCLD_DISP_FAIL_OTHER <not supported=""> r0000526084
PM_L2_RCST_DISP <not supported=""> r0000536088
PM_L2_RCST_DISP_FAIL_ADDR <not supported=""> r000053608a
PM_L2_RCST_DISP_FAIL_OTHER <not supported=""> r000054608c
PM_L2_RC_ST_DONE <not supported=""> r0000537088
PM_L2_RTY_LD <not supported=""> r000063708a
PM_L2_SN_M_RD_DONE <not supported=""> r000054708c
PM_L2_SN_M_WR_DONE <not supported=""> r000054708e
PM_L2_SN_SX_I_DONE <not supported=""> r000053708a
PM_L2_ST_DISP <not supported=""> r000044708c
PM_L2_ST_HIT <not supported=""> r000044708e
PM_L2_SYS_GUESS_CORRECT <not supported=""> r0000636088
PM_L2_SYS_GUESS_WRONG <not supported=""> r000063608a
PM_L3_CINJ <not supported=""> r000023808a
PM_L3_CI_HIT <not supported=""> r0000128084
PM_L3_CI_MISS <not supported=""> r0000128086
PM_L3_CO <not supported=""> r0000438088
PM_L3_CO_LCO <not supported=""> r0000238088
PM_L3_GRP_GUESS_CORRECT <not supported=""> r0000b19082
PM_L3_GRP_GUESS_WRONG_HIGH <not supported=""> r0000b3908a
PM_L3_GRP_GUESS_WRONG_LOW <not supported=""> r0000b39088
PM_L3_HIT <not supported=""> r0000218080
PM_L3_L2_CO_HIT <not supported=""> r0000138088
PM_L3_L2_CO_MISS <not supported=""> r000013808a
PM_L3_LAT_CI_HIT <not supported=""> r000014808c
PM_L3_LAT_CI_MISS <not supported=""> r000014808e
PM_L3_LD_HIT <not supported=""> r0000228084
PM_L3_LD_MISS <not supported=""> r0000228086
PM_L3_LOC_GUESS_CORRECT <not supported=""> r0000b19080
PM_L3_LOC_GUESS_WRONG <not supported=""> r0000b29086
PM_L3_MISS <not supported=""> r0000218082
PM_L3_P0_CO_L31 <not supported=""> r000054808c
PM_L3_P0_CO_MEM <not supported=""> r0000538088
PM_L3_P0_CO_RTY <not supported=""> r0000929084
PM_L3_P0_GRP_PUMP <not supported=""> r0000a29084
PM_L3_P0_LCO_DATA <not supported=""> r0000528084
PM_L3_P0_LCO_NO_DATA <not supported=""> r0000518080
PM_L3_P0_LCO_RTY <not supported=""> r0000a4908c
PM_L3_P0_NODE_PUMP <not supported=""> r0000a19080
PM_L3_P0_PF_RTY <not supported=""> r0000919080
PM_L3_P0_SN_HIT <not supported=""> r0000939088
PM_L3_P0_SN_INV <not supported=""> r0000118080
PM_L3_P0_SN_MISS <not supported=""> r000094908c
PM_L3_P0_SYS_PUMP <not supported=""> r0000a39088
PM_L3_P1_CO_L31 <not supported=""> r000054808e
PM_L3_P1_CO_MEM <not supported=""> r000053808a
PM_L3_P1_CO_RTY <not supported=""> r0000929086
PM_L3_P1_GRP_PUMP <not supported=""> r0000a29086
PM_L3_P1_LCO_DATA <not supported=""> r0000528086
PM_L3_P1_LCO_NO_DATA <not supported=""> r0000518082
PM_L3_P1_LCO_RTY <not supported=""> r0000a4908e
PM_L3_P1_NODE_PUMP <not supported=""> r0000a19082
PM_L3_P1_PF_RTY <not supported=""> r0000919082
PM_L3_P1_SN_HIT <not supported=""> r000093908a
PM_L3_P1_SN_INV <not supported=""> r0000118082
PM_L3_P1_SN_MISS <not supported=""> r000094908e
PM_L3_P1_SYS_PUMP <not supported=""> r0000a3908a
PM_L3_PF_HIT_L3 <not supported=""> r0000428084
PM_L3_SYS_GUESS_CORRECT <not supported=""> r0000b29084
PM_L3_SYS_GUESS_WRONG <not supported=""> r0000b4908c
PM_L3_TRANS_PF <not supported=""> r000024808e
PM_L3_WI0_BUSY <not supported=""> r0000418080
PM_L3_WI_USAGE <not supported=""> r0000418082
PM_NON_TM_RST_SC <not supported=""> r0000328084
PM_RD_CLEARING_SC <not supported=""> r000034808e
PM_RD_FORMING_SC <not supported=""> r000034808c
PM_RD_HIT_PF <not supported=""> r0000428086
PM_SNP_TM_HIT_M <not supported=""> r0000338088
PM_SNP_TM_HIT_T <not supported=""> r000033808a
PM_ST_CAUSED_FAIL <not supported=""> r0000717080
PM_TM_CAM_OVERFLOW <not supported=""> r0000318082
PM_TM_CAP_OVERFLOW <not supported=""> r000074708c
PM_TM_FAV_CAUSED_FAIL <not supported=""> r0000727086
PM_TM_LD_CAUSED_FAIL <not supported=""> r0000717082
PM_TM_LD_CONF <not supported=""> r0000727084
PM_TM_RST_SC <not supported=""> r0000328086
PM_TM_SC_CO <not supported=""> r0000318080
PM_TM_ST_CAUSED_FAIL <not supported=""> r000073708a
PM_TM_ST_CONF <not supported=""> r0000737088

(Carl and I discussed this, and he asked me to open this ticket.)

Discussion

  • William Cohen

    William Cohen - 2015-09-14

    Is the availability of these events affected by the kernel being used? Or are these events unsupported on all current kernels and they will be unsupported on future kernel.

    How is the list of unsupported power8 events being generated? Is there something parsing the event list or ophelp output and trying the events with raw perf events? It would be good to describe how this list is being generated.

     
    • Paul A. Clarke

      Paul A. Clarke - 2015-09-14

      My understanding is that the kernel was changed at some point to actively reject the unsupported events, but that the hardware uniformly doesn't support them.

      I generated the events by looping over all events reported by "ophelp", and passing them to the "perf stat" command, then looking for those events that report "<not supported="">":

      for i in $(ophelp --xml | grep event_name | cut -f2 -d\"); do echo $i; perf stat -e $(printf "r%010x\n" $(ophelp $i)) sleep 0.5; done

      ...
      PM_TM_SC_CO

      Performance counter stats for 'sleep 0.5':

      <not supported=""> r0000318080

         0.500397568 seconds time elapsed
      

      --

      Carl can speak more authoritatively than I about the list of events.

       

      Last edit: Paul A. Clarke 2015-09-14
  • Carl Love

    Carl Love - 2016-03-17

    There were a couple of patches submitted to address these issues. The commit

    commit cfecfbfa3e5c76ab544f64946af38a7f2efec9a3
    Author: Carl E. Love cel@us.ibm.com
    Date: Mon Dec 14 14:18:35 2015 -0800

    was the final that fixed the issue. Not the underlying issue was perf removed the support for the event due to a bug in the performance counter hardware.

     
  • Paul A. Clarke

    Paul A. Clarke - 2016-03-23

    I just checked out latest git and built. Everything that was originally reported but not supported is now gone. Thanks, Carl!

     
  • Carl Love

    Carl Love - 2019-07-08

    I believe this issue can be closed.

     
  • William Cohen

    William Cohen - 2019-07-08
    • status: open --> closed-fixed
    • Group: -->
     

Log in to post a comment.