Blame ChangeLogP420.txt

Packit 577717
2011-10-25
Packit 577717
Packit 577717
	* doc/: Makefile, doxygen_procedure.txt: Update doxygen_procedure
Packit 577717
	  to note that we need a recent version of doxygen.
Packit 577717
Packit 577717
	* man/: man1/avail.c.1, man1/clockres.c.1, man1/command_flags_t.1,
Packit 577717
	  man1/command_line.c.1, man1/component.c.1, man1/cost.c.1,
Packit 577717
	  man1/decode.c.1, man1/error_codes.c.1, man1/event_chooser.c.1,
Packit 577717
	  man1/mem_info.c.1, man1/native_avail.c.1, man1/options_t.1,
Packit 577717
	  man1/papi_avail.1, man1/papi_clockres.1,
Packit 577717
	  man1/papi_command_line.1, man1/papi_component_avail.1,
Packit 577717
	  man1/papi_cost.1, man1/papi_decode.1, man1/papi_error_codes.1,
Packit 577717
	  man1/papi_event_chooser.1, man1/papi_mem_info.1,
Packit 577717
	  man1/papi_multiplex_cost.1, man1/papi_native_avail.1, man3/CDI.3,
Packit 577717
	  man3/HighLevelInfo.3, man3/PAPIF.3, man3/PAPIF_accum.3,
Packit 577717
	  man3/PAPIF_accum_counters.3, man3/PAPIF_add_event.3,
Packit 577717
	  man3/PAPIF_add_events.3, man3/PAPIF_assign_eventset_component.3,
Packit 577717
	  man3/PAPIF_cleanup_eventset.3, man3/PAPIF_create_eventset.3,
Packit 577717
	  man3/PAPIF_destroy_eventset.3, man3/PAPIF_enum_event.3,
Packit 577717
	  man3/PAPIF_event_code_to_name.3, man3/PAPIF_event_name_to_code.3,
Packit 577717
	  man3/PAPIF_flips.3, man3/PAPIF_flops.3,
Packit 577717
	  man3/PAPIF_get_clockrate.3, man3/PAPIF_get_dmem_info.3,
Packit 577717
	  man3/PAPIF_get_domain.3, man3/PAPIF_get_event_info.3,
Packit 577717
	  man3/PAPIF_get_exe_info.3, man3/PAPIF_get_granularity.3,
Packit 577717
	  man3/PAPIF_get_hardware_info.3, man3/PAPIF_get_multiplex.3,
Packit 577717
	  man3/PAPIF_get_preload.3, man3/PAPIF_get_real_cyc.3,
Packit 577717
	  man3/PAPIF_get_real_nsec.3, man3/PAPIF_get_real_usec.3,
Packit 577717
	  man3/PAPIF_get_virt_cyc.3, man3/PAPIF_get_virt_usec.3,
Packit 577717
	  man3/PAPIF_ipc.3, man3/PAPIF_is_initialized.3,
Packit 577717
	  man3/PAPIF_library_init.3, man3/PAPIF_lock.3,
Packit 577717
	  man3/PAPIF_multiplex_init.3, man3/PAPIF_num_cmp_hwctrs.3,
Packit 577717
	  man3/PAPIF_num_counters.3, man3/PAPIF_num_events.3,
Packit 577717
	  man3/PAPIF_num_hwctrs.3, man3/PAPIF_perror.3,
Packit 577717
	  man3/PAPIF_query_event.3, man3/PAPIF_read.3,
Packit 577717
	  man3/PAPIF_read_ts.3, man3/PAPIF_register_thread.3,
Packit 577717
	  man3/PAPIF_remove_event.3, man3/PAPIF_remove_events.3,
Packit 577717
	  man3/PAPIF_reset.3, man3/PAPIF_set_cmp_domain.3,
Packit 577717
	  man3/PAPIF_set_cmp_granularity.3, man3/PAPIF_set_debug.3,
Packit 577717
	  man3/PAPIF_set_domain.3, man3/PAPIF_set_event_domain.3,
Packit 577717
	  man3/PAPIF_set_granularity.3, man3/PAPIF_set_inherit.3,
Packit 577717
	  man3/PAPIF_set_multiplex.3, man3/PAPIF_shutdown.3,
Packit 577717
	  man3/PAPIF_start.3, man3/PAPIF_start_counters.3,
Packit 577717
	  man3/PAPIF_state.3, man3/PAPIF_stop.3,
Packit 577717
	  man3/PAPIF_stop_counters.3, man3/PAPIF_thread_id.3,
Packit 577717
	  man3/PAPIF_thread_init.3, man3/PAPIF_unlock.3,
Packit 577717
	  man3/PAPIF_unregister_thread.3, man3/PAPIF_write.3,
Packit 577717
	  man3/PAPI_accum.3, man3/PAPI_accum_counters.3,
Packit 577717
	  man3/PAPI_add_event.3, man3/PAPI_add_events.3,
Packit 577717
	  man3/PAPI_addr_range_option_t.3, man3/PAPI_address_map_t.3,
Packit 577717
	  man3/PAPI_all_thr_spec_t.3,
Packit 577717
	  man3/PAPI_assign_eventset_component.3, man3/PAPI_attach.3,
Packit 577717
	  man3/PAPI_attach_option_t.3, man3/PAPI_cleanup_eventset.3,
Packit 577717
	  man3/PAPI_component_info_t.3, man3/PAPI_cpu_option_t.3,
Packit 577717
	  man3/PAPI_create_eventset.3, man3/PAPI_debug_option_t.3,
Packit 577717
	  man3/PAPI_descr_error.3, man3/PAPI_destroy_eventset.3,
Packit 577717
	  man3/PAPI_detach.3, man3/PAPI_dmem_info_t.3,
Packit 577717
	  man3/PAPI_domain_option_t.3, man3/PAPI_enum_event.3,
Packit 577717
	  man3/PAPI_event_code_to_name.3, man3/PAPI_event_info_t.3,
Packit 577717
	  man3/PAPI_event_name_to_code.3, man3/PAPI_exe_info_t.3,
Packit 577717
	  man3/PAPI_flips.3, man3/PAPI_flops.3, man3/PAPI_get_cmp_opt.3,
Packit 577717
	  man3/PAPI_get_component_info.3, man3/PAPI_get_dmem_info.3,
Packit 577717
	  man3/PAPI_get_event_info.3, man3/PAPI_get_executable_info.3,
Packit 577717
	  man3/PAPI_get_hardware_info.3, man3/PAPI_get_multiplex.3,
Packit 577717
	  man3/PAPI_get_opt.3, man3/PAPI_get_overflow_event_index.3,
Packit 577717
	  man3/PAPI_get_real_cyc.3, man3/PAPI_get_real_nsec.3,
Packit 577717
	  man3/PAPI_get_real_usec.3, man3/PAPI_get_shared_lib_info.3,
Packit 577717
	  man3/PAPI_get_thr_specific.3, man3/PAPI_get_virt_cyc.3,
Packit 577717
	  man3/PAPI_get_virt_nsec.3, man3/PAPI_get_virt_usec.3,
Packit 577717
	  man3/PAPI_granularity_option_t.3, man3/PAPI_hw_info_t.3,
Packit 577717
	  man3/PAPI_inherit_option_t.3, man3/PAPI_ipc.3,
Packit 577717
	  man3/PAPI_is_initialized.3, man3/PAPI_itimer_option_t.3,
Packit 577717
	  man3/PAPI_library_init.3, man3/PAPI_list_events.3,
Packit 577717
	  man3/PAPI_list_threads.3, man3/PAPI_lock.3,
Packit 577717
	  man3/PAPI_mh_cache_info_t.3, man3/PAPI_mh_info_t.3,
Packit 577717
	  man3/PAPI_mh_level_t.3, man3/PAPI_mh_tlb_info_t.3,
Packit 577717
	  man3/PAPI_mpx_info_t.3, man3/PAPI_multiplex_init.3,
Packit 577717
	  man3/PAPI_multiplex_option_t.3, man3/PAPI_num_cmp_hwctrs.3,
Packit 577717
	  man3/PAPI_num_components.3, man3/PAPI_num_counters.3,
Packit 577717
	  man3/PAPI_num_events.3, man3/PAPI_num_hwctrs.3,
Packit 577717
	  man3/PAPI_option_t.3, man3/PAPI_overflow.3, man3/PAPI_perror.3,
Packit 577717
	  man3/PAPI_preload_info_t.3, man3/PAPI_profil.3,
Packit 577717
	  man3/PAPI_query_event.3, man3/PAPI_read.3,
Packit 577717
	  man3/PAPI_read_counters.3, man3/PAPI_read_ts.3,
Packit 577717
	  man3/PAPI_register_thread.3, man3/PAPI_remove_event.3,
Packit 577717
	  man3/PAPI_remove_events.3, man3/PAPI_reset.3,
Packit 577717
	  man3/PAPI_set_cmp_domain.3, man3/PAPI_set_cmp_granularity.3,
Packit 577717
	  man3/PAPI_set_debug.3, man3/PAPI_set_domain.3,
Packit 577717
	  man3/PAPI_set_granularity.3, man3/PAPI_set_multiplex.3,
Packit 577717
	  man3/PAPI_set_opt.3, man3/PAPI_set_thr_specific.3,
Packit 577717
	  man3/PAPI_shlib_info_t.3, man3/PAPI_shutdown.3,
Packit 577717
	  man3/PAPI_sprofil.3, man3/PAPI_sprofil_t.3, man3/PAPI_start.3,
Packit 577717
	  man3/PAPI_start_counters.3, man3/PAPI_state.3, man3/PAPI_stop.3,
Packit 577717
	  man3/PAPI_stop_counters.3, man3/PAPI_strerror.3,
Packit 577717
	  man3/PAPI_thread_id.3, man3/PAPI_thread_init.3,
Packit 577717
	  man3/PAPI_unlock.3, man3/PAPI_unregister_thread.3,
Packit 577717
	  man3/PAPI_write.3, man3/high_api.3, man3/low_api.3,
Packit 577717
	  man3/papi_data_structures.3, man3/papi_vector_t.3,
Packit 577717
	  man3/ret_codes.3: Update doxygen generated man-pages for the
Packit 577717
	  pending release.
Packit 577717
Packit 577717
	  In the future, we need to use a newer version of doxygen to
Packit 577717
	  generate the pages (1.7 +) because locally installed verions
Packit 577717
	  appear to have a  bug.
Packit 577717
Packit 577717
	* src/ctests/nmi_watchdog.c: The nmi_watchdog test should report a
Packit 577717
	  Warning if nmi_watchdog is enabled   not an error.  (Since we do
Packit 577717
	  work around it, even if performance is   likely impacted).
Packit 577717
Packit 577717
	* src/ctests/: Makefile, nmi_watchdog.c: I think the nmi_watchdog
Packit 577717
	  stuff is going to cause us problems down the road.
Packit 577717
Packit 577717
	  Thus add a test that will tell users about the issue.
Packit 577717
Packit 577717
	* src/perf_events.c: The nmi_watchdog workaround is needed for
Packit 577717
	  multiplexing too.
Packit 577717
Packit 577717
	  The kernel devs don't seem eager to fix this.  Until they do,
Packit 577717
	  we'll have to fall back to software multiplexing on recent
Packit 577717
	  kernels that have nmi_watchdog enabled (most vendor kernels).
Packit 577717
Packit 577717
	* src/multiplex.c: Yesterday's coverity fix to make sure the
Packit 577717
	  cleanup and destroy rerturn values were checked ended up
Packit 577717
	  over-writing "retval" in a way that broke the sdsc4-mpx test.
Packit 577717
	  Fix things so that doesn't happen.
Packit 577717
Packit 577717
	* src/: papi.c, perf_events.c, ctests/overflow_allcounters.c: Some
Packit 577717
	  changes for perf_event MIPS support
Packit 577717
Packit 577717
	  + Add __mips__ cases to the format_group, schedulability, and
Packit 577717
	  broken   multiplexing bug workarounds, as even new Linux mips
Packit 577717
	  kernels have	 these bugs + fix overflow_allcounters to work
Packit 577717
	  properly if the MHz value   is zero.	+ Add some debugging to
Packit 577717
	  PAPI_overflow() so that errors are more obvious   than just
Packit 577717
	  returning PAPI_EINVAL, which made the previous item	a pain to
Packit 577717
	  track down.
Packit 577717
Packit 577717
	* man/: footer.htm, header.htm, manServer_papi.pl, papiman.bat,
Packit 577717
	  html/papi.html, html/papi_accum.html,
Packit 577717
	  html/papi_accum_counters.html, html/papi_add_event.html,
Packit 577717
	  html/papi_add_events.html,
Packit 577717
	  html/papi_assign_eventset_component.html, html/papi_attach.html,
Packit 577717
	  html/papi_avail.html, html/papi_cleanup_eventset.html,
Packit 577717
	  html/papi_clockres.html, html/papi_command_line.html,
Packit 577717
	  html/papi_cost.html, html/papi_create_eventset.html,
Packit 577717
	  html/papi_decode.html, html/papi_destroy_eventset.html,
Packit 577717
	  html/papi_detach.html, html/papi_encode_events.html,
Packit 577717
	  html/papi_enum_event.html, html/papi_event_chooser.html,
Packit 577717
	  html/papi_event_code_to_name.html,
Packit 577717
	  html/papi_event_name_to_code.html, html/papi_flips.html,
Packit 577717
	  html/papi_flops.html, html/papi_get_component_info.html,
Packit 577717
	  html/papi_get_dmem_info.html, html/papi_get_event_info.html,
Packit 577717
	  html/papi_get_executable_info.html,
Packit 577717
	  html/papi_get_hardware_info.html, html/papi_get_multiplex.html,
Packit 577717
	  html/papi_get_opt.html, html/papi_get_overflow_event_index.html,
Packit 577717
	  html/papi_get_real_cyc.html, html/papi_get_real_usec.html,
Packit 577717
	  html/papi_get_shared_lib_info.html,
Packit 577717
	  html/papi_get_substrate_info.html,
Packit 577717
	  html/papi_get_thr_specific.html, html/papi_get_virt_cyc.html,
Packit 577717
	  html/papi_get_virt_usec.html, html/papi_help.html,
Packit 577717
	  html/papi_ipc.html, html/papi_is_initialized.html,
Packit 577717
	  html/papi_library_init.html, html/papi_list_events.html,
Packit 577717
	  html/papi_list_threads.html, html/papi_lock.html,
Packit 577717
	  html/papi_mem_info.html, html/papi_multiplex_init.html,
Packit 577717
	  html/papi_native.html, html/papi_native_avail.html,
Packit 577717
	  html/papi_num_cmp_hwctrs.html, html/papi_num_components.html,
Packit 577717
	  html/papi_num_counters.html, html/papi_num_events.html,
Packit 577717
	  html/papi_num_hwctrs.html, html/papi_overflow.html,
Packit 577717
	  html/papi_perror.html, html/papi_presets.html,
Packit 577717
	  html/papi_profil.html, html/papi_query_event.html,
Packit 577717
	  html/papi_read.html, html/papi_read_counters.html,
Packit 577717
	  html/papi_register_thread.html, html/papi_remove_event.html,
Packit 577717
	  html/papi_remove_events.html, html/papi_reset.html,
Packit 577717
	  html/papi_set_cmp_domain.html,
Packit 577717
	  html/papi_set_cmp_granularity.html, html/papi_set_debug.html,
Packit 577717
	  html/papi_set_domain.html, html/papi_set_event_info.html,
Packit 577717
	  html/papi_set_granularity.html, html/papi_set_multiplex.html,
Packit 577717
	  html/papi_set_opt.html, html/papi_set_thr_specific.html,
Packit 577717
	  html/papi_shutdown.html, html/papi_sprofil.html,
Packit 577717
	  html/papi_start.html, html/papi_start_counters.html,
Packit 577717
	  html/papi_state.html, html/papi_stop.html,
Packit 577717
	  html/papi_stop_counters.html, html/papi_strerror.html,
Packit 577717
	  html/papi_thread_id.html, html/papi_thread_init.html,
Packit 577717
	  html/papi_unlock.html, html/papi_unregister_thread.html,
Packit 577717
	  html/papi_write.html, html/papif.html,
Packit 577717
	  html/papif_get_clockrate.html, html/papif_get_domain.html,
Packit 577717
	  html/papif_get_exe_info.html, html/papif_get_granularity.html,
Packit 577717
	  html/papif_get_preload.html, html/papif_set_event_domain.html,
Packit 577717
	  images/cssigoff.gif, images/cssigon.gif, images/headertop.jpg,
Packit 577717
	  images/line.gif, images/logobottom.jpg, images/logoleft.jpg,
Packit 577717
	  images/menubg.jpg, images/menubg95.jpg, images/rd.jpg,
Packit 577717
	  images/spinbg.jpg, images/spinlogo.gif, images/stable.gif,
Packit 577717
	  images/stripes2.jpg, images/trans.gif, images/utsigoff.gif,
Packit 577717
	  images/utsigon.gif, images/white.jpg: Remove the old html
Packit 577717
	  documentation and assorted helper files.
Packit 577717
Packit 577717
	* src/components/coretemp/linux-coretemp.c: Fix a possible
Packit 577717
	  directory stream leak in the coretemp component.
Packit 577717
Packit 577717
	  reported by coverity checker.
Packit 577717
Packit 577717
	* src/ctests/calibrate.c: Properly free the arrays in calibrate,
Packit 577717
	  introduced by yesterdays coverity fix.
Packit 577717
Packit 577717
	  Patch by Will Cohen
Packit 577717
Packit 577717
Packit 577717
2011-10-24
Packit 577717
Packit 577717
	* src/components/coretemp/linux-coretemp.c: Fix coretemp to not
Packit 577717
	  fail if /sys/class/hwmon doesn't exist.
Packit 577717
Packit 577717
	* src/components/coretemp/linux-coretemp.c: Patch coretemp to only
Packit 577717
	  free the initialized data in shutdown_substrate (once per
Packit 577717
	  PAPI_init) rather than shutdown (once per thread).
Packit 577717
Packit 577717
	  This was causing double free errors.
Packit 577717
Packit 577717
	  Patch from Will Cohen
Packit 577717
Packit 577717
	* src/utils/multiplex_cost.c: Fix various calls to PAPI_start() and
Packit 577717
	  PAPI_stop() in multiplex_cost that didn't check the return value.
Packit 577717
	  Took care to try to avoid changing timing measurements.  Noticed
Packit 577717
	  by coverity checker.
Packit 577717
Packit 577717
	* src/utils/cost.c: In one case, cost was not checking the return
Packit 577717
	  of PAPI_start()/PAPI_stop().	This change makes it does so, while
Packit 577717
	  being careful not to interfere with the timing that is going on.
Packit 577717
Packit 577717
	* src/ctests/: pthrtough.c, pthrtough2.c: pthrtough and pthrtough2
Packit 577717
	  were not checking the return value for pthread_attr_setscope().
Packit 577717
	  Reported by coverity checker.
Packit 577717
Packit 577717
	* src/ctests/multiplex1_pthreads.c: multiplex1_pthreads was not
Packit 577717
	  checking the return from PAPI_library_init() as flagged by
Packit 577717
	  coverity checker.
Packit 577717
Packit 577717
	* src/ctests/inherit.c: inherit.c wasn't checking the result of the
Packit 577717
	  waitpid() call, as reported by coverity checker.
Packit 577717
Packit 577717
	* src/ctests/clockres_pthreads.c: Check the return of
Packit 577717
	  pthread_create().
Packit 577717
Packit 577717
	  Reported by coverity checker.
Packit 577717
Packit 577717
	* src/papi_libpfm4_events.c: Fix an actual bug (reported as
Packit 577717
	  deadcode by coverity) where _papi_hwd_ntv_code_to_descr was
Packit 577717
	  appending extraneous ", masks:" strings into an event
Packit 577717
	  description.
Packit 577717
Packit 577717
	  None of our utils/ctests exercise this function, which is
Packit 577717
	  probably why the bug wasn't noticed.
Packit 577717
Packit 577717
	* src/: multiplex.c, papi.c: Fix cases where PAPI_*() functions
Packit 577717
	  were called without checking the return for an error.
Packit 577717
Packit 577717
	  Reported by coverity.
Packit 577717
Packit 577717
	* doc/Doxyfile.utils: Update version to 4.2.0 for pending release.
Packit 577717
Packit 577717
	* src/multiplex.c: Fix some code that could potentially dereference
Packit 577717
	  a null pointer.
Packit 577717
Packit 577717
	  Found by the coverity checker.
Packit 577717
Packit 577717
	* src/papi_vector.c: Remove a dead code case as reported by
Packit 577717
	  coverity.  Shouldn't break anything as I can't find anywhere that
Packit 577717
	  vector_print_table() is actually called.
Packit 577717
Packit 577717
	* release_procedure.txt: Update release_procedure to reflect
Packit 577717
	  another file that needs a version number bump. (Doxyfile.utils)
Packit 577717
Packit 577717
	* src/ctests/calibrate.c: Fix some weird code that was sharing a
Packit 577717
	  memory allocation for both double and floats.  This was really
Packit 577717
	  ugly and made the coverity checker sad.
Packit 577717
Packit 577717
	  Patch provided by Will Cohen.
Packit 577717
Packit 577717
	* src/testlib/test_utils.c: Fix a signed/unsigned comparison bug I
Packit 577717
	  introduced.
Packit 577717
Packit 577717
	* src/components/coretemp/tests/coretemp_basic.c: Fix the test so
Packit 577717
	  it correctly iterates all of the components.
Packit 577717
Packit 577717
	* src/components/coretemp/: linux-coretemp.c, tests/Makefile,
Packit 577717
	  tests/coretemp_basic.c: Fix a potential memory leak in coretemp
Packit 577717
	  (flagged by coverity).
Packit 577717
Packit 577717
	  Also added a test case for coretemp so I can actually test if
Packit 577717
	  these changes are breaking anything.
Packit 577717
Packit 577717
	* src/solaris-ultra.c: Remove const decleration from get_virt_* in
Packit 577717
	  solaris substrate.  Vince removed this from papi_vector.h back in
Packit 577717
	  June.
Packit 577717
Packit 577717
	* src/testlib/test_utils.c: Improce the add_two_events() code in
Packit 577717
	  the test library.  Before it was possible to overrun a buffer if
Packit 577717
	  none of the potential predefined events were available.
Packit 577717
Packit 577717
	  Noticed by the coverity checker.
Packit 577717
Packit 577717
	* papi.spec, doc/Doxyfile, doc/Doxyfile-everything, src/configure,
Packit 577717
	  src/papi.h, src/Makefile.in, src/configure.in: Update version to
Packit 577717
	  4.2.0 for pending release.
Packit 577717
Packit 577717
2011-10-21
Packit 577717
Packit 577717
	* src/: Makefile.inc, configure, configure.in, papi.c, papi.h,
Packit 577717
	  papi_internal.c, papi_user_events.c, papi_user_events.h: Merge in
Packit 577717
	  the user events code , protected by a configure option.  (
Packit 577717
	  --with-user-events )
Packit 577717
Packit 577717
	* src/testlib/test_utils.c: We now ensure that test_fail() always
Packit 577717
	  exits.  There was some code around that tracked the number of
Packit 577717
	  times test_fail() was called.  Remove that, as I think it was
Packit 577717
	  confusing the coverity checker and causing a huge number of false
Packit 577717
	  positives for NULL pointer dereferences.
Packit 577717
Packit 577717
	* src/components/acpi/linux-acpi.c: Some minor cleanups to the acpi
Packit 577717
	  component.  It was choking a bit if ACPI didn't provide thermal
Packit 577717
	  information, and also fix a few coverity bugs involving not
Packit 577717
	  checking the result of a dup() call.
Packit 577717
Packit 577717
	* src/testlib/test_utils.c: Another problem with negative numbers,
Packit 577717
	  this time one could potentially be passed to a malloc call.
Packit 577717
Packit 577717
	  noticed by coverity
Packit 577717
Packit 577717
	* src/ctests/overflow_pthreads.c: We were indexing an array with a
Packit 577717
	  returned value that could be negative on failure.  Add a check to
Packit 577717
	  avoid that.
Packit 577717
Packit 577717
	  We're also indexing a per-thread array with an EventSet number,
Packit 577717
	  which sounds suspect, should probably investigate that further.
Packit 577717
Packit 577717
	* src/perf_events.c: perf_events.c was setting variables to -1 and
Packit 577717
	  then potentially using them to index arrays or call close() on
Packit 577717
	  them.
Packit 577717
Packit 577717
	  This adds checks to avoid that.
Packit 577717
Packit 577717
	  Noticed by the coverity checker.
Packit 577717
Packit 577717
	* src/components/lustre/linux-lustre.h: Include stdint.h and
Packit 577717
	  ctype.h; needed for uint64_t and isspace() respectivly.
Packit 577717
Packit 577717
	* src/components/coretemp/linux-coretemp.c: Fix problem where we
Packit 577717
	  try to manipulate a NULL directory entry.
Packit 577717
Packit 577717
	  This fixes a segfault on a Nehalem machine we have here that has
Packit 577717
	  a /sys/class/hwmon/hwmon0 directory without a "device"
Packit 577717
	  subdirectory.
Packit 577717
Packit 577717
	* src/components/coretemp/linux-coretemp.c: We were opening a file
Packit 577717
	  but not checking for failure before reading from it.
Packit 577717
Packit 577717
	  Flagged by the coverity checker.
Packit 577717
Packit 577717
	* src/components/coretemp/linux-coretemp.c: Both gcc and coverity
Packit 577717
	  were complaining about using an uninitialized pointer.  This
Packit 577717
	  makes sure it's not dereferenced if not initialized.
Packit 577717
Packit 577717
	* src/ctests/prof_utils.c: Stop doing unnecessary pointer math in a
Packit 577717
	  print statement.
Packit 577717
Packit 577717
	  This was flagged as a problem by the coverity tool.
Packit 577717
Packit 577717
	* src/components/coretemp/linux-coretemp.c: Fix some wrong buffer
Packit 577717
	  sizes in the coretemp component.
Packit 577717
Packit 577717
	  Patch from Will Cohen
Packit 577717
Packit 577717
	* src/ctests/sdsc.c: add some extra debug info for sdsc test
Packit 577717
	  failures.
Packit 577717
Packit 577717
	* src/papi_hl.c: Add comment to PAPI_num_counters() documentation
Packit 577717
	  about use of PAPI_num_cmp_hwctrs() for component counters.
Packit 577717
Packit 577717
2011-10-19
Packit 577717
Packit 577717
	* src/papi.c: Correct documentation errors for PAPI_strerror.
Packit 577717
Packit 577717
	* src/: configure, configure.in: Under a no-cpu-counters build,
Packit 577717
	  still build all of the utils.  We probably want to rethink some
Packit 577717
	  of the cost util details.
Packit 577717
Packit 577717
2011-10-11
Packit 577717
Packit 577717
	* src/run_tests.sh: Remove an unneeded call to "cat".  For some
Packit 577717
	  reason it was printing pointless warnings that needlessly
Packit 577717
	  cluttered the buildbot logs.
Packit 577717
Packit 577717
	* src/ctests/: Makefile, multiplex1.c: -lpapi should never be a
Packit 577717
	  dependency.  -I.. is missing in makefile
Packit 577717
Packit 577717
	  You should be able to cd ctests and do: make <test> or make
Packit 577717
	  multiplex.
Packit 577717
Packit 577717
	  Also, added the read after start multiplex case for multiplex1.
Packit 577717
	  This triggers bugs in perf_events systems.
Packit 577717
Packit 577717
2011-10-10
Packit 577717
Packit 577717
	* src/: papi.c, papi_internal.c, threads.c: The multiplex1_pthreads
Packit 577717
	  test was reporting a memory leak.
Packit 577717
Packit 577717
	  This is because the test was calling PAPI_unregister_thread()
Packit 577717
	  without destroying its EventSets.
Packit 577717
Packit 577717
	  This added change adds code that at unregister_thread time will
Packit 577717
	  destroy any events belonging to that thread.
Packit 577717
Packit 577717
	  This works on all the current ctests but I should check some of
Packit 577717
	  the various corner cases not currently tested.
Packit 577717
Packit 577717
2011-10-07
Packit 577717
Packit 577717
	* src/libpfm4/: config.mk, lib/pfmlib_amd64.c, lib/pfmlib_common.c,
Packit 577717
	  lib/pfmlib_intel_x86.c, lib/events/intel_nhm_events.h,
Packit 577717
	  lib/events/intel_wsm_events.h: Merge the "conflicts" from the
Packit 577717
	  libpfm4 merge
Packit 577717
Packit 577717
	* src/: threads.c, threads.h: Fix the MEMORY LEAK errors involving
Packit 577717
	  the attach ctests (as seen on buildbot)
Packit 577717
Packit 577717
	  These came about when proper multiattach support was added.  A
Packit 577717
	  "fake" thread structure is created for each attached process.
Packit 577717
	  These fake thread structures were not being cleaned up at
Packit 577717
	  shutdown,   hence the leak.
Packit 577717
Packit 577717
	  This fix adds support so at thread shutdown, if we have any
Packit 577717
	  "fake" threads that we created, also shut them down too.
Packit 577717
Packit 577717
	  This was tricky, especially dealing with the circular-linked list
Packit 577717
	    the thread info structs are in.  This fix seems to work without
Packit 577717
	    negatively affecting the pthread cases.
Packit 577717
Packit 577717
	  ctests/multiplex1_pthreads still reports MEMORY LEAK but that
Packit 577717
	  seems   to be an eventset issue, not a thread issue, so will be
Packit 577717
	  investigated	 separately.
Packit 577717
Packit 577717
2011-10-06
Packit 577717
Packit 577717
	* src/: papi.h, papi_fwrappers.c: Add Fortran reference to  doxygen
Packit 577717
	  main page.
Packit 577717
Packit 577717
2011-10-05
Packit 577717
Packit 577717
	* src/: papi.c, papi_internal.c, perf_events.c: There has been some
Packit 577717
	  ongoing speculation about what would happen if you enabled
Packit 577717
	  Multiplexing and Overflow at the same time.
Packit 577717
Packit 577717
	  It turns out (at least on perf_events) that if you have kernel
Packit 577717
	  multiplexing, the results are what you expect.  You get
Packit 577717
	  overflows, but less than in the non-multiplexing case because the
Packit 577717
	  overflow counter isn't being run all the time.
Packit 577717
Packit 577717
	  The results for software multiplexing involved a segfault.  This
Packit 577717
	  is because in the software multiplexing case the primary EventSet
Packit 577717
	  is a fiction; a set of shadow EventSets are created behind the
Packit 577717
	  scene, and these are the ones used.  Therefore when you enable
Packit 577717
	  overflow, the overflow event is attempted to be enabled on the
Packit 577717
	  fictious main EventSet.  There are no native events mapped for
Packit 577717
	  it, so overflow tries to access native event array index "-1"
Packit 577717
	  which causes bad things to happen.
Packit 577717
Packit 577717
	  This change avoids the issue by catching the "-1" case and
Packit 577717
	  failing accordingly.	We should probably decide if we want to
Packit 577717
	  catch the oflo/mpx combination earlier and outright ban it.
Packit 577717
Packit 577717
	  I also went through a lot of the code involved adding comments,
Packit 577717
	  as it was really hard following what was going on.  This involved
Packit 577717
	  the infamously dense "_papi_hwi_remap_event_position()" function
Packit 577717
	  too.
Packit 577717
Packit 577717
	* src/papi.h: Moved cpu and inherit bits to end of structure for
Packit 577717
	  compat across all 4.x lines.	Found by Will Cohen.
Packit 577717
Packit 577717
	  As it turns out, I ended up reviewing the CPU_ATTACH changes; I
Packit 577717
	  had not done so before. This functionality actually belongs in
Packit 577717
	  PAPI_set_granularity. A CPU is a natural unit of granularity of
Packit 577717
	  counting, and that value was speced in papi.h a long time ago.
Packit 577717
	  Right thing to do here is leave the current attach stuff but make
Packit 577717
	  it work as part of set_granularity.
Packit 577717
Packit 577717
	  Consider that a TODO for 4.3.
Packit 577717
Packit 577717
2011-10-04
Packit 577717
Packit 577717
	* doc/: Doxyfile, Doxyfile-everything: Enable macro expansion in
Packit 577717
	  the doxygen preprocessor step.
Packit 577717
Packit 577717
	  Doxygen was not creating docs for the fortran functions and I
Packit 577717
	  believe it is because it was silently choking on our clever
Packit 577717
	  preprocessor abuse; this fixes? that.  However, its worth taking
Packit 577717
	  a critical eye to the generated pages again.
Packit 577717
Packit 577717
	* src/: papi.c, papi_fwrappers.c, papi_hl.c: make "* #include" into
Packit 577717
	  "* \#include" so doxygen doesn't treat it as a command.
Packit 577717
Packit 577717
	* src/papi_fwrappers.c: Added all doxygen stubs to the PAPIF group.
Packit 577717
Packit 577717
2011-10-03
Packit 577717
Packit 577717
	* src/ctests/ipc.c: My previous "fix" for the array bounds issue in
Packit 577717
	  ipc.c had multiple embarassing bugs.
Packit 577717
Packit 577717
	  Thanks to Will Cohen for noticing.  Things should be better now.
Packit 577717
Packit 577717
	* src/: Rules.perfctr-pfm, Rules.pfm_pe: Additionally remove the
Packit 577717
	  now extraneous papi_libpfm_preset definition from the other Rules
Packit 577717
	  files too.
Packit 577717
Packit 577717
	* src/: Makefile.inc, Rules.pfm4_pe: The change to make the preset
Packit 577717
	  code generic accidentally ended up defining the build rules for
Packit 577717
	  the file in duplicate places.  This fixes that.
Packit 577717
Packit 577717
2011-09-30
Packit 577717
Packit 577717
	* src/: linux-common.c, utils/decode.c: Fix two unused variable
Packit 577717
	  warnings.
Packit 577717
Packit 577717
	* src/ctests/second.c: We were allocating the "values" array but
Packit 577717
	  never freeing it.
Packit 577717
Packit 577717
	* src/ctests/: sdsc2.c, sdsc4.c: The SDSC tests could walk off the
Packit 577717
	  end of an array.
Packit 577717
Packit 577717
	* src/ctests/overflow_twoevents.c: We could potentially access
Packit 577717
	  outside an array boundary in overflow_twoevents.
Packit 577717
Packit 577717
	* src/ctests/ipc.c: ipc was also abusing array boundaries.
Packit 577717
Packit 577717
	* src/ctests/flops.c: The flops.c ctest was abusing the notion of C
Packit 577717
	  arrays, by writing INDEX*INDEX values to mresult[0][i], I suppose
Packit 577717
	  "knowing" that this would fill in the whole array.  Fix things to
Packit 577717
	  use an additional iterator.
Packit 577717
Packit 577717
	* src/ctests/byte_profile.c: The coverity checker rightly points
Packit 577717
	  out that the last argument to strncat should be buffersize-1.
Packit 577717
Packit 577717
	* src/ctests/: exeinfo.c, shlib.c: Coverity flagged that there were
Packit 577717
	  some tests that had no effect. In particular the are tests that
Packit 577717
	  the pointers are non-null. However, they are arrays rather than
Packit 577717
	  pointers. This patch make it clear that arrays are being used in
Packit 577717
	  the code.
Packit 577717
Packit 577717
	  Patch from Will Cohen at redhat
Packit 577717
Packit 577717
	* src/ctests/clockcore.c: This is a relatively minor patch that
Packit 577717
	  ensures that all the allocated memory is initialized to zero
Packit 577717
	  before it is used.  Coverity might not be smart enough to
Packit 577717
	  determine whether the test actually wrote into all the locations
Packit 577717
	  because of the case statement. This is make it easier for
Packit 577717
	  coverity to determine that the memory has been initialized.
Packit 577717
Packit 577717
	  Path from Will Cohen at redhat.
Packit 577717
Packit 577717
	* src/multiplex.c: Coverity scan showed that MPX_cleanup() function
Packit 577717
	  was blindly accessing a value through a pointer and then checking
Packit 577717
	  to see that the pointer was null.  This patch makes sure that the
Packit 577717
	  pointer is checked before it is used.
Packit 577717
Packit 577717
	  Patch from Will Cohen at redhat.
Packit 577717
Packit 577717
	* src/ctests/: pthrtough.c, pthrtough2.c: Coverity found that the
Packit 577717
	  sizeof argument for pthrtough2.c and pthrtough.c was using
Packit 577717
	  sizeof(pthread *) rather than sizeof(pthread). This patch fixes
Packit 577717
	  that problem.
Packit 577717
Packit 577717
	  Patch from Will Cohen at redhat
Packit 577717
Packit 577717
	* src/papi_internal.c: This change moves the setting for default
Packit 577717
	  domain to be enforced at eventset add time, rather than eventset
Packit 577717
	  creation time.
Packit 577717
Packit 577717
	  This fixes some problems seen when multiplexing.
Packit 577717
Packit 577717
	  The patch was provided by Phil Mucci.
Packit 577717
Packit 577717
	* src/pmapi-ppc64.h: One more file that is no longer needed.
Packit 577717
Packit 577717
	* src/: configure, configure.in, perfctr.c, pmapi-ppc64_events.c,
Packit 577717
	  ppc64_events.c: Clean up the now not-needed pmapi-ppc64_events.c
Packit 577717
	  file.
Packit 577717
Packit 577717
	* src/: Makefile.inc, aix.c, aix.h, configure, configure.in,
Packit 577717
	  papi_libpfm_presets.c: Finalize the merge of the preset code.
Packit 577717
Packit 577717
	* src/aix.c: Fix a missing include.
Packit 577717
Packit 577717
	* src/: aix.c, configure, configure.in: Move more code to its
Packit 577717
	  proper place.
Packit 577717
Packit 577717
	* src/: aix.c, configure, configure.in, pmapi-ppc64.c,
Packit 577717
	  pmapi-ppc64_events.c, ppc64_events.c: Move the
Packit 577717
	  ppc64_setup_native_table() routines out of the preset code.
Packit 577717
Packit 577717
	  This is complicated, as there are two very similar routines
Packit 577717
	  setup_ppc64_native_table() used by AIX/pmapi and
Packit 577717
	  ppc64_setup_native_table() used by perfctr
Packit 577717
Packit 577717
	  These could probably be merged too, but this is definitely not
Packit 577717
	  the time.
Packit 577717
Packit 577717
	* src/: aix.c, papi_libpfm_presets.c, pmapi-ppc64_events.c: move
Packit 577717
	  pmapi_find_full_event to be _aix_ntv_name_to_code() as it
Packit 577717
	  probably always should have been.
Packit 577717
Packit 577717
	* src/: papi_libpfm_presets.c, papi_setup_presets.h,
Packit 577717
	  pmapi-ppc64_events.c: Make papi_libpfm_presets more generic by
Packit 577717
	  calling    _papi_hwi_native_name_to_code() rather than a
Packit 577717
	  substrate-specific call.
Packit 577717
Packit 577717
	* src/: aix.c, papi_libpfm_presets.c, pmapi-ppc64_events.c: I was
Packit 577717
	  mainly doing this to aid debugging, but now the
Packit 577717
	  papi_libpfm_presets.c file and pmapi-ppc64_events.c file are
Packit 577717
	  close enough to being identical I might try to merge them.
Packit 577717
Packit 577717
2011-09-29
Packit 577717
Packit 577717
	* src/: papi_libpfm_presets.c, pmapi-ppc64_events.c,
Packit 577717
	  ppc64_events.h: The files are almost the same now.
Packit 577717
Packit 577717
	* src/: papi_libpfm_presets.c, pmapi-ppc64_events.c: More making
Packit 577717
	  these files the same, including some memory leak fixes that made
Packit 577717
	  it to the former but not the latter.
Packit 577717
Packit 577717
	* src/: papi_libpfm_presets.c, pmapi-ppc64_events.c: Tracking down
Packit 577717
	  problems on AIX can be a bit of a pain because
Packit 577717
	  papi_libpfm_presets.c and pmapi-ppc64_events.c are almost (but
Packit 577717
	  not quite)   the same.  This change makes the files more similar,
Packit 577717
	  mostly by   cleaning up whitespace and normalizing comments and
Packit 577717
	  debugging statements	 between the two.
Packit 577717
Packit 577717
	* src/pmapi-ppc64_events.c: Ugh, obvious typo in that last commit.
Packit 577717
Packit 577717
	* src/pmapi-ppc64_events.c: In ppc64_setup_gps() the current code
Packit 577717
	  sometimes walks off the end of the group array and trashes
Packit 577717
	  unrelated memory.
Packit 577717
Packit 577717
	  Until we work out the proper fix, this prints an error message
Packit 577717
	  and stops the loop before memory is corrupted.
Packit 577717
Packit 577717
	* src/papi_data.h: No one seems to remember the last time this file
Packit 577717
	  was used, so let's remove it.
Packit 577717
Packit 577717
2011-09-28
Packit 577717
Packit 577717
	* src/Makefile.inc: Remove the "u" option to the "ar" command that
Packit 577717
	  links libpapi.a, as it was breaking the build on MIPS.
Packit 577717
Packit 577717
	  This *shouldn't* break anything, but messing around with "ar"
Packit 577717
	  options can be potentially dangerous.  I'll double-check the
Packit 577717
	  non-Linux builds.
Packit 577717
Packit 577717
	* src/libpfm4/lib/: Makefile, pfmlib_mips_priv.h,
Packit 577717
	  events/intel_nhm_events.h, events/intel_wsm_events.h: Fix up the
Packit 577717
	  "collisions" from the libpfm4 import
Packit 577717
Packit 577717
2011-09-26
Packit 577717
Packit 577717
	* src/Makefile.inc: We would like to use parallel make on packages
Packit 577717
	  to speed things up. However, when this was tried with papi the
Packit 577717
	  "make -j4" failed
Packit 577717
	  (https://bugzilla.redhat.com/show_bug.cgi?id=740909). I took a
Packit 577717
	  look through the code and found that some of dependencies were
Packit 577717
	  not quite right. Turns out that $(papiLIBS) is substituted during
Packit 577717
	  the configure, but it isn't available for the actual make.
Packit 577717
	  Attached is the patch that ensures that the $(LIBS) are built
Packit 577717
	  before utils and tests.
Packit 577717
Packit 577717
	  Patch from Will Cohen <wcohen at redhat.com>
Packit 577717
Packit 577717
	* src/run_tests.sh: Modify run_tests.sh so that you can set the
Packit 577717
	  VALGRIND command externally via environment variable without
Packit 577717
	  having to edit run_tests.sh itself.
Packit 577717
Packit 577717
	  Also adds Date and cpuinfo information to the beginning of
Packit 577717
	  run_tests.sh results.  This can help when run run_tests.sh output
Packit 577717
	  is passed around when debugging a problem.
Packit 577717
Packit 577717
	  Patch from Phil Mucci
Packit 577717
Packit 577717
	* src/: configure, configure.in: If we have no Fortran compiler
Packit 577717
	  available, then our current build system tries to build the
Packit 577717
	  Fortran examples with an empty compiler string which just
Packit 577717
	  generates strange errors.
Packit 577717
Packit 577717
	  This patch changes F77 to be "echo" which at least avoids the
Packit 577717
	  errors.  The proper fix is probably just not to build the Fortran
Packit 577717
	  samples if no compiler is available.
Packit 577717
Packit 577717
	  Patch from Phil Mucci
Packit 577717
Packit 577717
	* src/papi_libpfm4_events.c: The build on power6 was warning in a
Packit 577717
	  DEBUG statement because sizeof() returns an int rather than a
Packit 577717
	  long.  So use a cast to avoid this.
Packit 577717
Packit 577717
	* src/perf_events.c: The move to use pid_t for pid values caused
Packit 577717
	  warnings on a --with-debug build due to the lack of a way to
Packit 577717
	  print a pid_t value without a cast.
Packit 577717
Packit 577717
	  This fix adds the proper casts.
Packit 577717
Packit 577717
2011-09-23
Packit 577717
Packit 577717
	* src/papi_libpfm4_events.c: Rename the "perfmon_idx" structure
Packit 577717
	  field the more evocative "libpfm4_idx" value.
Packit 577717
Packit 577717
	  Patch from Phil Mucci
Packit 577717
Packit 577717
	* src/ctests/all_native_events.c: Fix problem where we were passing
Packit 577717
	  a pointer to an EventSet rather than the actual EventSet number
Packit 577717
	  to PAPI_cleanup_eventset().
Packit 577717
Packit 577717
	  Also include some of the cleanups from Phil Mucci's MIPS tree.
Packit 577717
Packit 577717
	* src/: perf_events.c, perf_events.h: Make the perf_event ctl
Packit 577717
	  structure have more explicit data types.
Packit 577717
Packit 577717
	  Patch from Philip Mucci
Packit 577717
Packit 577717
	* src/: cycle.h, linux-common.c, linux-context.h, linux-lock.h,
Packit 577717
	  linux-timer.c, mb.h, papi.h: Add bare minimal MIPS74k support,
Packit 577717
	  enough to compile.
Packit 577717
Packit 577717
	  Patch from Philip Mucci
Packit 577717
Packit 577717
	* src/papi_events.csv: Add MIPS 74k pre-defined events
Packit 577717
Packit 577717
	  Patch by Philip Mucci
Packit 577717
Packit 577717
2011-09-22
Packit 577717
Packit 577717
	* src/ctests/all_native_events.c: Heike's cleanup_eventset work
Packit 577717
	  allows the calling of PAPI_cleanup_eventset with cuda, so
Packit 577717
	  uncomment the eventset cleanup code in all_native_events.
Packit 577717
Packit 577717
	* src/papi.h: Update papi.h to properly detect if being built with
Packit 577717
	  a C99 compiler.
Packit 577717
Packit 577717
	* src/papi_events.csv: Update PAPI_FP_INS event name on amd_fam14h
Packit 577717
	  as it was changed in the most recent libpfm4 merge
Packit 577717
Packit 577717
	* src/libpfm4/: README, config.mk, docs/Makefile,
Packit 577717
	  docs/man3/pfm_get_event_info.3, examples/Makefile,
Packit 577717
	  examples/showevtinfo.c, include/Makefile,
Packit 577717
	  include/perfmon/perf_event.h, lib/Makefile, lib/pfmlib_common.c,
Packit 577717
	  lib/pfmlib_gen_mips64_priv.h, lib/pfmlib_mips.c,
Packit 577717
	  lib/pfmlib_mips_74k.c, lib/pfmlib_mips_perf_event.c,
Packit 577717
	  lib/pfmlib_mips_priv.h, lib/pfmlib_perf_event_pmu.c,
Packit 577717
	  lib/pfmlib_priv.h, lib/events/intel_atom_events.h,
Packit 577717
	  lib/events/intel_core_events.h, lib/events/intel_nhm_events.h,
Packit 577717
	  lib/events/intel_snb_events.h, lib/events/intel_wsm_events.h: Fix
Packit 577717
	  the "conflicts" from the libpfm4 git import
Packit 577717
Packit 577717
	* src/libpfm4/: docs/man3/libpfm_mips_74k.3, tests/validate_arm.c,
Packit 577717
	  tests/validate_mips.c: Initial revision
Packit 577717
Packit 577717
2011-09-21
Packit 577717
Packit 577717
	* src/multiplex.c: Fix problem where we were freeing a
Packit 577717
	  singly-linked list in a for loop, possibly free()ing the
Packit 577717
	  allocation before dereferencing ->next
Packit 577717
Packit 577717
	  Problem reported by coverity tool, via Will Cohen
Packit 577717
Packit 577717
	* src/utils/cost.c: Fixed uninitialized data problem in papi_cost
Packit 577717
Packit 577717
	  Problem reported by coverity tool, via Will Cohen
Packit 577717
Packit 577717
	* src/papi_internal.c: Fix problem where we were copying around
Packit 577717
	  chunks of memory that were not initialized yet.
Packit 577717
Packit 577717
	  Problem reported by coverity tool, via Will Cohen
Packit 577717
Packit 577717
	* src/multiplex.c: Fix two cases where we were dereferencing a
Packit 577717
	  pointer without checking for NULL.
Packit 577717
Packit 577717
	  Problem reported by coverity tool, via Will Cohen
Packit 577717
Packit 577717
	* src/linux-memory.c: We were opening files but not properly
Packit 577717
	  closing them if we returned early with an error condition.
Packit 577717
Packit 577717
	  Problem reported by coverity tool, via Will Cohen
Packit 577717
Packit 577717
	* src/linux-common.c: The coverity tool noticed that we allocate
Packit 577717
	  and populate a cpu node info structure, but we never pass any
Packit 577717
	  info on this structure outside of the cpu detection routine, in
Packit 577717
	  effect leaking the allocation.
Packit 577717
Packit 577717
	  For now just comment out this code as it is not used by anyone.
Packit 577717
Packit 577717
	  Problem reported by coverity tool, via Will Cohen
Packit 577717
Packit 577717
	* src/: papi.c, papi_libpfm3_events.c, perfctr-x86.c: The coverity
Packit 577717
	  checker was reporting we forgot to fclose() /proc/cpuinfo in
Packit 577717
	  papi.c
Packit 577717
Packit 577717
	  The bigger question, is why were we unconditionally trying to
Packit 577717
	  open /proc/cpuinfo in generic code in papi.c anyway?
Packit 577717
Packit 577717
	  Turns out it was to set the event masks properly for itanium and
Packit 577717
	  p4.
Packit 577717
Packit 577717
	  The platform code sets CPU vendor and family for us though, so if
Packit 577717
	  we just make the event mask code use those values then we don't
Packit 577717
	  have to open cpuinfo.  This also means that non-Linux users with
Packit 577717
	  the misfortune of running on a P4 might actually work too.
Packit 577717
Packit 577717
	* src/: papi_internal.c, papi_libpfm_presets.c: In various places
Packit 577717
	  we were using MAX_COUNTER_TERMS (defined by substrate) rather
Packit 577717
	  than PAPI_MAX_COUNTER_TERMS (a papi predefined event define).
Packit 577717
	  This could cause buffer overruns.
Packit 577717
Packit 577717
	  This fixes things, though really we shouldn't have such similar
Packit 577717
	  names for different defines.
Packit 577717
Packit 577717
	  Problem reported by coverity tool, via Will Cohen
Packit 577717
Packit 577717
	* src/multiplex.c: Avoid case where we could have been
Packit 577717
	  dereferencing a NULL pointer in MPX_stop()
Packit 577717
Packit 577717
	  Reported by coverity tool, via Will Cohen
Packit 577717
Packit 577717
	* src/papi.c: Fix problem where thread and cpu could be
Packit 577717
	  dereferenced as NULL in PAPI_start()
Packit 577717
Packit 577717
	  Reported by coverity tool, via Will Cohen
Packit 577717
Packit 577717
	* src/papi_events.csv: Update the AMD Family 14h (Bobcat)
Packit 577717
	  pre-defined events.
Packit 577717
Packit 577717
	  It turns out they are different enough from 10h that they need
Packit 577717
	  their own category.
Packit 577717
Packit 577717
	  In going through the Fam14h BKDG it turns out that Bobcat has a
Packit 577717
	  really nice set of events available, especially for
Packit 577717
	  Floating-Point/SSE but also memory bandwidth.
Packit 577717
Packit 577717
	  With this change, all of the ctests pass on a Bobcat machine.
Packit 577717
Packit 577717
	* src/: configure, configure.in: Recent Ubuntu versions use the ld
Packit 577717
	  flag --as-needed by default.
Packit 577717
Packit 577717
	  This breaks the PAPI configure step for the libdl check, as the
Packit 577717
	  --as-needed flag enforces the rule that libraries (in this case
Packit 577717
	  -ldl)   must come after the object files on the command line, not
Packit 577717
	  before.
Packit 577717
Packit 577717
	  The fix for this is easy, the libdl check was wrongly sticking
Packit 577717
	  -ldl in LDFLAGS rather than in LIBS.	Putting it in LIBS   makes
Packit 577717
	  things work as expected.
Packit 577717
Packit 577717
	  You can see here:
Packit 577717
	  http://www.gentoo.org/proj/en/qa/asneeded.xml
Packit 577717
Packit 577717
	  For more info on this issue than you probably ever want to know.
Packit 577717
Packit 577717
2011-09-19
Packit 577717
Packit 577717
	* src/: ctests/Makefile, ftests/Makefile, utils/Makefile: When
Packit 577717
	  building testlib dependencies from ctests/ ftests/ and utils/
Packit 577717
	  call $(MAKE) and not make, this should fix aix.
Packit 577717
Packit 577717
2011-09-14
Packit 577717
Packit 577717
	* src/: aix.c, freebsd.c, linux-bgp.c, papi_vector.c,
Packit 577717
	  perf_events.c, perfctr-ppc64.c, perfctr-x86.c, perfmon-ia64.c,
Packit 577717
	  perfmon.c, solaris-niagara2.c, solaris-ultra.c,
Packit 577717
	  components/acpi/linux-acpi.c,
Packit 577717
	  components/coretemp/linux-coretemp.c,
Packit 577717
	  components/coretemp_freebsd/coretemp_freebsd.c,
Packit 577717
	  components/example/example.c,
Packit 577717
	  components/infiniband/linux-infiniband.c,
Packit 577717
	  components/lmsensors/linux-lmsensors.c,
Packit 577717
	  components/lustre/linux-lustre.c, components/mx/linux-mx.c,
Packit 577717
	  components/net/linux-net.c, win2k/substrate/win32.c,
Packit 577717
	  win2k/substrate/winpmc-p3.c: Change initialization of function
Packit 577717
	  pointer cleanup_eventset() from vec_int_dummy to vec_int_ok_dummy
Packit 577717
	  so that it returns PAPI_OK by default. Roll back initialization
Packit 577717
	  for every substrate. AGAIN, keep an eye on builtbot.
Packit 577717
Packit 577717
	* src/libpfm4/lib/: pfmlib_mips.c, pfmlib_mips_74k.c,
Packit 577717
	  pfmlib_mips_perf_event.c, pfmlib_mips_priv.h,
Packit 577717
	  events/mips_74k_events.h: Merged with HEAD, still passing all
Packit 577717
	  tests
Packit 577717
Packit 577717
2011-09-13
Packit 577717
Packit 577717
	* src/papi_libpfm4_events.c: The libpfm4 code was doing a full call
Packit 577717
	  to	pfm_get_os_event_encoding() during every call to
Packit 577717
	  update_control_state().
Packit 577717
Packit 577717
	  This is unnecessary, as we can call pfm_get_os_event_encoding()
Packit 577717
	  once	 at event creation time and cache the results.	There's no
Packit 577717
	  need	 to call it each update_control_state(), as that is called
Packit 577717
	   during PAPI_start() and thus relatively time critical.
Packit 577717
Packit 577717
	* src/run_tests.sh: Missed a $
Packit 577717
Packit 577717
	* src/: run_tests.sh, components/example/tests/HelloWorld.c: Update
Packit 577717
	  run_tests.sh to run component tests, and update the example test
Packit 577717
	  to act more like a ctest.
Packit 577717
Packit 577717
	* src/components/example/example.c: Fix warnings generated by the
Packit 577717
	  example component.
Packit 577717
Packit 577717
	* src/: Makefile.inc, components/Makefile_comp_tests,
Packit 577717
	  ctests/Makefile, ctests/do_loops.c, ctests/dummy.c,
Packit 577717
	  ctests/papi_test.h, ctests/test_utils.c, ctests/test_utils.h,
Packit 577717
	  ftests/Makefile, testlib/Makefile, testlib/do_loops.c,
Packit 577717
	  testlib/dummy.c, testlib/papi_test.h, testlib/test_utils.c,
Packit 577717
	  testlib/test_utils.h, utils/Makefile: ctests, ftests, utils, and
Packit 577717
	  the component tests were all using some files in ctests.
Packit 577717
Packit 577717
	  These weren't being built when --with-no-cpu-counters was
Packit 577717
	  enabled, so the PAPI build was breaking when that was enabled as
Packit 577717
	  well as a component.
Packit 577717
Packit 577717
	  Move the shared files to their own directory, testlib Then update
Packit 577717
	  all the users to look in the right place.
Packit 577717
Packit 577717
	  After this commit you might need to do a "cvs -d update" to make
Packit 577717
	  sure you get the new subdirectory.
Packit 577717
Packit 577717
	* src/: configure, configure.in: When compiling with
Packit 577717
	  --with-no-cpu-counters configure would report the platform as
Packit 577717
	  linux-perfctr-x86.  This changes it to report as
Packit 577717
	  linux-no-counters
Packit 577717
Packit 577717
2011-09-12
Packit 577717
Packit 577717
	* src/: aix.c, freebsd.c, linux-bgp.c, perf_events.c,
Packit 577717
	  perfctr-ppc64.c, perfctr-x86.c, perfmon-ia64.c, perfmon.c,
Packit 577717
	  solaris-niagara2.c, solaris-ultra.c,
Packit 577717
	  components/acpi/linux-acpi.c,
Packit 577717
	  components/coretemp/linux-coretemp.c,
Packit 577717
	  components/coretemp_freebsd/coretemp_freebsd.c,
Packit 577717
	  components/example/example.c,
Packit 577717
	  components/infiniband/linux-infiniband.c,
Packit 577717
	  components/lmsensors/linux-lmsensors.c,
Packit 577717
	  components/lustre/linux-lustre.c, components/mx/linux-mx.c,
Packit 577717
	  components/net/linux-net.c, win2k/substrate/win32.c,
Packit 577717
	  win2k/substrate/winpmc-p3.c: Initialize new function pointer
Packit 577717
	  cleanup_eventset() for every substrate. Keep an eye on builtbot.
Packit 577717
Packit 577717
	* src/components/cuda/: linux-cuda.c, linux-cuda.h: Cannot override
Packit 577717
	  void* definitions from PAPI framework layer (e.g.
Packit 577717
	  hwd_control_state_t) with typedefs to conform to PAPI Component
Packit 577717
	  layer code if this technique has already been used in another
Packit 577717
	  substrate (e.g. perfctr-x86). Or short: #undef and typedef can't
Packit 577717
	  be done twice.
Packit 577717
Packit 577717
	* src/perf_events.c: Fix bug caused by forgetting to drop the
Packit 577717
	  stream name when converting a fprintf() into a SUBDBG()
Packit 577717
Packit 577717
	* src/papi_libpfm_presets.c: Patch from William Cohen fixing a
Packit 577717
	  potential problem found by a static analysis tool where we could
Packit 577717
	  possibly pass a NULL pointer to free_notes().
Packit 577717
Packit 577717
	* src/papi_libpfm_presets.c: Some memory leak fixes made to libpfm3
Packit 577717
	  papi_pfm_events.c by Robert Richter were lost when the
Packit 577717
	  libpfm4/libpfm4 presets merge was done.
Packit 577717
Packit 577717
	  This re-applies these fixes.
Packit 577717
Packit 577717
2011-09-10
Packit 577717
Packit 577717
	* src/run_tests.sh: Cleaned up old comment regarding CUDA pre-4.0
Packit 577717
	  when it was not possible to access a GPU from multiple CPU
Packit 577717
	  threads.
Packit 577717
Packit 577717
	* src/: papi.c, papi_protos.h, papi_vector.c, papi_vector.h,
Packit 577717
	  components/README, components/cuda/linux-cuda.c,
Packit 577717
	  components/cuda/linux-cuda.h: Deleted function pointer
Packit 577717
	  destroy_eventset from the PAPI vector table, and added
Packit 577717
	  cleanup_eventset instead. PAPI_destroy_eventset() requires an
Packit 577717
	  empty EventSet. Hence, usually PAPI_cleanup_eventset() is called
Packit 577717
	  before PAPI_destroy_eventset(); which also sets the CompIdx to
Packit 577717
	  -1. This means, PAPI_destroy_eventset() won't have any knowledge
Packit 577717
	  about components. However, in order to disable CUDA eventGroups
Packit 577717
	  and to free perfmon hardware on the GPU, knowledge about the CUDA
Packit 577717
	  component index is required. Hence, I replaced
Packit 577717
	  CUDA_destroy_eventset() with CUDA_cleanup_eventset() in the CUDA
Packit 577717
	  component. NOTE: Please make sure you call
Packit 577717
	  PAPI_cleanup_eventset() before calling PAPI_shutdown().
Packit 577717
Packit 577717
2011-09-09
Packit 577717
Packit 577717
	* src/: papi_protos.h, papi_vector.c, papi_vector.h,
Packit 577717
	  components/cuda/linux-cuda.c, components/cuda/linux-cuda.h: CUDA
Packit 577717
	  component is now thread-safe. Starting in CUDA 4.0, multiple CPU
Packit 577717
	  threads can access the same CUDA context. This is a much easier
Packit 577717
	  programming model then pre-4.0 as threads - using the same CUDA
Packit 577717
	  context - can share memory, data, etc. Note, it's possible to
Packit 577717
	  create a different CUDA context for each thread, but then we are
Packit 577717
	  likely running into a limitation that only one context can be
Packit 577717
	  profiled at a time.
Packit 577717
Packit 577717
2011-09-07
Packit 577717
Packit 577717
	* src/ctests/: do_loops.c, test_utils.c: Apply fixes to problems
Packit 577717
	  noticed by a static analysis tool.
Packit 577717
Packit 577717
	  Provided by William Cohen at RedHat
Packit 577717
Packit 577717
	* src/papi_events.csv: Update SandyBridge preset events.
Packit 577717
Packit 577717
	  These were provided by Michel Brown at Bull
Packit 577717
Packit 577717
	* src/libpfm4/lib/: pfmlib_gen_mips64.c, pfmlib_mips.c,
Packit 577717
	  pfmlib_mips_74k.c, pfmlib_mips_perf_event.c, pfmlib_mips_priv.h,
Packit 577717
	  events/gen_mips64_events.h, events/mips_74k_events.h: MIPS 74K
Packit 577717
	  little endian perf event support, requires 3.0.3+ kernel
Packit 577717
Packit 577717
2011-09-06
Packit 577717
Packit 577717
	* src/perf_events.c: The warning I had print on nmi_watchdog being
Packit 577717
	  found was a bit much, make it a SUBDBG() call instead.
Packit 577717
Packit 577717
	  I do wish there were a way to notify the user more visibly,
Packit 577717
	  because losing a counter (when you might only have 4 total to
Packit 577717
	  begin with) is a big deal, and most Linux vendors are starting to
Packit 577717
	  ship kernels with the nmi_watchdog enabled.
Packit 577717
Packit 577717
	* src/: linux-common.c, linux-common.h, perf_events.c: On newer
Packit 577717
	  Linux kernels (2.6.34+) the nmi_watchdog counter can	 steal one
Packit 577717
	  of the counters, reducing by one the total available.
Packit 577717
Packit 577717
	  There's a bug in Linux where if you try to use the full number of
Packit 577717
	    counters on such a system with a group leader, the
Packit 577717
	  sys_perf_open()   call will succeed only to fail at read time.
Packit 577717
	  (instead of the proper   error code at open time).
Packit 577717
Packit 577717
	  This patch attempts to work around this issue by detecting if   a
Packit 577717
	  watchdog timer is being used, and in that case re-use the
Packit 577717
	  existing KERNEL_CHECKS_SCHEDUABILITY_UPON_OPEN bugfix code.
Packit 577717
Packit 577717
	* src/papi_events.csv: We were missing a proper libpfm4 interlagos
Packit 577717
	  CPU name in the papi_events.csv file
Packit 577717
Packit 577717
2011-09-02
Packit 577717
Packit 577717
	* src/libpfm4/: include/perfmon/perf_event.h, lib/Makefile,
Packit 577717
	  lib/pfmlib_intel_nhm_unc.c, lib/pfmlib_intel_x86.c,
Packit 577717
	  lib/pfmlib_intel_x86_priv.h, lib/pfmlib_priv.h,
Packit 577717
	  lib/events/amd64_events_fam10h.h, lib/events/amd64_events_k7.h,
Packit 577717
	  lib/events/amd64_events_k8.h, lib/events/intel_atom_events.h,
Packit 577717
	  lib/events/intel_core_events.h,
Packit 577717
	  lib/events/intel_coreduo_events.h, lib/events/intel_nhm_events.h,
Packit 577717
	  lib/events/intel_nhm_unc_events.h, lib/events/intel_p6_events.h,
Packit 577717
	  lib/events/intel_snb_events.h, lib/events/intel_wsm_events.h,
Packit 577717
	  lib/events/intel_wsm_unc_events.h,
Packit 577717
	  lib/events/intel_x86_arch_events.h: Fix "conflicts" from the
Packit 577717
	  libpfm4 import
Packit 577717
Packit 577717
	* src/papi_libpfm4_events.c: Explicitly set num_native_events to
Packit 577717
	  zero at init time.
Packit 577717
Packit 577717
	  Somehow the value was surviving fork/exec and making the
Packit 577717
	  fork/exec test cases fail on a recent Debian system.
Packit 577717
Packit 577717
	* src/perf_events.c: Set FD_CLOEXEC on the overflow signal handler
Packit 577717
	  fd.
Packit 577717
Packit 577717
	  Otherwise if we exec() with overflow enabled, the exec'd process
Packit 577717
	  will quickly die due to lack of signal handler.
Packit 577717
Packit 577717
	  This patch is needed due to a change in behavior in Linux 3.0.
Packit 577717
Packit 577717
	  Mark Krentel first noticed this problem.
Packit 577717
Packit 577717
	* src/: Rules.perfctr-pfm, Rules.pfm, Rules.pfm4_pe, Rules.pfm_pe:
Packit 577717
	  Remove the "unexport CFLAGS" lines from the Rules files.
Packit 577717
Packit 577717
	* src/: multiplex.c, papi_internal.c, utils/component.c: Fix a few
Packit 577717
	  warnings reported by gcc-4.6
Packit 577717
Packit 577717
	* src/: configure, configure.in: Override auto-detection of
Packit 577717
	  substrate if the user specifies what they want to build with.
Packit 577717
	  This allows building perfctr and perfmon2 PAPI on systems
Packit 577717
	  auto-detected as having perf_event support.
Packit 577717
Packit 577717
	* src/: configure, configure.in: Add a "--with-libpfm3" argument to
Packit 577717
	  configure that lets us specify libpfm3 for testing purposes.
Packit 577717
Packit 577717
	* src/solaris-niagara2.c: Fix solaris niagara2 build problems
Packit 577717
	  reported by tigrage on the PAPI forum.
Packit 577717
Packit 577717
2011-08-30
Packit 577717
Packit 577717
	* src/configure: Regen
Packit 577717
Packit 577717
2011-08-29
Packit 577717
Packit 577717
	* src/configure.in: Check for a requested interface to tweak build
Packit 577717
	  flags
Packit 577717
Packit 577717
	* src/: configure, configure.in: Last bit for cross compiling...
Packit 577717
Packit 577717
	* src/: configure, configure.in: Better double quotes
Packit 577717
Packit 577717
	* src/: configure, configure.in: There can be only 1. (choice of
Packit 577717
	  perfctr, perfmon or perf events)
Packit 577717
Packit 577717
	* src/: configure, configure.in: Further refinement of the
Packit 577717
	  combinations of --with-perfctr --with-perfmon and
Packit 577717
	  --with-perf-events
Packit 577717
Packit 577717
	  True autotools cross not yet supported until we move to automake.
Packit 577717
Packit 577717
	  I did trick it into doing a cross compile with...  # ARCH=mips
Packit 577717
	  CC=scgcc ./configure --with-arch=mips
Packit 577717
	  --host=mips64el-gentoo-linux-gnu- --with-ffsll --with-libpfm4 --w
Packit 577717
	  ith-perf-events --with-virtualtimer=times
Packit 577717
	  --with-walltimer=gettimeofday --with-tls=__thread --with-CPU=mips
Packit 577717
	  # cross compiling should work differently...
Packit 577717
Packit 577717
	  Wow, do I hate specifying mips in 3 places...
Packit 577717
Packit 577717
	* src/: config.h.in, configure, configure.in: Some fixes for cross
Packit 577717
	  compiling and not including x86_cache_info.c when not ensured an
Packit 577717
	  x86.
Packit 577717
Packit 577717
	* src/Makefile.inc: Surround component tests and cleanup recipies
Packit 577717
	  with a conditional, the version of sh that our aix machine has
Packit 577717
	  does not handle	   for i in {Empty set};
Packit 577717
Packit 577717
	  treating it as a syntax error.
Packit 577717
Packit 577717
	  NOTE: This requires gnu make, my shell-foo couldn't make sh
Packit 577717
	  happy, so for now gnu conditionals!
Packit 577717
Packit 577717
	* ChangeLogP414.txt, RELEASENOTES.txt: Update Release Notes and add
Packit 577717
	  ChangeLog for PAPI 4.1.4.
Packit 577717
Packit 577717
	* src/configure: Rebuild from configure.in with version number bump
Packit 577717
	  to 4.1.4 in advance of pending internal vendor release for Cray.
Packit 577717