* 602d8dbc man/man1/papi_avail.1 man/man1/papi_clockres.1
man/man1/papi_command_line.1...: Rebuild man pages for a 5.1.1 release.
* 93d9be34 doc/Doxyfile-common papi.spec src/Makefile.in...: Bump version
number for a 5.1.1 release.
* 8e47838d src/components/cuda/linux-cuda.c: When creating two event sets -
one for the CUDA and one for the CPU component - the order of event set
creation appears crucial. When the CPU event set has been created before the
CUDA event set then PAPI_start() for the CUDA event set works fine. However,
if the CUDA event set has been created before the CPU event set, then
PAPI_start(CUDA_event_set) forces the CUDA control state to be updated one
more time, even if the CUDA event set has not been modified. The CUDA control
state function did not properly handle this case and hence cause PAPI_start()
to fail. This has been fixed.
* c93dfa68 src/perf_events.c: perf_event component: update error returns
This passes more error return values back to PAPI. Before this change a lot
of places were hardcoded to PAPI_EPERM even if sys_perf_event_open() was
reporting a different error.
* d1db58e8 src/configure src/configure.in: Force the use of pthread_mutexes
on ARM This lets the system libraries worry about the best way to define
mutexes, rather than trying to hand-code in assembly around all of the
various issues there are with atomic instructions in the ARM architecture.
It might make sense to enable this for *all* Linux architectures, but for now
just do it for ARM.
* 29662e3e src/linux-lock.h: Commit 59d3d7584b2925bd05b4b5d0f4fe89666eb8494a
removed the definition of mb(). mb() was defined as rmb(). This just
corrects it back. (Note from VMW -- this fixes some things, but ARM still
won't build on a Cortex A9 pandaboard due to the use of the "swp"
instruction. Proper fix is probably to enforce posix-mutexes on ARM)
* ff29fd12 src/run_tests.sh: The test for determining whether to run valgrind
was backwards. Correcting that allow the run_test.sh script to stay the same
and one just needs to define "VALGRIND=yes" (or any non-null string) to make
run_test.sh use valgrind. --- src/run_tests.sh | 6 ++---- 1 file changed, 2
insertions(+), 4 deletions(-) diff --git a/src/run_tests.sh
b/src/run_tests.sh index d1ce205..9337ff2 100755 --- a/src/run_tests.sh +++
b/src/run_tests.sh @@ -19,10 +19,8 @@ else export TESTS_QUIET fi -if [
"x$VALGRIND" = "x" ]; then -# Uncomment the following line to run tests using
Valgrind -# VALGRIND="valgrind --leak-check=full"; - VALGRIND=""; +if [
"x$VALGRIND" != "x" ]; then + VALGRIND="valgrind --leak-check=full"; fi
#CTESTS=`find ctests -maxdepth 1 -perm -u+x -type f`; --
* 1e8101f6 src/run_tests.sh: run_tests.sh: further refine component test find
Exclude *.cu when looking for component tests.
* 0b600bc5 src/run_tests.sh: run_tests.sh: File mode changes. run_tests.sh
is now expected to run from the install location in addition to src. The
script tried to remove execute from *.[c|h], now it just excludes *.[c|h]
from the find commands.
* 06f9c43b src/perfctr-x86.c: perfctr: don't read in event table multiple
times papi_libpfm3_events.c now reads in the predefined events, we don't
also need to do this in perfctr setup_x86_presets()
* 48d7330c src/perfctr.c: Fix segfault in perfctr.c The preset lookup uses
the cidx index, but in perfctr.c we weren't passing a cidx value (it was
being left off). The old perfctr code plays games with defining extern
functions so the compiler wasn't giving us a warning.
* eda94e50 src/components/bgpm/L2unit/linux-L2unit.c src/linux-bgq.c: If a
counter is not set to overflow (threshold==0; happens when PAPI_shutdown is
called) then we do not want to rebuild the BGPM event set, even if the event
set has been used previously and hence "applied or attached". Usually if an
event set has been applied or attached prior to setting overflow, the BGPM
event set needs to be deleted and recreated (which implies malloc() from
within BGPM). Not so, though, if threshold is 0 which is the case when
PAPI_shutdown is called. Note, this only applies to Punit and L2unit, not
IOunit since an IOunit event set in not applied or attached.
* 46f6123a src/components/bgpm/IOunit/linux-IOunit.c
src/components/bgpm/L2unit/linux-L2unit.c...: Overflow issue on BG/Q
resolved. Overflow with multiple components worked; overflow with multiple
components and multiple events did not work as supposed to.
* 6a0813f8 src/linux-common.c src/linux-memory.c: Fix the build on
Linux-SPARC I dug out an old SPARC machine and fixed the PAPI build on it.
* 51fe7e53 src/perf_events.c: More comprehensive sys_perf_open to PAPI error
mappings This tries to cover more of the errors returned by sys_perf_open
and map them to better results. EINVAL is a problem because it can mean
Conflict as well as Event not found and many other things, so it's unclear
what to do with it.
* 1479a67f src/perf_events.c src/sys_perf_event_open.c: Return proper error
codes for sys_perf_event_open For some reason on x86 and x86_64 we were
trying to set errno manually and thus over-writing the proper errno value,
causing all errors to look like PAPI_EPERM This removes that code, as well
as adds code to report ENOENT as PAPI_ENOEVENT. With this change, on IVY
this happens which looks more correct. ./utils/papi_command_line
perf::L1-ICACHE-PREFETCHES Failed adding: perf::L1-ICACHE-PREFETCHES because:
Event does not exist command_line.c PASSED
* 7a3e75e8 src/papi_libpfm4_events.c src/papi_user_events.c: Coverity fixes:
Coverity pointed out that there was a case where load_user_eent_table() could
leak memory. The change in the location of the papi_free(foo) ensures that
the allocated memory is freed. Coverity pointed out one path through the
code in _papi_libpfm4_ntv_code_to_descr() that did not free up memory
allocated in the function. Added a free on the path in free up that memory.
Thanks Will Cohen.
* b19bd1a2 src/components/rapl/linux-rapl.c: Remove a stray debug statement.
Thanks to Harald Servat for catching this.
* 6e5be510 src/utils/command_line.c: Wrestled some horribly convoluted
indexing into shape. The -u and -x options now print as expected (I think).
* 02bd70ad src/components/nvml/linux-nvml.c: linux-nvml.c: Fix type warning.
CUDA and NVML have an signed vs unsigned thing going on in their returned
device counts, cast away the warning.
* a5bed384 src/linux-memory.c src/linux-timer.c: ia64 fixes. Thanks to Tony
Jones <email@example.com> for patches.
* 021db23a src/components/nvml/linux-nvml.c: nvml component: cleanup a memory
leak We did not free a buffer at shutdown time.
* b25fc417 src/perf_events.c: perf_event: allow running with
perf_event_paranoid is 2 perf_event_paranoid set to 2 means allow user
monitoring only (no kernel domain). The code before this mistakenly disabled
all events in this case. Also set the allowed domains to exclude
* 12768bec src/papi_events.csv: papi_events.csv Revert a little mishap in
adding ivbep support Somehow the contents of papi_hl.c ended up in the
* 5e97ad7f src/papi_events.csv: Add identifier for ivb_ep
* e201b8eb src/papi.c: General doxygen cleanup: remove all "No known bugs"
messages; correct and cleanup examples for PAPI_code_to_name and