• Jiri Olsa's avatar
    perf vendor events intel: Fix wrong filter_band* values for uncore events · 94aafb74
    Jiri Olsa authored
    Michael reported that he could not stat following event:
    
      $ perf stat -e unc_p_freq_ge_1200mhz_cycles -a -- ls
      event syntax error: '..e_1200mhz_cycles'
                                        \___ value too big for format, maximum is 255
      Run 'perf list' for a list of valid events
    
    The event is unwrapped into:
    
      uncore_pcu/event=0xb,filter_band0=1200/
    
    where filter_band0 format says it's one byte only:
    
      # cat uncore_pcu/format/filter_band0
      config1:0-7
    
    while JSON files specifies bigger number:
    
      "Filter": "filter_band0=1200",
    
    all the filter_band* formats show 1 byte width:
    
      # cat uncore_pcu/format/filter_band1
      config1:8-15
      # cat uncore_pcu/format/filter_band2
      config1:16-23
      # cat uncore_pcu/format/filter_band3
      config1:24-31
    
    The reason of the issue is that filter_band* values are supposed to be
    in 100Mhz units.. it's stated in the JSON help for the events, like:
    
      filter_band3=XXX, with XXX in 100Mhz units
    
    This patch divides the filter_band* values by 100, plus there's couple
    of changes that actually change the number completely, like:
    
      -        "Filter": "edge=1,filter_band2=4000",
      +        "Filter": "edge=1,filter_band2=30",
    Reported-by: default avatarMichael Petlan <mpetlan@redhat.com>
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Acked-by: default avatarAndi Kleen <ak@linux.intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20181010080339.GB15790@kravaSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    94aafb74
uncore-power.json 13.6 KB