• Thomas Richter's avatar
    s390/cpumf: Allow concurrent access for CPU Measurement Counter Facility · a029a4ea
    Thomas Richter authored
    Commit cf6acb8b ("s390/cpumf: Add support for complete counter set extraction")
    allows access to the CPU Measurement Counter Facility via character
    device /dev/hwctr. The access was exclusive via this device or
    via perf_event_open() system call. Only one path at a time was
    permitted. The CPU Measurement Counter Facility device driver blocked
    access to other processes.
    
    This patch removes this restriction and allows concurrent access to
    the CPU Measurement Counter Facility from multiple processes at the same
    time via perf_event_open() SVC and via /dev/hwctr device. The access
    via /dev/hwctr device is still exclusive, only one process is allowed to
    access this device.
    
    This patch
    - moves the /dev/hwctr device access from file perf_cpum_cf_diag.c.
      to file perf_cpum_cf.c.
    - use only one trace buffer .../s390dbf/cpum_cf.
    - remove cfset_csd structure and includes its members it into the
      structure cpu_cf_events. This results in one data structure and
      simplifies the access.
    - rework function familiy ctr_set_enable, ctr_set_disable, ctr_set_start
      and ctr_set_stop which operate on a counter set number.
      Now they operate on a counter set bit mask.
    - move CF_DIAG event functionality to file perf_cpum_cf.c. It now
      contains the complete functionality of the CPU Measurement Counter
      Facility:
      - Performance measurement support for counters using perf stat.
      - Support for complete counter set extraction with device /dev/hwctr.
      - Support for counter set extraction event CF_DIAG attached to
        samples using perf record.
    - removes file perf_cpum_cf_diag.c
    Signed-off-by: default avatarThomas Richter <tmricht@linux.ibm.com>
    Reviewed-by: default avatarSumanth Korikkar <sumanthk@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    a029a4ea
Makefile 2.53 KB