• Vaibhav Jain's avatar
    powerpc/papr_scm: Fetch nvdimm performance stats from PHYP · 2d02bf83
    Vaibhav Jain authored
    Update papr_scm.c to query dimm performance statistics from PHYP via
    H_SCM_PERFORMANCE_STATS hcall and export them to user-space as PAPR
    specific NVDIMM attribute 'perf_stats' in sysfs. The patch also
    provide a sysfs ABI documentation for the stats being reported and
    their meanings.
    
    During NVDIMM probe time in papr_scm_nvdimm_init() a special variant
    of H_SCM_PERFORMANCE_STATS hcall is issued to check if collection of
    performance statistics is supported or not. If successful then a PHYP
    returns a maximum possible buffer length needed to read all
    performance stats. This returned value is stored in a per-nvdimm
    attribute 'stat_buffer_len'.
    
    The layout of request buffer for reading NVDIMM performance stats from
    PHYP is defined in 'struct papr_scm_perf_stats' and 'struct
    papr_scm_perf_stat'. These structs are used in newly introduced
    drc_pmem_query_stats() that issues the H_SCM_PERFORMANCE_STATS hcall.
    
    The sysfs access function perf_stats_show() uses value
    'stat_buffer_len' to allocate a buffer large enough to hold all
    possible NVDIMM performance stats and passes it to
    drc_pmem_query_stats() to populate. Finally statistics reported in the
    buffer are formatted into the sysfs access function output buffer.
    Signed-off-by: default avatarVaibhav Jain <vaibhav@linux.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200731064153.182203-2-vaibhav@linux.ibm.com
    2d02bf83
papr_scm.c 29.8 KB