lkml.org 
[lkml]   [2020]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v5 00/11] powerpc/perf: Add json file metric support for the hv_24x7 socket/chip level events
    Date
    Patchset fixes the inconsistent results we are getting when
    we run multiple 24x7 events.

    Patchset adds json file metric support for the hv_24x7 socket/chip level
    events. "hv_24x7" pmu interface events needs system dependent parameter
    like socket/chip/core. For example, hv_24x7 chip level events needs
    specific chip-id to which the data is requested should be added as part
    of pmu events.

    So to enable JSON file support to "hv_24x7" interface, patchset expose
    total number of sockets and chips per-socket details in sysfs
    files (sockets, chips) under "/sys/devices/hv_24x7/interface/".

    To get sockets and number of chips per sockets, patchset adds a rtas call
    with token "PROCESSOR_MODULE_INFO" to get these details. Patchset also
    handles partition migration case to re-init these system depended
    parameters by adding proper calls in post_mobility_fixup() (mobility.c).

    Second patch of the patchset adds expr_scanner_ctx object to hold user
    data for the expr scanner, which can be used to hold runtime parameter.

    Patch 9 & 11 of the patchset handles perf tool plumbing needed to replace
    the "?" character in the metric expression to proper value and hv_24x7
    json metric file for different Socket/chip resources.

    Patch set also enable Hz/hz prinitg for --metric-only option to print
    metric data for bus frequency.

    Applied and tested all these patches cleanly on top of jiri's flex changes
    with the changes done by Kan Liang for "Support metric group constraint"
    patchset and made required changes.

    Changelog:
    v4 -> v5
    - Using sysfs__read_int instead of sysfs__read_ull while reading
    parameter value in powerpc/util/header.c file.

    - Using asprintf rather then malloc and sprintf
    Suggested by Arnaldo Carvalho de Melo

    - Break patch 6 from previous version to two patch,
    - One to add refactor current "metricgroup__add_metric" function
    and another where actually "?" handling infra added.

    - Add expr__runtimeparam as part of 'expr_scanner_ctx' struct
    rather then making it global variable. Thanks Jiri for
    adding this structure to hold user data for the expr scanner.

    - Add runtime param as agrugement to function 'expr__find_other'
    and 'expr__parse' and made changes on references accordingly.

    v3 -> v4
    - Apply these patch on top of Kan liang changes.
    As suggested by Jiri.

    v2 -> v3
    - Remove setting event_count to 0 part in function 'h_24x7_event_read'
    with comment rather then adding 0 to event_count value.
    Suggested by: Sukadev Bhattiprolu

    - Apply tool side changes require to replace "?" on Jiri's flex patch
    series and made all require changes to make it compatible with added
    flex change.

    v1 -> v2
    - Rename hv-24x7 metric json file as nest_metrics.json

    Jiri Olsa (2):
    perf expr: Add expr_ prefix for parse_ctx and parse_id
    perf expr: Add expr_scanner_ctx object

    Kajol Jain (9):
    powerpc/perf/hv-24x7: Fix inconsistent output values incase multiple
    hv-24x7 events run
    powerpc/hv-24x7: Add rtas call in hv-24x7 driver to get processor
    details
    powerpc/hv-24x7: Add sysfs files inside hv-24x7 device to show
    processor details
    Documentation/ABI: Add ABI documentation for chips and sockets
    powerpc/hv-24x7: Update post_mobility_fixup() to handle migration
    perf/tools: Refactoring metricgroup__add_metric function
    perf/tools: Enhance JSON/metric infrastructure to handle "?"
    tools/perf: Enable Hz/hz prinitg for --metric-only option
    perf/tools/pmu-events/powerpc: Add hv_24x7 socket/chip level metric
    events

    .../sysfs-bus-event_source-devices-hv_24x7 | 14 ++
    arch/powerpc/perf/hv-24x7.c | 104 ++++++++++++--
    arch/powerpc/platforms/pseries/mobility.c | 12 ++
    arch/powerpc/platforms/pseries/pseries.h | 3 +
    tools/perf/arch/powerpc/util/header.c | 10 ++
    .../arch/powerpc/power9/nest_metrics.json | 19 +++
    tools/perf/tests/expr.c | 12 +-
    tools/perf/util/expr.c | 25 ++--
    tools/perf/util/expr.h | 19 ++-
    tools/perf/util/expr.l | 37 +++--
    tools/perf/util/expr.y | 6 +-
    tools/perf/util/metricgroup.c | 127 ++++++++++++++----
    tools/perf/util/metricgroup.h | 1 +
    tools/perf/util/stat-display.c | 2 -
    tools/perf/util/stat-shadow.c | 14 +-
    15 files changed, 326 insertions(+), 79 deletions(-)
    create mode 100644 tools/perf/pmu-events/arch/powerpc/power9/nest_metrics.json

    --
    2.18.1

    \
     
     \ /
      Last update: 2020-03-17 07:25    [W:2.964 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site