• Jiri Olsa's avatar
    Revert "perf tools: Fix PMU term format max value calculation" · 1b9caa10
    Jiri Olsa authored
    This reverts commit ac0e2cd5.
    
    Michael reported an issue with oversized terms values assignment
    and I noticed there was actually a misunderstanding of the max
    value check in the past.
    
    The above commit's changelog says:
    
      If bit 21 is set, there is parsing issues as below.
    
        $ perf stat -a -e uncore_qpi_0/event=0x200002,umask=0x8/
        event syntax error: '..pi_0/event=0x200002,umask=0x8/'
                                          \___ value too big for format, maximum is 511
    
    But there's no issue there, because the event value is distributed
    along the value defined by the format. Even if the format defines
    separated bit, the value is treated as a continual number, which
    should follow the format definition.
    
    In above case it's 9-bit value with last bit separated:
      $ cat uncore_qpi_0/format/event
      config:0-7,21
    
    Hence the value 0x200002 is correctly reported as format violation,
    because it exceeds 9 bits. It should have been 0x102 instead, which
    sets the 9th bit - the bit 21 of the format.
    
      $ perf stat -vv -a -e uncore_qpi_0/event=0x102,umask=0x8/
      Using CPUID GenuineIntel-6-2D
      ...
      ------------------------------------------------------------
      perf_event_attr:
        type                             10
        size                             112
        config                           0x200802
        sample_type                      IDENTIFIER
      ...
    Reported-by: default avatarMichael Petlan <mpetlan@redhat.com>
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Fixes: ac0e2cd5 ("perf tools: Fix PMU term format max value calculation")
    Link: http://lkml.kernel.org/r/20181003072046.29276-1-jolsa@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    1b9caa10
pmu.c 32.8 KB