2016-01-25
	
  * d779d1172a6e4c73b5ece9939c4d067c2b3d7b8d Update libpfm4 current
    with Jan 25 08:33:02 2016 version.

2016-01-07  

  * 0d9776b8 src/components/stealtime/linux-stealtime.c: Free allocated memory
  in the stealtime component when component is shutdown  Thanks to William
  Cohen for contributing this patch and the following explaination: Running
  examples with "valgrind --leak-check=full ..." showed a number of items
  allocated by the stealtime component were not freed when PAPI_shutdown() was
  called.  This patch frees those unused memory allocations.

2016-01-06  

  * de40668c src/papi_preset.c: Fixed memory leak in papi_preset.c by updating
  the infix_to_postfix function.  Thanks to William Cohen for discovering the
  leak. The infix_to_postfix function was re-written and tested using user
  defined events.

2015-12-30  

  * db37e115 src/utils/avail.c src/utils/native_avail.c: Added "-check" flag to
  papi_avail and papi_native_avail to test counter availability/validity"  This
  patch updates the papi_avail and papi_native_avail utilities to use the
  "-check" flag to test the actual availability of counters. There were
  previously two different flags for this capability, papi_native_avail used
  "-validate" and papi_avail used "-avail_test". Based on a mailing list
  discussion these flags have been consolidated as "-check".

2015-12-29  

  * 72e0ffe8 src/components/lmsensors/linux-lmsensors.c: Fixed minor error with
  multiple initializers for lmsensors_vector .default_granularity.  Thanks to
  William Cohen for the bug report.

2015-12-07  

  * ec3582d8 src/utils/avail.c: papi_avail to test actual availability of
  counters using "papi_avail --avail-test"  This problem and the associated
  patch were detected and contributed by Harald Savat. Thanks.  On an Intel(R)
  Xeon(R) CPU E5-2660 v2 @ 2.20GHz system with PAPI 5.4.1 installed The
  papi_avail command indicates that both PAPI_LD_INS and PAPI_SR_INS are
  available, however the papi_event_chooser does not accept them (see below)
  and return -1.  This problem can occur in kernels from version 3.1 till 4.1.
  The kernel devs blocked all uses of the MEM_OPS events (including load and
  store).  The patch modifies papi_avail to test the counters to see if they
  can be added. papi_avail     # gets all PAPI counters papi_avail -a  # gets
  all available PAPI counters papi_avail -at # shows all available PAPI
  counters that can be added  [Ptools-perfapi: Oct 14 2015]

2015-11-30  

  * 1fab922e src/components/libmsr/README src/components/libmsr/configure
  src/components/libmsr/configure.in...: The libmsr component is updated to
  match major changes in LLNL libmsr library and the LLNL msr-safe kernel
  module

2015-11-18  

  * 242b16d3 src/Makefile.inc src/components/cuda/configure
  src/components/cuda/configure.in...: Added papi_cuda_sampling utility in
  /src/components/cuda/sampling changed src/Makefile.inc ,
  src/components/cuda/configure.in to build the utiltiy during PAPI
  installation  Added  in /src/components/cuda/tests/Makefile which is -ldl
  switch because  3.10.0-229.14.1.el7.x86_64 had issues using libpapi.a during
  compilation of cuda component test programs

2015-10-21  

  * a10e8331 src/papi_events.csv: papi_events: add Intel Skylake presets  This
  just shares all of teh broadwell events with skylake. Some quick tests show
  that this probably works. Someone with skylake hardware should validate this
  at some point.

2015-10-08  

  * 91736851 src/papi_internal.c: Thanks to David Eberius of ICL for reporting
  a bug in PAPI_get_event_info() in papi_internal.c, (info->component_index =
  (unsigned int) cidx) was missing at line 2554, of papi_internal.c

2015-08-27  

  * 502df070 src/Makefile.inc: Thanks to Steve Kaufmann for reporting about the
  redundant () paramater in the OBJECTS expression of src/Makefile.inc file.
  Updated Makefile.inc by removing the redundant paramater

2015-08-24  

  * 69fdc2e0 src/papi.c: Thanks to Harald Servat for reporting the
  PAPI_overflow issue for multiple eventsets. The problem was in the
  PAPI_start() function in the branch at line-2166:papi.c , if(is_dirty). After
  update_control_state(), it is required to re-initialize the overflow settings
  using set_overflow()

2015-07-29  

  * be81dc43 src/components/perf_event/perf_event.c: perf_event: update the ARM
  domain workaround  older ARM processors could not separate out KERNEL vs USER
  events.  ARMv7 starting with the Cortex A15 can, as can all ARMv8 (ARM64). 
  This updates the code with a whitelist to properly allow setting the domains.

  * 43be2588 src/linux-common.c: linux-common: clean up ARM cpu detection 
  Parsing cpuinfo is always a pain.  Extra work because of Raspberry Pi
  (ARM1176) lying and saying it's ARMv7 rather than ARMv6.

  * 5a101a50 src/linux-common.c: linux-common: split up x86, power and arm
  cpuinfo parsing

  * 0d7772d9 src/linux-common.c: linux-common: clean up and comment the cpuinfo
  parsing code

2015-07-16  

  * 59489b1f src/components/libmsr/Makefile.libmsr.in
  src/components/libmsr/README src/components/libmsr/Rules.libmsr...: Create
  libmsr component for reading power information and writing power constraints
  using MSRs on some Intel processsors  The PAPI libmsr component supports
  measuring and capping power usage on recent Intel architectures using the
  RAPL interface exposed through MSRs (model-specific registers).  Lawrence
  Livermore National Laboratory has released a library (libmsr) designed to
  provide a simple, safe, consistent interface to several of the model-specific
  registers (MSRs) in Intel processors.  The problem is that permitting open
  access to the MSRs on a machine can be a safety hazard, so access to MSRs is
  usually limited.  In order to encourage system administrators to give wider
  access to the MSRs on a machine, LLNL has released a Linux kernel module
  (msr_safe) which provides safer, white-listed access to the MSRs.  PAPI has
  created a libmsr component that can provide read and write access to the
  information and controls exposed via the libmsr library.  This PAPI component
  introduces a new ability for PAPI; it is the first case where PAPI is writing
  information to a counter as well as reading the data from the counter.

2015-07-13  

  * d326ecc9 src/components/perf_event/perf_event_lib.h src/papi_internal.c:
  Thanks to Steve Kaufman for providing a patch that increases the
  PERF_EVENT_MAX_MPX_COUNTERS to 192 from 128 and enhances the corresponding
  warning message in papi_internal.c

2015-06-29  

  * e829baa5 src/components/cuda/tests/Makefile
  src/components/cuda/tests/cuda_ld_preload_example.README
  src/components/cuda/tests/cuda_ld_preload_example.c: Example of using
  LD_PRELOAD with the CUDA component.  A short example of using LD_PRELOAD on a
  Linux system to intercept function calls and PAPI-enable an un-instrumented
  CUDA binary. Several CUDA events (e.g. SM PM counters) require a CUcontext
  handle to be a provided since they are context switched. This means that we
  cannot use a PAPI_attach from an external process to measure those events in
  a preexisting executable.  These events can only be measured from within the
  CUcontext, that is, within the CUDA enabled code we are trying to measure. 
  If the user is unable to change the source code, they may be able to use
  LD_PRELOAD's ability to trap functions and measure the events for within the
  executable. See src/components/cuda/tests/cuda_ld_preload_example.README for
  details.

2015-06-26  

  * 0829a4f5 src/papi_events.csv: Add future broadwell-ep support.  libpfm4
  doesn't support it yet, but add it for when it appears.

2015-06-25  

  * 36c5b5b6 src/papi_events.csv: add broadwell predefined events  For now they
  are the same as Haswell, as that's what the Linux kernel does.

  * f42eda64 src/papi_events.csv: Added definitions to Power8 for PAPI_SP_OPS,
  PAPI_DP_OPS.

2015-06-18  

  * f87542f7 src/components/perf_event/tests/event_name_lib.c: Added [case 63:
  /*Haswell EP*/] line the src/components/perf_event/tests/event_name_lib.c
  file to support offcore for haswell EP

  * fbfc641f src/components/perf_event_uncore/tests/perf_event_uncore_cbox.c
  src/components/perf_event_uncore/tests/perf_event_uncore_lib.c: Added suuport
  for Haswell-EP processor with model-63 in
  src/components/perf_event_uncore/tests/perf_event_uncore_lib.c and
  src/components/perf_event_uncore/tests/perf_event_uncore_cbox.c files. As a
  result perf_event_uncore, perf_event_uncore_multiple and
  perf_event_uncore_cbox tests get passed. Tested and verified on Intel(R)
  Xeon(R) CPU E5-2650 v3 @ 2.30GHz with linux kernel 4.0.4-1.el6.elrepo.x86_64

2015-06-17  

  * 56698211 src/components/lustre/linux-lustre.c: Thanks to Garry Mohr for the
  patch that removes the error message (PAPI Error: Error Code -7,Event does
  not exist) on executing papi_native_avail in PAPI built with lustre component

2015-06-16  

  * 1b9fd867 src/components/rapl/linux-rapl.c: rapl: allow DRAM to have
  separate scaling factor from CPU  on Haswell-EP the DRAM scaling value is
  different and cannot be detected.  See https://lkml.org/lkml/2015/3/20/582

  * 1aa74f85 src/components/rapl/linux-rapl.c: rapl: add support for Broadwell 

2015-06-11  

  * a5ecda79 src/components/rapl/linux-rapl.c: Thanks to William Cohen for the
  patch which does the following: Checking the cpu family and module number is
  not sufficient to determine whether RAPL can be used.  If the papi is running
  inside a guest VM, the MSR used by the PAPI RAPL component may not be
  available.  There should be a simple read test to verify the RAPL MSR
  registers are available.  This allows the component to more clearly report
  that RAPL is unsupported rather than just exiting program when the RAPL

2015-05-19  

  * 54c45107 src/components/rapl/utils/rapl_plot.c: Updated rapl_plot utility
  so that the correct values/units are reported (e.g. scaled and fixed value
  counts should not be converted)

2015-05-04  

  * a34fbc62 src/papi_events.csv: papi_events.csv: typo in the ARM Cortex A53
  definitions

2015-04-30  

  * caa3af72 src/papi_events.csv: papi_events.csv: add preset events for ARM
  Cortex A53  This is based purely on the names in the libpfm4 output, these
  were not validated in any way.

2015-04-20  

  * 66553715 INSTALL.txt: added compile incantation for compiling programs that
  offload code to MIC

2015-04-16  

  * 8914dcfc src/papi_events.csv: Bug reported by William Cohen in
  papi_events.csv for the event PAPI_L1_TCM

2015-03-31  

  * 023af5ec src/components/nvml/configure: Updated the NVML configure script
  which requires an autoconf and an updated configure script

  * 2385c1b2 src/components/nvml/Makefile.nvml.in
  src/components/nvml/Rules.nvml src/components/nvml/configure.in: Updated the
  NVML configure script to allow separate include and library paths

2015-03-30  

  * 3d509095 src/components/infiniband_umad/linux-infiniband_umad.c: Bugfix
  linux-infiniband_umad.c to include linux-infiniband_umad.h rather than
  linux-infiniband.h.  Thanks to Aurelien Bouteiller for pointing out this bug.

  * b865f227 src/components/vmware/vmware.c: Corrected function name in
  _vmware_vector from _vmware_init to _vmware_init_thread.

2015-03-24  

  * 2f58a4d8 src/configure: Regenerated configure to match the PAPI_GRN_SYS
  patch

  * 12e6ef31 src/components/perf_event/tests/perf_event_system_wide.c: Support
  PAPI_GRN_SYS granularity for perf component, updating the system wide test
  (patch 2 of 2).  Thanks to William Cohen for this patch and the documentation
   Make sure that a sane cpu number is selected with PAPI_GRN_SYS Corrections
  to output and comments of perf_event_system_wide.c test

  * 42879693 src/components/perf_event/perf_event.c
  src/components/perf_event/tests/perf_event_system_wide.c src/config.h.in...:
  Support PAPI_GRN_SYS granularity for perf component, picking a sane CPU
  number (patch 1 of 2).  Thanks to William Cohen for this patch and the
  documentation  The checks in perf_event_open syscall cause a failure when
  both pid=-1 and cpu=-1.  The perf_event component was passing in pid=-1 and
  cpu=-1 when PAPI_GRN_SYS was selected.  If possible, the code should pick the
  current processor that the command is running so that the permission check
  works properly when PAPI_GRN_SYS is used.  The patch also adds a test fail if
  PAPI_GRN_SYS unable to add PAPI_TOT_CYC. 

  * 0ab9b0c8 src/ctests/krentel_pthreads.c: Added call to unregister the
  overflow handler.. plus small code cleanup

2015-03-05  

  * d886c49c src/papi.c src/papi_libpfm4_events.c src/utils/avail.c: Clean
  output from papi_avail tools when there are no user defined events  Thanks to
  Gary Mohr for this patch.  The changes in this patch improve the output from
  the papi_avail tool.  It was printing the user defined events header and a
  PAPI Error message when no user defined events existed.  These changes add
  code in the enum call to return an error when trying to fetch the first user
  defined event if no user events are defined.  This allows the application to
  detect that no user events are known and skip printing the user defined event
  heading.  It also prevents the application from calling PAPI_get_event_info
  with a user defined event code that does not exist which avoids the PAPI
  Error message.  Also a one line change to modify a debug message type to make
  the debug output produced by papi_libpfm4_events.c consistent.

2015-03-03  

  * ee0c58d7 src/components/cuda/linux-cuda.c: Do not generate an error if the
  CUDA libraries cannot be loaded, just write a debug message

  * 08bb9bf0 src/configure: Updating the number to 5.4.1

2015-03-02  

  * 01f742c1 release_procedure.txt: Minor change to specify locations of some
  files
