2011-08-29
* src/configure: Rebuild from configure.in with version number bump
to 4.1.4 in advance of pending internal vendor release for Cray.
2011-08-26
* release_procedure.txt: Update rel procedure to mention building
the man pages before a release.
* man/: man1/avail.c.1, man1/clockres.c.1, man1/command_flags_t.1,
man1/command_line.c.1, man1/component.c.1, man1/cost.c.1,
man1/decode.c.1, man1/error_codes.c.1, man1/event_chooser.c.1,
man1/mem_info.c.1, man1/native_avail.c.1, man1/options_t.1,
man1/papi_avail.1, man1/papi_clockres.1,
man1/papi_command_line.1, man1/papi_component_avail.1,
man1/papi_cost.1, man1/papi_decode.1, man1/papi_error_codes.1,
man1/papi_event_chooser.1, man1/papi_mem_info.1,
man1/papi_multiplex_cost.1, man1/papi_native_avail.1, man3/CDI.3,
man3/HighLevelInfo.3, man3/PAPIF.3, man3/PAPIF_accum.3,
man3/PAPIF_add_event.3, man3/PAPIF_add_events.3,
man3/PAPIF_assign_eventset_component.3,
man3/PAPIF_cleanup_eventset.3, man3/PAPIF_create_eventset.3,
man3/PAPIF_destroy_eventset.3, man3/PAPIF_get_dmem_info.3,
man3/PAPIF_get_exe_info.3, man3/PAPIF_get_hardware_info.3,
man3/PAPIF_num_hwctrs.3, man3/PAPI_accum.3,
man3/PAPI_accum_counters.3, man3/PAPI_add_event.3,
man3/PAPI_add_events.3, man3/PAPI_addr_range_option_t.3,
man3/PAPI_address_map_t.3, man3/PAPI_all_thr_spec_t.3,
man3/PAPI_assign_eventset_component.3, man3/PAPI_attach.3,
man3/PAPI_attach_option_t.3, man3/PAPI_cleanup_eventset.3,
man3/PAPI_component_info_t.3, man3/PAPI_cpu_option_t.3,
man3/PAPI_create_eventset.3, man3/PAPI_debug_option_t.3,
man3/PAPI_descr_error.3, man3/PAPI_destroy_eventset.3,
man3/PAPI_detach.3, man3/PAPI_dmem_info_t.3,
man3/PAPI_domain_option_t.3, man3/PAPI_enum_event.3,
man3/PAPI_event_code_to_name.3, man3/PAPI_event_info_t.3,
man3/PAPI_event_name_to_code.3, man3/PAPI_exe_info_t.3,
man3/PAPI_flips.3, man3/PAPI_flops.3, man3/PAPI_get_cmp_opt.3,
man3/PAPI_get_component_info.3, man3/PAPI_get_dmem_info.3,
man3/PAPI_get_event_info.3, man3/PAPI_get_executable_info.3,
man3/PAPI_get_hardware_info.3, man3/PAPI_get_multiplex.3,
man3/PAPI_get_opt.3, man3/PAPI_get_overflow_event_index.3,
man3/PAPI_get_real_cyc.3, man3/PAPI_get_real_nsec.3,
man3/PAPI_get_real_usec.3, man3/PAPI_get_shared_lib_info.3,
man3/PAPI_get_thr_specific.3, man3/PAPI_get_virt_cyc.3,
man3/PAPI_get_virt_nsec.3, man3/PAPI_get_virt_usec.3,
man3/PAPI_granularity_option_t.3, man3/PAPI_hw_info_t.3,
man3/PAPI_inherit_option_t.3, man3/PAPI_ipc.3,
man3/PAPI_is_initialized.3, man3/PAPI_itimer_option_t.3,
man3/PAPI_library_init.3, man3/PAPI_list_events.3,
man3/PAPI_list_threads.3, man3/PAPI_lock.3,
man3/PAPI_mh_cache_info_t.3, man3/PAPI_mh_info_t.3,
man3/PAPI_mh_level_t.3, man3/PAPI_mh_tlb_info_t.3,
man3/PAPI_mpx_info_t.3, man3/PAPI_multiplex_init.3,
man3/PAPI_multiplex_option_t.3, man3/PAPI_num_cmp_hwctrs.3,
man3/PAPI_num_components.3, man3/PAPI_num_counters.3,
man3/PAPI_num_events.3, man3/PAPI_num_hwctrs.3,
man3/PAPI_option_t.3, man3/PAPI_overflow.3, man3/PAPI_perror.3,
man3/PAPI_preload_info_t.3, man3/PAPI_profil.3,
man3/PAPI_query_event.3, man3/PAPI_read.3,
man3/PAPI_read_counters.3, man3/PAPI_read_ts.3,
man3/PAPI_register_thread.3, man3/PAPI_remove_event.3,
man3/PAPI_remove_events.3, man3/PAPI_reset.3,
man3/PAPI_set_cmp_domain.3, man3/PAPI_set_cmp_granularity.3,
man3/PAPI_set_debug.3, man3/PAPI_set_domain.3,
man3/PAPI_set_granularity.3, man3/PAPI_set_multiplex.3,
man3/PAPI_set_opt.3, man3/PAPI_set_thr_specific.3,
man3/PAPI_shlib_info_t.3, man3/PAPI_shutdown.3,
man3/PAPI_sprofil.3, man3/PAPI_sprofil_t.3, man3/PAPI_start.3,
man3/PAPI_start_counters.3, man3/PAPI_state.3, man3/PAPI_stop.3,
man3/PAPI_stop_counters.3, man3/PAPI_strerror.3,
man3/PAPI_thread_id.3, man3/PAPI_thread_init.3,
man3/PAPI_unlock.3, man3/PAPI_unregister_thread.3,
man3/PAPI_write.3, man3/high_api.3, man3/low_api.3,
man3/papi_data_structures.3, man3/papi_vector_t.3,
man3/ret_codes.3: Switch over to doxygen generated man pages.
* man/: man1/papi_avail.1, man1/papi_clockres.1,
man1/papi_command_line.1, man1/papi_cost.1, man1/papi_decode.1,
man1/papi_event_chooser.1, man1/papi_mem_info.1,
man1/papi_native_avail.1, man3/PAPI.3, man3/PAPIF.3,
man3/PAPIF_get_clockrate.3, man3/PAPIF_get_domain.3,
man3/PAPIF_get_exe_info.3, man3/PAPIF_get_granularity.3,
man3/PAPIF_get_preload.3, man3/PAPIF_set_event_domain.3,
man3/PAPI_accum.3, man3/PAPI_accum_counters.3,
man3/PAPI_add_event.3, man3/PAPI_add_events.3,
man3/PAPI_assign_eventset_component.3, man3/PAPI_attach.3,
man3/PAPI_cleanup_eventset.3, man3/PAPI_create_eventset.3,
man3/PAPI_destroy_eventset.3, man3/PAPI_detach.3,
man3/PAPI_encode_events.3, man3/PAPI_enum_event.3,
man3/PAPI_event_code_to_name.3, man3/PAPI_event_name_to_code.3,
man3/PAPI_flips.3, man3/PAPI_flops.3, man3/PAPI_get_cmp_opt.3,
man3/PAPI_get_component_info.3, man3/PAPI_get_dmem_info.3,
man3/PAPI_get_event_info.3, man3/PAPI_get_executable_info.3,
man3/PAPI_get_hardware_info.3, man3/PAPI_get_multiplex.3,
man3/PAPI_get_opt.3, man3/PAPI_get_overflow_event_index.3,
man3/PAPI_get_real_cyc.3, man3/PAPI_get_real_usec.3,
man3/PAPI_get_shared_lib_info.3, man3/PAPI_get_substrate_info.3,
man3/PAPI_get_thr_specific.3, man3/PAPI_get_virt_cyc.3,
man3/PAPI_get_virt_usec.3, man3/PAPI_help.3, man3/PAPI_ipc.3,
man3/PAPI_is_initialized.3, man3/PAPI_library_init.3,
man3/PAPI_list_events.3, man3/PAPI_list_threads.3,
man3/PAPI_lock.3, man3/PAPI_multiplex_init.3, man3/PAPI_native.3,
man3/PAPI_num_cmp_hwctrs.3, man3/PAPI_num_components.3,
man3/PAPI_num_counters.3, man3/PAPI_num_events.3,
man3/PAPI_num_hwctrs.3, man3/PAPI_overflow.3, man3/PAPI_perror.3,
man3/PAPI_presets.3, man3/PAPI_profil.3, man3/PAPI_query_event.3,
man3/PAPI_read.3, man3/PAPI_read_counters.3,
man3/PAPI_register_thread.3, man3/PAPI_remove_event.3,
man3/PAPI_remove_events.3, man3/PAPI_reset.3,
man3/PAPI_set_cmp_domain.3, man3/PAPI_set_cmp_granularity.3,
man3/PAPI_set_debug.3, man3/PAPI_set_domain.3,
man3/PAPI_set_event_info.3, man3/PAPI_set_granularity.3,
man3/PAPI_set_multiplex.3, man3/PAPI_set_opt.3,
man3/PAPI_set_thr_specific.3, man3/PAPI_shutdown.3,
man3/PAPI_sprofil.3, man3/PAPI_start.3,
man3/PAPI_start_counters.3, man3/PAPI_state.3, man3/PAPI_stop.3,
man3/PAPI_stop_counters.3, man3/PAPI_strerror.3,
man3/PAPI_thread_id.3, man3/PAPI_thread_init.3,
man3/PAPI_unlock.3, man3/PAPI_unregister_thread.3,
man3/PAPI_write.3: Remove the old manpages in preperation for
defaulting to doxygen generated ones.
2011-08-25
* src/: perf_events.c, ctests/overflow_allcounters.c,
ctests/papi_test.h, ctests/test_utils.c: Block all PERF_COUNT_SW
events from overflow_allcounters test, as overflow on software
counter can crash perf_event kernels pre 3.1
* src/libpfm4/: Makefile, config.mk, lib/Makefile,
lib/pfmlib_common.c, lib/pfmlib_perf_event.c, lib/pfmlib_priv.h,
perf_examples/perf_util.c, perf_examples/task_smpl.c: Fix the
"conflicts" from the import
* papi.spec, doc/Doxyfile, doc/Doxyfile-everything,
src/Makefile.in, src/configure.in, src/papi.h: Bump version
number to 4.1.4 in advance of pending internal vendor release for
Cray.
2011-08-23
* src/: papi.c, papi_hl.c: Removed all references to Fortran APIs.
These are now all in papi_fwrappers.c Also normalized syntax for
many doxygen headers.
* src/papi_fwrappers.c: Added doxygen skeleton for all remaining
Fortran functions in this file. Also added wrappers for four
additional APIs: PAPI_get_real_nsec PAPI_read_ts PAPI_lock
PAPI_unlock
2011-08-19
* src/: papi.c, papi_fwrappers.c: Stubbed out doxygen pages for
Fortran functions. About half way done!
* src/papi_libpfm4_events.c: Finish up the documentation/cleanup
pass through the libpfm4 code.
2011-08-18
* src/papi_libpfm3_events.c: Fix code so we no longer get warnings
that 'setup_preset_term' and '_pfm_get_counter_info' are defined
but not used
* src/: papi_libpfm3_events.c, papi_libpfm4_events.c,
papi_libpfm_events.h, perf_events.c, perfctr-x86.c: Consolidate
use of _papi_libpfm_init() and pass in MY_VECTOR when necessary.
* src/papi_libpfm4_events.c: Dynamically allocate the libpfm4
native events, rather than having a fixed array allocated at init
time.
* src/papi_libpfm4_events.c: Some more minor cleanups and
documentation in the libpfm4 code.
* src/components/coretemp/linux-coretemp.c: Fixup for linux
coretemp component, it pays to check cvs status once in a
while...
2011-08-16
* src/papi.c: Update the PAPI_enum_event() Doxygen comments to
reflect modern values for the "modifier" parameter.
* src/papi_libpfm4_events.c: Clean up code and add documentation
for all the functions involved in libpfm4's
_papi_libpfm_ntv_enum_events() function.
2011-08-15
* src/mb.h: Updat the rmb() barrier for ARM.
* src/papi_events.csv: Update SandyBridge EP support to match that
of mainline libpfm4
* src/papi_libpfm4_events.c: Cleanup libpfm4 code, and add more
comments to code.
* src/perf_events.c: Fix bug where umask support was disabled.
* src/Rules.perfctr-pfm: Make the perfctr code use the merged
preset event code.
* src/: Rules.pfm_pe, papi_libpfm3_events.c, papi_libpfm_presets.c:
Have libpfm3 use the merged preset code.
* src/: Rules.pfm4_pe, papi_libpfm4_events.c,
papi_libpfm_presets.c: Move the libpfm presets code to its own
file, and modify the libpfm4 code to use it.
* src/papi_libpfm3_events.c: Make the libpfm3 predefined events
parser identical to the libpfm4 one, in preparation for a merge.
* src/: papi_libpfm3_events.c, papi_libpfm4_events.c,
papi_libpfm_events.h, perf_events.c: Move vendor fixups into the
substrate and out of the naming library code.
* src/: Rules.perfctr-pfm, Rules.pfm4_pe, Rules.pfm_pe,
papi_libpfm3_events.c, papi_libpfm4_events.c,
papi_libpfm_events.h, papi_pfm4_events.c, papi_pfm_events.c,
papi_pfm_events.h, perf_events.c, perfctr-x86.c, perfmon.c:
Rename papi_pfm_events.c to papi_libpfm3_events.c to make it more
clear what is in the file.
Also rename papi_pfm4_events.c to papi_libpfm4_events.c and
papi_pfm_events.h to papi_libpfm_events.h
* src/perfmon.c: Fixup perfmon2 case for the libpfm renaming
* src/perfctr-x86.c: Fix perfctr breakage from the libpfm rename.
* src/: papi_pfm4_events.c, papi_pfm_events.c, papi_pfm_events.h,
perf_events.c, perfctr-x86.c, perfmon-ia64.c, perfmon.c: The PAPI
code uses _pfm_ in function names to mean *both* perfmon2 code
and libpfm3/4 code. This can cause a lot of confusion.
Rename libpfm specific function names to use _libpfm_ instead.
* src/: papi_pfm_events.c, papi_pfm_events.h, perf_events.c: Fix
build error on perfmon2 due to movement of the
_papi_pfm_shutdown()
2011-08-05
* src/: Makefile.in, Makefile.inc, configure, configure.in,
components/Makefile_comp_tests,
components/cuda/tests/HelloWorld.cu,
components/cuda/tests/Makefile,
components/example/tests/HelloWorld.c,
components/example/tests/Makefile, components/README: Added
generic implementation that makes it possible to add tests to
components without modifying any PAPI-specific code (other than
adding the tests and a makefile to the component directory). All
component tests will be compiled together with PAPI when typing
'make' (as well as cleaned up when 'make clean' or 'make clobber'
is typed). +++ Also added tests to 2 components, the example and
cuda component.
* src/: papi_defines.h, papi_internal.h, papi_pfm4_events.c,
perf_events.c: Add locking to papi_pfm4_events so that
adding/looking up event names doesn't have a race condition when
multiple threads are doing it at once.
Also fix the recently-added pfm_shutdown() to be called at
substrate_shutdown() rather than plain shutdown() as the latter
is called at thread_shutdown() time too.
* src/: papi_pfm4_events.c, papi_pfm_events.c, papi_pfm_events.h,
perf_events.c: Add a _papi_pfm_shutdown() function and have it
clear out the native events array at PAPI_shutdown().
This makes sample code that exhibits the libpfm4 event race much
easier to write.
* src/ctests/multiplex2.c: Added some PAPI_set_domain's inside of
#if 0's for testing.
2011-08-03
* src/papi_pfm4_events.c: Use the new ARM vendor code to force the
proper default domain on ARM cpus.
* src/: linux-common.c, papi.h: Add an ARM vendor string and have
it properly set.
The hardware detection logic is a horrible mess of parsing
/proc/cpuinfo I took the easy way out and just tacked the ARM
logic on the end rather than trying to clean it up at all.
* src/perf_events.c: Clean up some comments, add a few debug
messages.
2011-08-02
* src/linux-memory.c: The ARM warning for memory hierarchy not
being implemented was in the wrong place.
* src/: papi_pfm4_events.c, sys_perf_event_open.c: Fix some
misleading debug messages.
* src/papi_events.csv: Update ARM Cortex A9 preset events, and add
ARM Cortex A8 events
2011-07-28
* src/: cycle.h, linux-context.h, linux-lock.h, linux-memory.c,
linux-timer.c, mb.h: Add remaining changes needed for ARM
compilation. This is enough for "papi_avail" and
"papi_native_avail" to work.
Lots of #warning statements scattered around. ARM is a
complicated architecture and things like memory barriers and
mutexes are very dependent on what version of the architecture
they are running on. It will take a while to figure out the
proper way to handle this in PAPI.
Also, on Cortex-A8 and Cortex-A9 there is no way to separate
kernel events from the user ones. So all measurements contain
both. This will probably confuse our ctests.
* src/papi_events.csv: Add ARM Cortex A9 preset events to the CSV
file.
* src/sys_perf_event_open.c: Add the perf_event syscall number for
ARM
* src/papi_fwrappers.c: Create PAPIF group in doxygen, for the papi
fortran interface.
2011-07-27
* src/x86_cache_info.c: My changes yesterday broke on the
--with-debug case, as noticed by buildbot.
2011-07-26
* src/: papi.c, papi_fwrappers.c: Implement doxygen comments for
PAPI_get_opt; Implement doxygen comments for PAPIF_accum in
papi_fwrappers.c. This is a first step in providing separate
independent Fortran documentation.
* doc/Doxyfile: Have doxygen parse papi_fwrappers.c for comments.
* src/papi_pfm4_events.c: The last checkin broke papi_native_avail
on libpfm4. Fix it.
* src/papi_pfm4_events.c: Cleanup some code in papi_pfm4_events.c
to avoid gcc-4.6 warnings
* src/x86_cache_info.c: Fix some warnings in src/x86_cache_info.c
reported by gcc-4.6
2011-07-21
* src/ctests/all_native_events.c: Change all_native_events test to
create an eventset for each native event it finds. Also becomes
a good test of the number of outstanding eventsets allowed.
2011-07-19
* src/papi.c: Doxygen rewrite for PAPI_set_opt.
2011-07-13
* src/: papi_events.csv, libpfm4/lib/events/intel_snb_events.h: A
few more commits that get SandyBridge mostly working.
* src/papi.h: Include a comment to the prototype for PAPI_read_ts.
This is apparently a requirement to get doxygen to link from the
prototype to the doc block for the function (a link shows up in
the low_api group now).
2011-07-12
* src/libpfm4/lib/events/intel_snb_events.h: Temporarily add
missing SandyBridge FP events until support gets merged upstream.
* src/papi.c: Some minor Doxygen fixes. This was my run through
the HTML output produced by my assigned functions.
2011-07-11
* src/libpfm4/lib/pfmlib_intel_snb.c: Temporarily add model 45
Sandy Bridge to our copy of libpfm4 until we can get this merged
upstream.
* src/ctests/: multiattach.c, multiattach2.c, reset.c, val_omp.c,
zero_attach.c, zero_fork.c, zero_omp.c, zero_pthreads.c,
zero_smp.c: Fix all the remaining users of the ctests
add_two_events() helper
* src/ctests/first.c: Fix first test bug due to add_two_events()
change. Clean up validation of results.
* src/ctests/zero.c: Some cleanups I made to the testing routine
add_two_events() a while ago broke the zero test. (the cycles
result was swapped with the other counter result).
This fixes this, plus adds a validation check to try to avoid
this happening in the future.
* src/: configure, configure.in: Patch from William Cohen that sets
LD_LIBRARY_PATH and LIBPATH to include libpfm4/lib.
A better fix would probably be to include only the libpfm library
we are currently configured for. I need to do more testing of
the --with-static-lib=no --with-shared-lib=yes --with-shlib
options
* src/papi_hl.c: High level interface Doxygen comments updated to
include interface overview
2011-07-08
* doc/Doxyfile, src/papi.h, src/papi_hl.c, src/papi_vector.h: Add
in the PAPI component development page. Currently not linked to
by anything yet, but can be found at file://$(html_dir)/CDI or
http://web.eecs.utk.edu/~ralph/html/CDI for an already built
page.
2011-07-07
* src/: papi.c, papi.h: Add doxygen comments for
PAPI_get_executable_info(), PAPI_exe_info_t and
PAPI_address_map_t
* src/papi.c: Add doxygen comments for PAPI_event_code_to_name()
and PAPI_event_name_to_code()
* src/papi.c: Add doxygen comments for PAPI_enum_event()
* src/papi.c: Add doxygen comments for PAPI_create_eventset()
* src/papi.c: Add doxygen comments for PAPI_cleanup_eventset() and
PAPI_destroy_eventset()
* src/papi.c: Add doxygen comments for PAPI_attach() and
PAPI_detach()
* src/papi.c: Add doxygen comments for
PAPI_assign_eventset_component()
2011-07-05
* src/components/cuda/linux-cuda.c: missing parentheses added in
CUDA_Shutdown() which caused a seg fault.
2011-07-01
* src/papi.c: Add doxygen comments for PAPI_add_event()
* src/papi.c: Add doxygen comments for PAPI_add_events() +++
Updated PAPI_accum()
* src/papi.c: Add doxygen comments for PAPI_accum()
* src/ctests/: data_range.c, earprofile.c: Some more ia64 ctests
fixes
* src/papi.c: Add doxygen comments for PAPI_register_thread()
* src/papi.c: Add doxygen comments for: PAPI_read()
PAPI_read_ts()
* src/ctests/earprofile.c: Another attempt at fixing earprofile on
ia64.
* src/ctests/earprofile.c: PAPI for ia64 compiles now, and now it's
some of the ia64-specific ctests that are broken.
There was a missing #include "papi.h" in earprofile
2011-06-30
* src/papi.c: Doxygen for: PAPI_set_multiplex PAPI_shutdown
PAPI_sprofil_t PAPI_start (int EventSet) PAPI_state (int
EventSet, int *status) PAPI_stop (int EventSet, long long
*values) PAPI_strerror (int)
* src/: linux-timer.c, perfmon-ia64-pfm.h, perfmon-ia64.c: more
ia64 fixes
* src/papi.c: doxygen comments for: PAPI_query_event()
* src/: linux-timer.c, linux-timer.h, papi_vector.c, papi_vector.h:
Some more ia64 fixes.
* src/papi.c: add doxygen comments for PAPI_profil()
* src/: linux-timer.c, linux-timer.h, perfmon-ia64.c: More ia64
fixes. Getting closer.
* src/: linux-context.h, perfmon-ia64.c, perfmon-ia64.h: One more
try at fixing ia64.
The trick to cross compiling is ./configure --with-CPU=itanium2
--with-arch=ia64 --with-perfmon=2.0 --with-tls=no make
__ia64__=1
and you still have to fiddle with some __ia64__ ifdefs scattered
in the code
2011-06-29
* src/papi.c: Add doxygen comments for: * PAPI_num_events() *
PAPI_overflow() * PAPI_perror()
* src/papi.c: Doxygen for PAPI_set_domain and PAPI
_set_granularity. Unfortunately, this seems to have raised more
issues about Fortran support...
* src/papi.c: Add doxygen comments to * PAPI_list_threads() *
PAPI_lock() * PAPI_multiplex_init() * PAPI_num_hwctrs() *
PAPI_num_cmp_hwctrs()
* src/papi.c: Doxygen for PAPI_set_debug and minor tweaks to other
function documentation.
2011-06-28
* src/: linux-common.h, linux-timer.c, papi_pfm_events.c,
perfmon-ia64-pfm.h: some more itanium fixes. This won't be
enough to fix things but it is a start.
* src/papi.c: Check in Kiran's doxygen work. This time hopefully
not clobbering anyone.
* src/: linux-context.h, linux-timer.c, perfmon-ia64.h: Attempt to
fix the build for itanium systems.
* src/papi.c: Fix comments embedded in doygen source to be C++
single line format.
2011-06-27
* src/papi.c: Commit documentation changes for PAPI_reset,
PAPI_set_thr_specific, and PAPI_get_thr_specific. The last one
wasn't on my list, but it mirrored _set_ so I did it anyway.
* src/papi.c: [no log message]
* src/papi.c: Commit Kiren's updates to the code documentation.
2011-06-24
* doc/Doxyfile: One got left behind... ( see previous commit about
redoing doxygen procedures )
* src/Makefile.inc, src/configure, src/configure.in,
doc/Doxyfile.html, doc/Doxyfile.utils,
doc/Doxyfile.utils-everything, doc/Makefile,
doc/doxygen_procedure.txt: Update install process for man-pages,
install from pre-built pages living in $(PAPI_DIR)/man and update
$(PAPI_DIR)/doc to generate doxygen pages and copy them to
$(PAPI_DIR)/man.
This removes doxygen from the install process. And when removes
the web of doxygen configurationf files, going back to just two,
lite and kitchen-sink.
* src/papi.c: Updates to doxygen stuff for PAPI_remove_event{s}
* src/: linux-bgp.c, perfmon-ia64.c, perfmon.c, solaris-niagara2.c,
solaris-ultra.c: When I made the multiattach change I forgot to
update _papi_hwi_lookup_thread calls on all architectures. This
should get the ones I missed.
2011-06-23
* src/papi_pfm4_events.c: For libpfm4 we were setting available
counters to the number of generic counters.
This was less than libpfm3, so update the code to set the number
of counters to be equal to generic+fixed.
In theory whether an event can be added is determined at add
time, so the extra check for number of counters is unnecessarily
getting in the way. This should be fixed but might require a
re-write of some PAPI internals.
2011-06-22
* src/ctests/test_utils.c: One more fix to the byte_profile code
* src/ctests/byte_profile.c: Fix byte_profile ctest, as it was
breaking on libpfm4.
* src/: extras.c, papi.c, perf_events.c, threads.c, threads.h,
ctests/multiattach.c, ctests/multiattach2.c: Add support for
handling multiattach properly.
This adds a pid argument to the
_papi_hwi_lookup_or_create_thread() call. A pid of "0" falls
back to the old behavior of using the current tid/pid.
If attaching to an outside pid/tid, a new thread object is
created to handle this. This seems like the right thing to do,
though there's enough complicated code in the threads code that I
haven't fully audited that this can't fail somehow in complicated
cases where lots of attaching/detaching is done in conjunction
with having a large multi-threaded program.
2011-06-13
* src/papi_pfm4_events.c: Fix the libpfm4 enumerate code.
It was possible for papi_native_avail to get stuck in an infinite
loop if two events had the same name on different PMUs and the
"default" PMU happened later in the enumeration.
This was the case on SandyBridge at least.
This should be fixed now.
* src/ctests/test_utils.c: Make "test_fail()" actually fail.
In the comments we say we don't exit to avoid leaking memory in
threads.
That seems suspect. The threads should exit properly too. If
they don't, then we should fix the threading code and not make
our tests never exit on fail (which can make debugging a pain).
2011-06-10
* src/: papi.c, papi_hl.c: Add example code to the high level
interface docs
* src/papi_events.csv: Add initial Sandy Bridge event support.
This is in no way nested, so be cautious if using.
Sandy Bridge support is libpfm4 only, so you'll have to configure
with --with-libpfm4
* src/papi_hl.c: Added an example of how to embed example code in
PAPI_stop_counters documentation.
2011-06-09
* src/Makefile.inc: Makefile fix for fortran wrapper files on
case-insensitive filesystems. During build, it renames the
preprocessed file PAPI_FWRAPPERS.c to upper_PAPI_FWRAPPERS.c
2011-06-08
* src/: configure, Makefile.inc, configure.in: Have configure check
that doxygen is installed, and have make install only attempt to
build the doxygen docs if we found doxygen.
2011-06-07
* src/: run_tests_exclude_cuda.txt, components/cuda/linux-cuda.c:
ctests/thrspecific works now too with the CUDA component
* src/components/cuda/linux-cuda.c: clean up and indent
* src/components/cuda/: linux-cuda.c, linux-cuda.h: Added
CudaRemoveEvent functionality (was broken in earlier CUDA RC
versions). ctests/all_native_events works now (at least for the
default CUDA device). +++ Minor exit/return mods in CUDA
component
* doc/Doxyfile, doc/Doxyfile.html, doc/Doxyfile.utils,
doc/Doxyfile.utils-everything, doc/Makefile, src/Makefile.inc,
src/papi.c, src/papi.h, src/papi_hl.c: Rework doxygen to better
generate manpages from code comments.
2011-06-03
* release_procedure.txt: Incorporate a note about using 2.59
autoconf to build configure.
2011-06-02
* src/utils/error_codes.c: Tweak the doxygen title text.
2011-06-01
* src/: configure, configure.in: Modified configure.in to look for
a 2.59 autoconf prerequisite. Rebuilt configure with 2.59. We'll
try this out on buildbot.
2011-05-31
* src/: run_tests_exclude_cuda.txt, components/cuda/linux-cuda.c,
components/cuda/linux-cuda.h: 2 things: (1) Bug in CUDA v4.0
fixed. It caused a threaded application to hang when parent
called cuInit() before fork() and child called also cuInit().
All fork ctests pass now if papi is configured with cuda
component. (2) If running a threaded application, we need to make
sure that a thread doesn't free the same memory location(s) more
than once. Now all pthread ctests pass, too (again, if papi is
configured with cuda component).
2011-05-27
* src/perf_events.c: It turns out our FORMAT_ID workaround
detection code was identical to FORMAT_GROUP (and not really
necessary) so merge the two.
2011-05-26
* src/papi_pfm_events.h: One last try at the cray compile fix, this
time using a suggestion from Steve Kaufmann.
* src/perf_events.c: Update some comments on the workarounds.
I've been writing some validation tests for our various
workarounds.
It turns out the "no multiplexing before 2.6.33" problem is
actually an artifact of the check_schedulability bug on x86 (and
its interaction with our event partitioning code) rather than a
distinct kernel bug.
* src/Rules.pfm4_pe: Now fix libpfm4. I think they should all be
fixed now. Too many permutations.
* src/: Rules.pfm_pe, papi_pfm_events.h: One last try at fixing the
perfmon2 build.
* src/papi_pfm_events.h: Fix the perfmon2 build that broke with the
libpfm4 merge. The previous fix only fixed perfctr, not perfmon2
This should fix the build for cray machines.
2011-05-24
* src/utils/component.c: Add doxygen comments to components.c
* src/papi_events.csv: Fix the PAPI_TOT_INS instruction for Atom,
as well as update the floating point events.
* src/perf_events.c: We were using some of the perf_event
functionality in an susupported way and this broke recently
when the perf_event interface was made more strict.
You can't use the PERF_EVENT_IOC_REFRESH ioctl on a group leader
to start all sampling siblings... use PERF_EVENT_IOC_ENABLE
Don't pass NULL or 0 as the argument to the
PERF_EVENT_IOC_REFRESH ioctl.
These fixes seem to work and fix the Nehalem regressions. The
above changes were made to PAPI back in November to fix the I/O
possible error, so we should check to be sure that this doesn't
reintroduce the problem.
We should also probably back-port this fix to 4.1.2 and 4.2
stable
2011-05-23
* src/: configure, configure.in, papi.c, papi.h, papi_data.h,
utils/Makefile, utils/error_codes.c: New utility to display PAPI
error codes and description strings. There was no API to access
error descriptions, so I created PAPI_descr_error( int error_code
) too. I also updated the error table to provide strings for all
defined codes.
* src/aix.c: Define aix's .cmp_info.itimer_ns value to a default.
The multiplexing tests are happy on power7 aix now.
* src/: sys_perf_event_open.c, ctests/overflow.c: cleanup some
debug messages
* src/ctests/: overflow.c, test_utils.c: The overflow test depends
on the exact ordering of the flags in the add_test_event()
code. So my previous changes broke the test. This commit
fixes the test case again.
* src/ctests/: byte_profile.c, prof_utils.c, prof_utils.h,
profile.c, profile_twoevents.c, sprofile.c: ctests: remove the
"hw_info" field from the profile setup functions, as the
field isn't used.
* src/: configure, configure.in, utils/Makefile, utils/component.c:
Introduce a component avail utility, lists the components we were
built with, optionally with native/preset counts and version
number.
* src/components/example/example.c: Add number of 'native' events
to the component info structure in example component.
* src/ctests/: byte_profile.c, papi_test.h, prof_utils.c,
prof_utils.h, profile.c, profile_twoevents.c, sprofile.c,
test_utils.c, zero_smp.c: Clean up the ctest profile event
section code some more.
This fixes a build error on AIX that I introuced on Friday.
* src/papi_events.csv: Initial PAPI Fam14h Bobcat support.
Only works with libpfm4 version of PAPI.
Passes most of the tests, but still need to verify as there are a
number of subtle differences in the native events.
2011-05-20
* src/ctests/: byte_profile.c, mendes-alt.c, papi_test.h,
prof_utils.c, test_utils.c: Fix byte_profile to work on Nehalem.
Still needs some more work to print the result properly.
* src/ctests/: attach2.c, attach3.c, branches.c, byte_profile.c,
case1.c, case2.c, first.c, multiattach.c, multiattach2.c,
overflow.c, overflow3_pthreads.c, overflow_index.c,
overflow_one_and_read.c, overflow_pthreads.c, papi_test.h,
prof_utils.c, profile_pthreads.c, reset.c, sdsc.c, sprofile.c,
tenth.c, test_utils.c, zero.c, zero_attach.c, zero_fork.c,
zero_pthreads.c: Some cleanups to the ctests/test_utils.c code +
Remove the hw_info field from the add_two_events() and
add_two_nonderived_events() functions, as it wasn't used. + Make
the add_test_events() function loop through all the masks,
insteading having a hardcoded test for each possible mask
* src/ctests/test_utils.c: buildbot didn't like the colored test
messages (despite the code having fancy checks for "isatty()").
So change the color thing to require an environment variable to
be set, TESTS_COLOR=y
2011-05-19
* src/ctests/test_utils.c: Add color to the testsuite results if we
are running at a console. This makes is much easier to see
FAILED results.
I can back this out if people don't like it, but it's made my
life a lot easier when running all the tests involved with the
libpfm4 merge.
* src/: papi_pfm_events.c, papi_pfm_events.h: Fix the build with
perfctr introduced by libpfm4 changes.
* src/configure.in: Documentation for the AIX heap fix.
* src/: papi_pfm4_events.c, ctests/test_utils.c: power6 doesn't
work with libpfm4, as it reports num_cntrs=0
have PAPI print a better error in this case until we get a fix
upstream.
* src/: configure, configure.in: On aix one has to ask really
nicely for a usable ammount of heap space. The omp tests should
run now.
* src/: configure, configure.in, perf_events.c,
sys_perf_event_open.c: This is the last commit needed to get
libpfm4 support going.
To build with libpfm4 support enabled, run configure like this:
./configure --with-libpfm4
* src/: papi_pfm_events.c, papi_pfm_events.h, perf_events.c: Pass
the actual perf_attr structure around, rather than just a 64-bit
event value. This allows support for generalized events and
eventual offcore/uncore support.
* src/: papi_pfm_events.c, perf_events.c, perf_events.h: Clean up
some debugging #ifdefs
* src/papi_events.csv: The papi_events.csv file requires some
additions for libpfm4 to work + The CPU family names have
changed from libpfm3 to libpfm4 It should be backward
compatible to just add the libpfm4 ones in addition to the
libpfm3 ones + libpfm4 does not provide a helper to get the
instruction and cycle event names. So we have to add them
for all supported CPUs
* src/: Rules.pfm4_pe, papi_pfm4_events.c: New files needed for
libpfm4 support
2011-05-16
* release_procedure.txt: Add note to update from cvs before
tagging. Thanks, Will Cohen :)