2013-11-25 * a40c96c5 src/components/nvml/linux-nvml.c: nvml component: Add missing } * 166971ba src/components/nvml/linux-nvml.c: nvml component: modify api checks To check if nvmlDeviceGetEccMode and nvmlDeviceGetPowerUsage are supported, we just call the functions and see if nvml thinks its supported by the card. 2013-11-21 * 78192de9 delete_before_release.sh: Kill the .gitignore files in delete_before_release * 60fb1dd4 src/utils/command_line.c: command_line utility: Initialize a variable Initialize data_type to PAPI_DATATYPE_INT64 Addresses a coverity error Error: COMPILER_WARNING: [#def19] papi-5.2.0/src/utils/command_line.c:133:4: warning: 'data_type' may be used uninitialized in this function [-Wmaybe-uninitialized] switch (data_type) { ^ 2013-11-20 * da2925f6 src/ctests/data_range.c: Make data_range test use prginfo Coverity complained about prginfo being an unused variable for data_range.c. The code is modified to be stylistically like the code for hw_info in the preceding lines which also is not used elsewhere in the test. This is more to reduce the amount of output in the Coverity scan than to fix this minor issue. * 3386953d src/ctests/data_range.c: Check the return values of PAPI_start() and PAPI_stop() for the data_range test The ia64 data_range test did not check the return values of PAPI_start() or PAPI_stop(). There are propbably few people running this test on ia64 machine, but this is more to eliminate a couple errors noted by a Coverity scan and reduce the clutter in the Coverity scan. 2013-11-19 * e704e8f1 src/configure src/configure.in: configure: Build fpapi.h and co for mic When building for mic, set the cross_compiling var in configure to use a native c compiler to build genpapif. 2013-11-18 * d32b1dae man/man1/papi_avail.1 man/man1/papi_clockres.1 man/man1/papi_command_line.1...: Rebuild the man pages for a 5.3 release * 4e735d11 doc/Doxyfile-common papi.spec src/Makefile.in...: Bump version numbers for a pending 5.3 * efe026cd src/Makefile.inc: Makefile.inc: Pass LINKLIB, not SHLIB to the comp_tests * f0598acb src/ctests/Makefile.target.in: ctests/Makefile.target.in: Properly catch LINKLIB LINKLIB=$(SHLIB) or $(LIBRARY), so we have to have configure fill in those as well. * 1744c23e src/ctests/Makefile.target.in: ctests/Makefile.target.in: Respect static-tools the --with-static-tools configure flag sets STATIC, not LDFLAGS. This gets passed to the tests' make subprocesses via LDFLAGS="$(LDFLAGS) $(STATIC)" We mimic this in the installed Makefile. * e9347373 src/ctests/Makefile: ctests/Makefile: Don't clobber value of LIBRARY TOOD: write a better message * 237219d1 src/Makefile.inc: Makefile.inc: Add enviro vars to fulltest recipe The fulltest target didn't set LD_LIBRARY_PATH and as a result, several tests wouldn't find libpfm and fail to run. The fix is to call our SETPATH command first (as all of the other testing targets do) See ------------------------------------------------------------------ icc -diag-disable 188,869,271 -g -g -DSTATIC_PAPI_EVENTS_TABLE -DPEINCLUDE="libpfm4/include/perfmon/perf_event.h" -D_REENTRANT -D_GNU_SOURCE -DUSE_COMPILER_TLS -Ilibpfm4/include -I../../../testlib -I../../.. -I. -o perf_event_offcore_response perf_event_offcore_response.o event_name_lib.o ../../../testlib/libtestlib.a ../../../libpapi.so.5.2.0.0 ld: warning: libpfm.so.4, needed by ../../../libpapi.so.5.2.0.0, not found (try using -rpath or -rpath-link) ../../../libpapi.so.5.2.0.0: undefined reference to `pfm_get_event_attr_info' ../../../libpapi.so.5.2.0.0: undefined reference to `pfm_initialize' ../../../libpapi.so.5.2.0.0: undefined reference to `pfm_get_pmu_info' ../../../libpapi.so.5.2.0.0: undefined reference to `pfm_get_version' ../../../libpapi.so.5.2.0.0: undefined reference to `pfm_get_os_event_encoding' ../../../libpapi.so.5.2.0.0: undefined reference to `pfm_get_event_next' ../../../libpapi.so.5.2.0.0: undefined reference to `pfm_get_event_info' ../../../libpapi.so.5.2.0.0: undefined reference to `pfm_strerror' ../../../libpapi.so.5.2.0.0: undefined reference to `pfm_find_event' ../../../libpapi.so.5.2.0.0: undefined reference to `pfm_terminate' make[2]: *** [perf_event_offcore_response] Error 1 ------------------------------------------------------------------ 2013-11-17 * a7f642d2 src/Makefile.inc src/configure src/configure.in: Switch LINKLIB to not have relative pathing 2013-11-15 * 91a6fa54 src/components/lustre/tests/Makefile: Fix a typo in the lustre tests' Makefile 2013-11-13 * 9a5f9ad4 src/papi_preset.c: papi_preset.c: Fix _papi_load_preset_table func Patch by Gleb Smirnoff ---------------------- The _papi_load_preset_table() loses last entry from a static table. The code in get_event_line() returns value of a char next to the line we are returning. Obviously, for the last entry the char is '\0', so function returns false value and _papi_load_preset_table() ignores the last line. Patch attached. The most important part of my patch is only: - ret = **tmp_perfmon_events_table; + return i; This actually fixes the lost last line. However, I decided to make the entire get_event_line() more robust, protected from bad input, and easier to read. ---------------------- 2013-11-12 * 579139a6 src/utils/hybrid_native_avail.c: more doxygen xml tag cleanup * 952bb621 src/components/bgpm/CNKunit/linux-CNKunit.c src/components/bgpm/CNKunit/linux-CNKunit.h src/components/bgpm/IOunit/linux-IOunit.c...: Fix doxygen Unsupported xml/html tag warnings * 0c161015 src/components/micpower/linux-micpower.h: micpower: fix doxygen warning * b187f065 src/components/host_micpower/README: host_micpower: update docs 2013-11-11 * 4d379c6f src/ctests/p4_lst_ins.c: ctests/p4_lst_ins: Narrow scope of test This test attempted to ensure that it was running on a P4, the test missed for all non intel systems. 2013-11-10 * ee1c7967 .../host_micpower/utils/host_micpower_plot.c: Added energy consumption to host_micpower utility. 2013-11-08 * eee49912 src/ctests/shlib.c: shlib.c: Check for NULL Thanks to Will Cohen for reporting. Coverity picked up an instance of a value that could be NULL and strlen would barf on it. Error: FORWARD_NULL (CWE-476): papi-5.2.0/src/ctests/shlib.c:70: var_compare_op: Comparing "shinfo->map" to null implies that "shinfo->map" might be null. papi-5.2.0/src/ctests/shlib.c:74: var_deref_model: Passing "shinfo" to function "print_shlib_info_map(PAPI_shlib_info_t const *)", which dereferences null "shinfo->map". papi-5.2.0/src/ctests/shlib.c:13:26: var_assign_parm: Assigning: "map" = "shinfo->map". papi-5.2.0/src/ctests/shlib.c:24:3: deref_var_in_call: Function "strlen(char const *)" dereferences an offset off "map" (which is a copy of "shinfo->map"). * 83c31e25 src/components/perf_event/perf_event.c: perf_event.c: Check return value of ioctl Thanks to Will Cohen for reporting based upon output of coverity. * e5b33574 src/utils/multiplex_cost.c: multiplex_cost: check return value on PAPI_set_opt Thanks to Will Cohen for reporting based upon output of coverity. * 04f95b14 src/components/.gitignore: Ignore component target makefile * cbf7c1a8 src/components/rapl/linux-rapl.c src/components/rapl/tests/Makefile src/components/rapl/tests/rapl_basic.c: Modify linux-rapl to support one wrap-around of the 32-bit registers for reading energy. This insures availability of the full 32-bit dynamic range. However, it does not protect against two wrap-arounds. Care must be taken not to exceed the expected dynamic range, or to check reasonableness of results on completion. Modifications were also made to report rapl events as unscaled binary values in order to compute dynamic ranges. Modify rapl-basic to add a test (rapl_wraparound) to estimate maximum measurement time for a naive gemm. With a -w option, measurement for this amount of time will be performed. The gemm can be replaced with a user kernel for more accurate time estimates. Makefile was modified to support the new test case. 2013-11-07 * 7784de21 src/ctests/data_range.c src/ctests/zero_shmem.c: Modernize some ctests Add tests_quiet check to data_range and zero_shmem 2013-11-06 * 7c953490 src/configure src/configure.in: More MPICC checking Have configure check for mpcc on AIX, in addition to mpicc. * 5c8d2ce0 src/ctests/zero_shmem.c: zero_shmem.c: Fix compiler warning The worker threads in the test print an ID, the test was setup to call pthread_self(), this is problematic. Since each thread is started with a unique work load, use this to lable threads. * 993a6e96 src/ctests/Makefile.recipies src/ctests/Makefile.target.in: ctests/Makefile.recipies: conditionally build the MPI test * b29d5f56 src/Makefile.inc src/configure src/configure.in: Check for mpicc at configure time configure[.in]: look for mpicc Makefile.inc: Pass MPICC to ctests' make 2013-11-05 * b2d643df src/papi_events.csv: Add floating point events for IvyBridge Now that Intel has documented them and libpfm4 supports them, PAPI can use them. We just use the same events as on sandybridge. Tested on an ivybridge system. 2013-11-01 * c5be5e26 src/components/micpower/linux-micpower.c: micpower: check return of fopen before use Issue reported by Will Cohen from results of Coverity run. * 5c1405ab src/components/host_micpower/utils/Makefile src/components/host_micpower/utils/README .../host_micpower/utils/host_micpower_plot.c: Add host_micpower utility to gather power (and voltage) measurements on Intel Xeon Phi chips using MicAccessAPI. * 46b9bdf5 src/components/host_micpower/linux-host_micpower.c: Added more detailed event description and correct units to host mic power events. * b97c0126 src/components/host_micpower/linux-host_micpower.c: host_micpower: Better error reporting grab output of dlerror on library load failure 2013-10-31 * 84da7fd3 src/components/host_micpower/Rules.host_micpower src/components/host_micpower/tests/Makefile: host_micpower: Fix some makefile bits tests/Makefile needed to define a target to work with the Make_comp_tests install machinery. Rules.host_micpower had a typo 2013-10-30 * 14f3e4c4 src/components/host_micpower/linux-host_micpower.c: host_micpower: fix function signature shutdown_thread took wrong arguments. 2013-10-28 * a4cc1113 release_procedure.txt: Update release_procedure.txt Bug in the version of doxygen we were using to produce the documentation led to some of the Fortran functions being left out in the cold. We now proscribe 1.8.5 * a1d6ae34 src/components/host_micpower/README: host_micpower: Add a README file. 2013-10-25 * 859dbc2c src/Makefile.inc src/components/Makefile_comp_tests src/components/Makefile_comp_tests.target.in...: Make the testsuite as a stand-alone copy-able directory of code These changes to the Makefiles allows the testsuite to be compiled separately from the papi sources. This is useful for people wanting to experiment with the tests and verify that the existing installation of papi works. We put absolute paths to the installed library and include files into the installed makefile for the tests. * c307ad18 src/ctests/Makefile src/ctests/attach_target.c src/testlib/do_loops.c: Refactor the driver in do_loops.c into its own file. (ctests/Makefile, ctests/attach_target.c testlib/do_loops.c) 2013-10-23 * ace71699 src/components/bgpm/CNKunit/linux-CNKunit.c src/components/bgpm/IOunit/linux-IOunit.c src/components/bgpm/L2unit/linux-L2unit.c...: Passing BGPM errors up to PAPI. 2013-10-22 * 2ee090ec src/components/bgpm/NWunit/linux-NWunit.c src/components/bgpm/NWunit/linux-NWunit.h: Fixed the behavior in BGQ's NWunit component after attaching an event set to a specific thread that owns the target recourse counting * 8ab071ee src/components/cuda/linux-cuda.c: CUDA component: Set the number of native events Patch by Steve Kaufmann When running papi_component_avail I notice that the number of CUDA events was always zero when the component was available. The following change correctly sets the number of native events for the component: 2013-10-11 * 071943b6 src/configure src/configure.in src/linux-context.h...: add preliminary aarch64 (arm64) support There has been some work to build fedora 19 on 64-bit arm armv8 machines (aarch64). I took a look that the why the papi build was failing. The attached is a set of minimal patches to get papi to build. The patch is just a step toward getting aarch64 support for papi. Things are not all there for papi to work in that environment. Still need libpfm to support aarch64 and papi_events.csv describing mappings to machine specific events. 2013-10-01 * 096eb7fc src/ctests/zero_shmem.c: zero_shmem: cleanup compiler warnings Remove unused variables. * d9669053 src/ctests/earprofile.c: ctests/earprofile.c: Fix compiler warning Both PAPI_get_hardware_info and PAPI_get_executable_info expect const pointers, (get_executable_info is called by prof_init in profile_utils). 2013-09-30 * 87e7e387 src/ctests/p4_lst_ins.c: ctests/p4_lst_ins.c: Fix the P4 load test. This test relied upon a removed symbol to decide if it should run. The symbol unsigned char PENTIUM4 was removed in 2011, update the logic. * 737d91ff src/ctests/zero_shmem.c: ctests/zero_shmem: Update the test * add_test_events expects another argument, update the zero_shmem test's invocation * Protect[Hide] OpenSHMEM calls with ifdefs 2013-09-27 * 86c11829 src/ctests/zero_shmem.c: zero_shmem: Include pthread.h * 2d0e666c src/ctests/zero_smp.c: zero_smp: Change a compile time error to a test_skip In 8d1f2c1, we changed the default assumption to be that all ctests are build. This change allows the test to gracefully skip if it does not have 'native SMP' threads. 2013-09-26 * 8d1f2c16 src/ctests/Makefile: ctests/Makefile: Default to building everything Set target all to depend upon ALL * ffd051cf src/ftests/Makefile src/testlib/Makefile: testlib, ftests Makefiles: cleanup ifort generated files ifort produces mod and f90 intermediate files which clean does not cleanup * c720bb59 src/components/coretemp/tests/coretemp_basic.c src/components/coretemp/tests/coretemp_pretty.c: Coretemp tests: Fix skipping logic The coretemp_basic test was failing if coretemp was disabled, skip seems more appropriate. Add this logic to the coretemp_pretty test. * af7f7508 src/configure src/configure.in: configure: refactor CTEST_TARGETS Problem: The set of ctests to build is determined at configure time, in CTEST_TARGETS. This is set in each OS detection section and suffers from neglect. Solution: Try to push the decisions about which tests to build out of configure, ask for them all. Idealy the tests will be written in such a way as to fail/skip gracefully if they lack functionallity, teething problems are expected initially. * 14421695 src/testlib/Makefile: testlib: Fix the Makefile variable assignment Consider: src=a.c b.c c.F obj=$(src:.c=.o) c.o After this substution, obj is {a.o b.o c.F c.o}, not quite the nut. Change the logic to correct that. 2013-09-17 * 05a4e17b .../perf_event_uncore/perf_event_uncore.c: perf_event_uncore: cleanup a compiler warning _peu_read does not use the hwd_context argument. * f2056857 src/papi_events.csv: papi_events.csv: Add PAPI_L1_ICM for Haswell Thanks to Maurice Marks of Unisys for the contribution ------------- I've continued testing on Haswell. By comparison with Vtune and Emon on Haswell I found that we can use the counter L2_RQSTS:ALL_CODE_RD for PAPI_L1_ICM, which is a very useful measure. Attached is my current version of papi_events.csv with Haswell fixes. ------------- 2013-08-28 * efe3533d src/Makefile.inc src/components/Makefile_comp_tests src/ctests/Makefile...: testlib: library-ify testlib * Move ftests_util to testlib * Naively create libtestlib.a * utils link to the testlib library * [c|f]tests Switch the tests over to linking libtestlib.a * Component tests link libtestlib.a 2013-08-26 * d2a76dde src/configure src/configure.in src/utils/hybrid_native_avail.c: Gabrial's mic with icc changes to configure. Specify --with-mic at configure time and upon finding icc as the C compiler, it adds --mmic * 4c0349c0 src/papi_events.csv: papi_events.csv: First draft preset events on HSW Contributed by Nils Smeds ------------------------- Here is a suggestion for addition to Hsw counters. These are not rigorously tested. It compiles and loads. I'm rather uncertain on many of the events so I am hoping that adding events like this will get some useful feedback from the community so that we can improve. ------------------------- 2013-08-20 * 1b8ff589 src/utils/command_line.c: command_line util: Fix skipping event bug. The command line utility had an extranious index increment which resulted in skipping the reporting of event counts. Remove the increment. Reported by Steve Kaufmann -------------------------- I am getting some funny results when I use papi_command_line with the RAPL events. If I request them all: $ papi_command_line THERMAL_SPEC:PACKAGE0 MINIMUM_POWER:PACKAGE0 MAXIMUM_POWER:PACKAGE0 MAXIMUM_TIME_WINDOW:PACKAGE0 PACKAGE_ENERGY:PACKAGE0 DRAM_ENERGY:PACKAGE0 PP0_ENERGY:PACKAGE0 Successfully added: THERMAL_SPEC:PACKAGE0 Successfully added: MINIMUM_POWER:PACKAGE0 Successfully added: MAXIMUM_POWER:PACKAGE0 Successfully added: MAXIMUM_TIME_WINDOW:PACKAGE0 Successfully added: PACKAGE_ENERGY:PACKAGE0 Successfully added: DRAM_ENERGY:PACKAGE0 Successfully added: PP0_ENERGY:PACKAGE0 THERMAL_SPEC:PACKAGE0 : 115.000 W <<<<< MINIMUM_POWER:PACKAGE0 ?? MAXIMUM_POWER:PACKAGE0 : 180.000 W PACKAGE_ENERGY:PACKAGE0 : 2003784180(u) nJ DRAM_ENERGY:PACKAGE0 : 438751220(u) nJ PP0_ENERGY:PACKAGE0 : 1248748779(u) nJ ---------------------------------- Verification: Checks for valid event name. This utility lets you add events from the command line interface to see if they work. command_line.c PASSED Note that a value for MINIMUM_POWER:PACKAGE0 is not displayed even though it was successfully added to the event set. In fact, if combined with other events, the value for this event is never displayed. If you specifiy it on its own it is displayed: ------------------------------------ 2013-08-16 * 0cb63d6e src/components/lustre/linux-lustre.c: lustre component: fix memory leak 2013-08-13 * c810cd0d src/components/micpower/linux-micpower.c src/linux-memory.c src/papi_preset.c: Close resource leaks User dcb reported several resource leaks in trac bug #184. -------------------- I just ran the static analysis checker "cppcheck" over the source code of papi-5.2.0 It said 1. [linux-memory.c:711]: (error) Resource leak: sys_cpu 2. [papi_preset.c:735]: (error) Resource leak: fp 3. [components/micpower/linux-micpower.c:166]: (error) Resource leak: fp I've checked them all and they all look like resource leaks to me. Suggest code rework. ---------------------------------- 2013-08-07 * 8d479895 doc/Makefile: Doxygen makefile: update dependencies The manpages are generated from comments in papi.h, papi.c, papi_hl.c and papi_fwrappers.c; update the make dependencies to reflect this.