Hello, The hypervisor interface to access 24x7 performance counters (which collect performance information from system power on to system power off) has been extended in POWER9 adding new fields to the request and result element structures.
Also, results for some domains now return more than one result element and those need to be added to get a total count. The first two patches fix bugs in the existing code. The following 4 patches are code improvements and the last two finally implement support for the changes in POWER9 described above. POWER8 systems only support version 1 of the interface, while POWER9 systems only support version 2. I tested these patches on POWER8 to verify that there are no regressions, and also on POWER9 DD1. Changes since v2: All patches - Added Reviewed-by tags from Sukadev to the patches which didn't change after he reviewed them. Patch "powerpc/perf/hv-24x7: Minor improvements" - Fix off-by-one error in HV_PERF_DOMAIN_MAX usage in h_24x7_event_init. Patch "powerpc/perf/hv-24x7: Support v2 of the hypervisor API" - Use cur_cpu_spec->oprofile_cpu_type instead of CPU_FTR_ARCH_300 to check for POWER9 in hv_24x7_init (suggested by Michael Ellerman). Changes since v1: Patch "powerpc/perf/hv-24x7: Support v2 of the hypervisor API" - Use function instead of API version-specific macros to obtain the number of requests that fit in the request buffer (suggested by Sukadev). - Added interface version parameter to request size macro instead of defining one macro per version (suggested by Sukadev). - Return early with -EIO instead of -ENOTSUPP after finding the start of the next result in get_count_from_result if there's more than one result element. - Changed h_24x7_event_commit_txn to bail out if any result has an error (suggested by Sukadev). Thiago Jung Bauermann (8): powerpc/perf/hv-24x7: Fix passing of catalog version number powerpc/perf/hv-24x7: Fix off-by-one error in request_buffer check powerpc/perf/hv-24x7: Properly iterate through results powerpc-perf/hx-24x7: Don't log failed hcall twice powerpc/perf/hv-24x7: Fix return value of hcalls powerpc/perf/hv-24x7: Minor improvements powerpc/perf/hv-24x7: Support v2 of the hypervisor API powerpc/perf/hv-24x7: Aggregate result elements on POWER9 SMT8 arch/powerpc/perf/hv-24x7.c | 242 ++++++++++++++++++++++++--------- arch/powerpc/perf/hv-24x7.h | 69 ++++++++-- arch/powerpc/platforms/pseries/Kconfig | 2 +- 3 files changed, 241 insertions(+), 72 deletions(-) -- 2.13.0