Subject: [PATCH v3 0/8] Support for 24x7 hcall interface version 2

From: Thiago Jung Bauermann <[email-masked]>
Date: Thu, 29 Jun 2017 18:55:30 -0300

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