[Skiboot] [PATCH v3 0/9] OPAL support for Nest instrumentation

Madhavan Srinivasan maddy at linux.vnet.ibm.com
Mon Aug 3 17:33:39 AEST 2015

Patchset adds support for Nest instrumentation services
in OPAL. Power8 has Nest instrumentation enabled with which
per-chip metrics like memory bandwidth, Powerbus, X link and
A link metrics can be obtained.

Patchset does two things,1) At the time of boot, it detects
the Nest instrumentation feature and created device-tree
entries to pass the information to kernel. Secondly, it
implements an opal call to control the PORE_SLW_IMA microcode
from kernel to start/stop Nest PMU counter collection.
Patchset tested only in IBM Tuleta boxes.

Change log v2:

1) Renamed uintXX_t and __beXX variable type to uXX type.
2) Merged the Makefile and core/init file update patch as one to help out review
3) Merged nest parser function and nest mcs support function as one patch
   to fix compilation issue reported.
4) Rebased with latest skiboot code and modified OPAL call number to 117 from 116
5) Added more comments and made changes to commit message
6) Removed commented lines in the header file structures.

Change log from v1:

1) Modified OPAL-API interface, now opal call has two parameters and have
   add documentation for the same.
2) Have split the lid loading part into two functions, first queues lid loading
   and second part verifies the magic and updates the data structure.
3) Added workaround for default sampling rate issue
4) Added more comments,fixed spelling errors,removed type cast for malloc
5) Moved "NEST_CATALOGUE_SIZE" macro definition from mem-map.h to nest.h
6) Added "Naples" chip id check
7) Merged alink (patch 8) and xlink (patch 9) dt type functions
8) Removed memset since snprintf takes care of adding trailing null
9) Renamed some variables and function for consistency.
10) Removed "ibm-fsp/firenze" from patchset subject since this series is not
    specific to "ibm-fsp/firenze" platform.
11) Made changes to commit messages.

Change log from RFC:

1) Removed "uncore" naming and replaced it with "nest/ima" in all the
   file and function.
2) Added a DT entry to pass DIMM rate information
3) Added nest instrumentation detection code and catalog parser function
4) Added support functions for different nest units.

Kindly let me know your comments and feedback.

Madhavan Srinivasan (9):
  nest data structure definitions
  OPAL nest feature detection
  Device-Tree(DT) entry for per-chip HOMER offset
  Device-Tree(DT) entry for DIMM rate
  Nest unit parser and Nest MCS unit support functions
  Nest PowerBus unit support
  Nest Alink and Xlink unit support
  Nest Sampling rate workaround
  Add OPAL call to enable/disable Nest pmu

 core/init.c                    |  11 +
 doc/opal-api/opal-nest-ima.txt |  26 +++
 hw/Makefile.inc                |   2 +-
 hw/fsp/fsp.c                   |   3 +
 hw/nest.c                      | 450 +++++++++++++++++++++++++++++++++++++++++
 include/nest.h                 | 250 +++++++++++++++++++++++
 include/opal-api.h             |   3 +-
 include/platform.h             |   1 +
 8 files changed, 744 insertions(+), 2 deletions(-)
 create mode 100644 doc/opal-api/opal-nest-ima.txt
 create mode 100644 hw/nest.c
 create mode 100644 include/nest.h


More information about the Skiboot mailing list