2013-01-15  

  * 0917f567 src/threads.c: Cleaned up compiler warning (gcc version 4.4.6)

  * 06ca3faa src/components/bgpm/CNKunit/linux-CNKunit.c
  src/components/bgpm/IOunit/linux-IOunit.c
  src/components/bgpm/L2unit/linux-L2unit.c...: Cleaned up compiler warnings on
  BG/Q (gcc version 4.4.6 (BGQ-V1R1M2-120920))

2013-01-14  

  * 56400627 .../build/lib.linux-x86_64-2.7/perfmon/__init__.py
  .../lib.linux-x86_64-2.7/perfmon/perfmon_int.py
  .../build/lib.linux-x86_64-2.7/perfmon/pmu.py...: libpfm4: remove extraneous
  build artifacts.  Steve Kaufmann reported differences between the libpfm4 I
  imported into PAPI and the libpfm4 that can be attained with a git clone
  git://perfmon2.git.sourceforge.net/gitroot/perfmon2/libpfm4  Self: Do libpfm4
  imports from a fresh clone of libpfm4.

2013-01-11  

  * 4ad994bc src/papi_events.csv: Clean up armv7 cortex a15 presets  Clean up
  armv7 cortex a15 presets and add presets for L1 and L2 cache 

  * d54dabf5 ChangeLogP510.txt RELEASENOTES.txt doc/Doxyfile-common...: Prepare
  the repo for a 5.1 release.  * Bump the version number to 5.1 * Update the
  man pages * Create a changelog for 5.1 * Update RELEASENOTES

  * 8816a3b8 INSTALL.txt: Update INSTALL.txt  Add information about installing
  PAPI on Intel MIC. Based upon information from Vince Weaver's PAPI MIC
  support page. http://www.eece.maine.edu/~vweaver/projects/mic/

  * 8dc1ca23 TEST.TXT: Remove TEST.TXT  This was a leftover from a switch over
  to git.

  * 292d6c9b src/papi_libpfm3_events.c: Fix build on ia64  When trying to build
  papi 5.0.1 for IA64, my collegue got compile errors due to perfmon.h not
  being included.  We're not sure if this actually is a configure bug, but this
  patch fixed it.

  * 25424f41 src/extras.c: Fix kernel warning in _papi_hwi_stop_timer()  In
  _papi_hwi_stop_timer() we were calling setitimer( timer, NULL, NULL ) to
  disable the itimer.  Recent Linux kernels print warnings if you do this; NULL
  is not a valid second argument to setitimer() and possibly this wasn't really
  working before.  According to the manpage the proper fix is to call
  setitimer() with a valid "new_value" field but with the values all 0.  That
  is what this patch does.

2012-11-30  

  * a7d70127 src/components/micpower/README
  src/components/micpower/Rules.micpower
  src/components/micpower/linux-micpower.c...: MIC power component  The Intel
  MIC (Xeon PHI) card reports power of several components of the card. These
  values are reported in a sysfs file, so this component is cloned from the
  coretemp component.

2013-01-08  

  * 121cd0a6 src/Makefile.in src/Rules.pfm4_pe src/configure...: configure: Add
  shortcut for mic support.  * Add a --with-mic flag to enable the several
  options to cross compile for mic. MIC builds are cross-compiled and Matt and
  I were unable to figure out how to trigger cross compilation with just our
  flag. This is short-hand for setting --with-arch=k1om --without-ffsll
  --with-walltimer=clock_realtime_hr \ --with-perf-events --with-tls=__thread
  --with-virtualtimer=cputime_id  * Automatically cause make to pass
  CONFIG_PFMLIB_ARCH_X86=y to libpfm4's make.  So to build for the mic card one
  has to do: {Set pathing to find the x86_64-k1om-linux-gcc cross-compiler} $
  ./configure --host=x86_64-k1om-linux --with-mic $ make  Thanks to Matt
  Johnson for the legwork on configure shortcuting.

2013-01-07  

  * f65c9d9e src/papi_events.csv: Add preset events for ARM Cortex A15

2012-12-14  

  * 61a9c7b1 man/man3/PAPI_get_eventset_component.3 src/papi.c: Doxygen: Add a
  new API entry  Add the manpage for the new PAPI_get_eventset_component api
  entry.

2013-01-02  

  * 38d969ab doc/Doxyfile-man1 doc/Doxyfile-man3 doc/Makefile...: Doxygen:
  Cleanup generated man pages.  Mark a few \page sections as \htmlonly so that
  man pages are not built for them. Modify the makefile to rm some data
  structures that are generated.  Doxyfile-man3: * Take out papi_vector.h, this
  file only defines a few data structures from which we don't need manpages. 
  papi.h: * PAPI_get_component_index's inline comment had the close /**> to
  delimit its description, but doxygen uses /**<.  papi_fwrappers.c: * Mark the
  group PAPIF as internal so that a man page is not generated for it.  utils/*:
  * Remove some useless htmlonly directrives, doxygen will generate pages for
  any data structure, htmlonly doesn't stop that.  Doxyfile-man1: * Change a
  flag in Doxyfile-man1 so that we don't document internal data structures in
  the utilities.  We don't do this in -man3 because of the \class workaround we
  use to create manpages for each of the PAPI_* api entry points. Because we
  call them classes, they would be caught in the no data structures flag.

  * 7b790c09 doc/Doxyfile-html src/papi.h src/papi_fwrappers.c...: Doxygen:
  Cleanup some of the markup  We were not using htmlonly correctly... The idea
  was to use \htmlonly to not build manpages for a few things. To properly hide
  \page s you want things like: /** \htmlonly \page Foo I don't want this to
  generate a manpage. \endhtmlonly */

2012-12-07  

  * 152bac19 src/papi.c: Doxygen: Cleanup papi.c  Cleanup some \ref s, \ref
  PAPI_function() isn't happy, use \ref PAPI_function it'll put in the proper
  links.  Remove _papi_overflow_handler doc block. We had the block but no
  code.

2012-12-20  

  * 7a40c769 src/components/rapl/tests/rapl_overflow.c: RAPL test code: Add
  flexibility to the test code.  Per Will Cohen; ------------------ I was
  reviewing some test results for the papi test and found that the
  rapl_overflow.c tests makes an assumption that there are exactly two
  packages. As a result the test will fail on machines with a single package. 
  The following is a patch to make it a bit more flexible allow 1-n packages in
  the test.  -Will -----------------

2012-12-19  

  * 96c9afb0 src/components/appio/README src/components/appio/appio.c
  src/components/appio/appio.h...: Added events for seek statistics and support
  for intercepting lseek() calls.

2012-12-14  

  * 003abf6d src/Rules.perfctr-pfm: Rules.perfctr-pfm: pass CC in all cases. 
  Perfctr user library was not being passed CC when built.

2012-12-05  

  * e2c05b29 src/papi_internal.c: papi_internal.c: Refactor dublicated code in
  cleanup and free eventset.  Currently the code to free runtime state is
  duplicated in cleanup and free. The perf_event_uncore test exposed an issue
  where free cleaned up cpu_attach state but cleanup did not, causing a leak. 
  Have _papi_hwi_free_EventSet call _papi_hwi_cleanup_eventset to free most of
  the runtime state of the eventset and then allow free_eventset to free the
  Eventset Info struct.

2012-12-13  

  * 7d020224 src/configure src/configure.in: configure: Change fortran compiler
  search order.  Bandaid fix to buildbot errors. By default, configure would
  find icc before gcc but gfortran would be used before ifort.  The real fix is
  to test that object code from the c compiler can be linked to by the fortran
  compiler.

2012-12-12  

  * 87b6e913 src/papi_events.csv: ivy_bridge: remove PAPI_HW_INT event 
  Apparently recent Intel Vol3B documentation removed this event, and the most
  recent libpfm4 merge followed suit.  I asked at Intel about this and possibly
  they only removed it because they didn't think anyone was using it.  Maybe
  they'll ad it back

2012-12-10  

  * 293b26b9 src/Makefile.inc: Makefile.inc: Fix library link ordering.  Per
  Will Cohen ----------------------------------------------------------- I ran
  across a problem when trying to build papi with the bundled libpfm and an
  earlier incompatible version of libpfm was already installed on the machine.
  The make would use the /usr/lib{64}/libpfm.so before trying to use the
  locally built version and this would cause problems.  The attached patch
  changes the order of the linking and uses the local built libpfm before it
  tries the installed version.  -Will
  -----------------------------------------------------------

2012-12-12  

  * 57e6aa0d src/Makefile.in: Makefile.in: export CC_COMMON_NAME  In 17cfcb4a I
  started using CC_COMMON_NAME in Rules.pfm4 but failed to have configure put
  it in Makefile.

2012-12-11  

  * 17cfcb4a src/Rules.pfm4_pe src/configure src/configure.in: Cleanup icc
  build  Start using -diag-disable to quiet down some of the remarks icc carps
  about in libpfm4.  Also have configure export CC_COMMON_NAME and check
  against that in Rules.pfm4_pe. afec8fc9a reverted us to passing
  -Wno-unused-parameter to icc, polluting buildbot.

2012-12-10  

  * afec8fc9 src/configure src/configure.in: configure: Attempt to better
  detect which C compiler we are using.  This attempts to address trac bug 162.
  http://icl.cs.utk.edu/trac/papi/ticket/162  Specifying full paths for CC
  caused issues in our configure logic. We set several flags specific to gcc or
  icc and this was breaking down EG "/usr/bin/gcc" != "gcc"  Now we attempt to
  execute whatever CC we are going to use and grep its version string. We set a
  CC_COMMON_NAME \in {"gcc", "icc", "xlc", "unknown"} based upon the above and
  later check CC_COMMON_NAME inplace of CC to set compiler specific flags.

  * 14432aa0 src/linux-timer.c src/papi.c: Minor Coverity fixes. Thanks, Will
  Cohen.

2012-12-07  

  * ba5e83d4 src/papi_user_events.c: papi_user_events.c: Fix memory leak. 
  Reported by William Cohen as detected by the coverity tool.

  * 166498a8 src/components/nvml/linux-nvml.c: nvml component: fix
  detectDevices()  The routine detectDevices() always returned with the error
  PAPI_ESYS when there was a device available. This resulted in that there were
  no nvml events available. Fixed.

  * 11ad5894 src/components/nvml/linux-nvml.c: nvml component: add missing
  variable declaration  In the routine _papi_nvml_init_componen(), the variable
  papi_errorcode was not declared which prevented this component to build.
  Added declaration of papi_errorcode as int.

2012-12-06  

  * 9567dfef src/ftests/first.F src/ftests/second.F: Fix warning messages
  issued by gfortran 4.6.x regarding loss of precision when casting REAL to
  INT. Thanks to Heike for identifying the proper intrinsics.

  * 72588227 src/papi.c src/papi.h: Add PAPI_get_eventset_component() to get
  the component index from an event set. This is symmetric with
  PAPI_get_event_component which extracts the information from an event. In
  response to a request from John Mellor-Crummey.

  * 2e055d40 src/components/rapl/linux-rapl.c: Fix a compiler warning about a
  possibly uninitialized return value.

2012-12-05  

  * 1aae2246 src/utils/command_line.c: Reformat the floating point output
  string to recognize that you can't cast the *value* of a long long to a
  double and expect to get the right answer; you need to cast the *pointer* to
  a double, then everything works.

  * 0e834fc2 src/utils/command_line.c: Incorporated use of the new
  PAPI_add_named_event API. Restructured output to support formatted printing
  of built-in DATATYPEs: UINT64 prints as unsigned followed by (u); INT64
  prints as signed; FP64 prints as float (but I don't like the default format);
  BIT64 prints a hex, prefixed by '0x'. Also if info.units is not empty, units
  are appended to output values. These features can be demo'd with the RAPL
  component.

  * af6abec2 src/papi.h: Rearranged DATATYPE enums so INT64 is now default (0)
  value. Also added a BIT64 type for unspecified bitfields.

2012-12-04  

  * 862033e0 src/components/bgpm/IOunit/linux-IOunit.c
  src/components/bgpm/IOunit/linux-IOunit.h
  src/components/bgpm/L2unit/linux-L2unit.c...: Resolved multiple components
  conflict on BG/Q when overflow is enabled for multiple events from different
  components at the same time.

  * 44744002 src/utils/command_line.c: Add -x and -u options to
  papi_command_line to allow printing counter values in hexadecimal and
  unsigned formats.

2012-11-30  

  * 25a914c5 src/papi_user_events.c: Cleanup unused variable warnings in
  user_events code.

2012-11-28  

  * 9a75f872 src/Rules.pfm4_pe src/configure src/configure.in: Cleanup the
  build under icc.  libpfm4's build system uses a gcc specific flag,
  -Wno-unused-parameter. It does this via a variable, DBG, in config.mk:
  DBG?=-g -Wall -Werror -Wextra -Wno-unused-parameter  The Intel compiler
  doesn't understand -Wno-unused-parameter and complains about it. In
  Rules.pfm4_pe we set DBG for icc builds.

2012-11-27  

  * 4def827b src/configure src/configure.in: Fix the perfctr build that was
  breaking due to missing CPU  Mark Gates was reporting PAPI 5 wasn't running
  properly on Keeneland.  It looks like some CPU cleanups in the configure code
  broke things.  Hopefully this helps the situation.

2012-11-21  

  * 4316f172 src/perf_events.c: perf_events: get rid of "PAPI Error: Didn't
  close all events" error  This was more meant as a warning; it could trigger
  when closing an EventSet that had an event partially added but failed for
  some reason.

  * 671e10bd src/utils/command_line.c: papi_command_line: fix error output  The
  error messages got a bit weird looking due to the PAPI error printing changes
  a while back.

  * 959afa49 src/papi_internal.c: Fix _papi_hwi_add_event to report errors back
  to user.  Previously _papi_hwi_add_event would report all errors returned by
  add_native_events() as being PAPI_ECNFLCT even though add_native_events()
  returned a wider range of errors.

  * 8ecb70ba src/perf_events.c: Have perf_event return PAPI_EPERM rather than
  PAPI_ECNFLCT if the kernel itself returns EPERM

  * 9053ca1c src/perf_events.c: Work around kernel issue with
  PERF_EVENT_IOC_REFRESH  It's unclear exactly the best way to restart
  sampling.  Refreshing with 1 is the "official" way as espoused by the kernel
  developers, but it doesn't work on Power.  0 works for Power and most other
  machines, but the kernel developers say not to use it.  This makes power user
  0 until we can figure out exactly what is going on.

  * e85df04b src/components/appio/tests/appio_test_socket.c: - added support
  distinguishing between network and file I/O. - added events to measure
  statistics for sockets - updated README

2012-11-15  

  * 248694ef src/x86_cpuid_info.c: Update x86_cpuid_info code for KNC.  On
  Knight's Corner the leaf2 code returns 0 for the count value. We were
  printing a warning on this; better would be to just skip the cache detection
  code if we get this result.

2012-11-08  

  * 82c93156 src/linux-bgp-memory.c src/linux-bgp.c src/linux-bgp.h: There was
  more cleaning up necessary in order to get PAPI compiled on BG/P. It should
  work now with the recommended configure steps described in INSTALL.

2012-11-07  

  * 77da80b3 src/Makefile.inc src/configure src/configure.in...: Make BGP use
  papi_events.csv  This was easier than trying to clean up the
  linux-bgp-preset-events.c file to have the proper file layout.

  * fc8a4168 src/linux-bgp.c: Fix some linux-bgp build issues.  No one has
  tried compiling after all the PAPI 5.0 changes so many bugs slipped in.

  * c16ef312 src/ctests/perf_event_uncore.c: Fix type warnings in
  perf_event_uncore test.

  * 3947e9c8 src/ctests/perf_event_uncore.c: Put a bandaid on the
  perf_event_uncore test.  Check for an Intel family 6 model 45 processor
  (sandybridge ep) before executing the test.

2012-09-27  

  * a23d95f8 src/papi.c src/papi.h src/papi_fwrappers.c...: Mark some comments
  @htmlonly.  This cleans up what man pages are generated.

2012-11-07  

  * d239c350 src/Makefile.inc src/Rules.pfm4_pe: Factor out duplicate install
  code from Rules.pfm4_pe  The Makefile.inc has a rule to installed shared
  libraries.  However, Rules.pfm4_pe also has a slightly different set of rules
  to install code for shared libraries.  This leads to the same shared library
  being installed under two different names.  The duplicate code has been
  removed from Rules.pfm4_pe and a symbolic link has been added to ensure that
  any code that might have linked with
  libpapi.so.$(PAPIVER).$(PAPIREV).$(PAPIAGE) still runs. 

2012-10-30  

  * fcc64ff9 src/papi_events.csv: Add PAPI_HW_INT event for IvyBridge

2012-10-26  

  * ef89fc56 src/papi_events.csv: MIC: update PAPI_FP_INS / PAPI_VEC_INS
  instruction  We were using VPU_INSTRUCTIONS_EXECUTED for PAPI_FP_INS but
  really it's more appropriate for PAPI_VEC_INS  This leaves PAPI_FP_INS
  undefined, which breaks a lot of the ctests. A long term goal should probably
  be modifying the tests to use another counter if PAPI_FP_INS isn't available
  (this affects Ivy Bridge too).

2012-10-25  

  * 975c03f1 src/perf_events.c: perf_event: fix granularity bug  cut-and paste
  error in the last set of changes.  Would have meant if you tried to
  explicitly set granularity to thread you'd get system instead.

  * 3cd3a62d src/configure src/configure.in src/ctests/Makefile...: Add
  perf_event_uncore ctest  Also add a new type of ctest, perf_event specific 
  In theory we should have configure only enable this if perf_event support is
  being used.

  * 5ee97430 src/perf_events.c: perf_event: add PAPI_DOM_SUPERVISOR to allowed
  perf_event domains  perf_event supports this domain but since we didn't have
  it in the list PAPI wasn't letting us set/unset this.  This is needed for
  uncore support, as for uncore domain must be set to allow monitoring
  everything.

  * c9325560 src/perf_events.c: perf_event enable granularity support  Add
  support for PAPI_GRAN_SYS to perf_event. This is needed for uncore support.

2012-10-18  

  * 59d3d758 src/mb.h src/perf_events.c: Update the memory barriers  It turns
  out PAPI fails on older 32-bit x86 machines because it tries to use an SSE
  rmb() memory barrier.  (Yes, I'm trying to run PAPI on a Pentium II.  Don't
  ask)  It looks like our memory barriers were copied out of the kernel, which
  doesn't quite work because it expects some kernel infrastructure instead. 
  This patch uses the definitions used by the "perf" tool instead.  Also
  dropped the use of the mb() memory barrier on mmap tail write, as the perf
  tool itself did a while ago so I'm hoping it's safe to do so as well.  It
  makes these definitions a lot simpler.

2012-10-08  

  * bcdce5bc src/perf_events.c: perf_event: clarify an error message  The
  message was saying detecting rdpmc support broke, but the real error is that
  perf_events itself is totally broken on this machine and it's just rdpcm was
  the first code that tried to access it.

2012-10-02  

  * 3bb3558f src/mb.h: Update memory barries for Knights Corner  Despite being
  x86_64 they don't support the SSE memory barrier instructions, so add a case
  in mb.h to handle this properly.

2012-10-01  

  * 38a5d74c src/libpfm4/README src/libpfm4/docs/Makefile
  src/libpfm4/docs/man3/libpfm_intel_atom.3...: Merge libpfm4 with Knights
  Corner Support

  * bf959960 src/papi_events.csv: Change "phi" to "knc" to match libpfm4 for
  Xeon Phi / Knights Corner support

2012-09-20  

  * d9249635 ChangeLogP501.txt RELEASENOTES.txt: Update releasenotes and add a
  changelog for 5.0.1

  * a1e30348 man/man1/papi_avail.1 man/man1/papi_clockres.1
  man/man1/papi_command_line.1...: Rebuild the manpages for a 5.0.1 release.
