Blame ChangeLogP421.txt

Packit 577717
2012-02-13
Packit 577717
Packit 577717
	* src/components/net/linux-net.c: Repairing more coverity warnings.
Packit 577717
Packit 577717
2012-02-11
Packit 577717
Packit 577717
	* src/windows-common.c: Missed an instance of CPUs yesterday.
Packit 577717
Packit 577717
	* src/: papi_internal.c, threads.c: This changes fixes two race
Packit 577717
	  conditions that are probably the cause of the pthrtough
Packit 577717
	  double-free error.
Packit 577717
Packit 577717
	  When freeing a thread, we remove and free all eventsets belonging
Packit 577717
	  to that thread.  This could race with the thread itself removing
Packit 577717
	  the evenset, causing some ESI fields to be freed twice.
Packit 577717
Packit 577717
	  The problem was found by using the Valgrind 3.8 Helgrind tool
Packit 577717
Packit 577717
	    valgrind --tool=helgrind --free-is-write=yes ctests/pthrtough
Packit 577717
Packit 577717
	  In order for Helgrind to work, I had to temporarily modify PAPI
Packit 577717
	  to use POSIX pthread mutexes for locking.  Is there any reason we
Packit 577717
	  don't use these all the time?
Packit 577717
Packit 577717
2012-02-10
Packit 577717
Packit 577717
	* src/utils/: avail.c, component.c, event_chooser.c,
Packit 577717
	  native_avail.c: ix one more case of "CPU's" in the print header
Packit 577717
	  code.
Packit 577717
Packit 577717
	  Also remove the extraneous	The following correspond to fields
Packit 577717
	  in the PAPI_event_info_t structure.  message
Packit 577717
Packit 577717
	* src/: testlib/papi_test.h, testlib/test_utils.c,
Packit 577717
	  ctests/all_native_events.c, ctests/calibrate.c,
Packit 577717
	  ctests/code2name.c, ctests/hwinfo.c: Fix one more case of "CPU's"
Packit 577717
	  in the print header code.
Packit 577717
Packit 577717
	  Also remove the extraneous	The following correspond to fields
Packit 577717
	  in the PAPI_event_info_t structure.  message
Packit 577717
Packit 577717
	* src/buildbot_configure_with_components.sh: take infiniband out of
Packit 577717
	  the buildbot test.
Packit 577717
Packit 577717
	* src/: x86_cache_info.c, components/coretemp/linux-coretemp.c,
Packit 577717
	  components/lmsensors/linux-lmsensors.c,
Packit 577717
	  components/lustre/linux-lustre.c, components/net/linux-net.c,
Packit 577717
	  utils/event_chooser.c: Fix coverity errors reported by Will
Packit 577717
	  Cohen.
Packit 577717
Packit 577717
	* src/: aix.c, any-proc-null.c, linux-common.c, papi.c, papi.h,
Packit 577717
	  papivi.h, solaris-niagara2.c, solaris-ultra.c,
Packit 577717
	  ctests/clockres_pthreads.c: Address Redhat bug 785975.  The
Packit 577717
	  plural of CPU appears to be CPUs
Packit 577717
Packit 577717
	* src/Makefile.inc: Patch to cleanup dependencies, allowing for
Packit 577717
	  parallel makes.  Patch due to Will Cohen from redhat
Packit 577717
Packit 577717
2012-02-09
Packit 577717
Packit 577717
	* src/buildbot_configure_with_components.sh: Add infiniband and mx
Packit 577717
	  component to buildbot component tests.
Packit 577717
Packit 577717
	* src/components/net/tests/: net_values_by_code.c,
Packit 577717
	  net_values_by_name.c: Apply patch suggested by Will Cohen to
Packit 577717
	  check for system return values.
Packit 577717
Packit 577717
	* src/components/lmsensors/linux-lmsensors.h: Added missing string
Packit 577717
	  header
Packit 577717
Packit 577717
2012-02-08
Packit 577717
Packit 577717
	* man/... : update man pages one more time for 4.2.1
Packit 577717
	  release
Packit 577717
Packit 577717
	* release_procedure.txt: Make sure generated html has papi group
Packit 577717
	  id.
Packit 577717
Packit 577717
2012-02-07
Packit 577717
Packit 577717
	* src/multiplex.c: Fix the @file matching multiple files warning.
Packit 577717
Packit 577717
	* src/components/README: Cleanup doxygen errors.
Packit 577717
Packit 577717
	* doc/Doxyfile-html: Typo introduced by the last commit.
Packit 577717
Packit 577717
	* doc/Doxyfile-html: Exclude linux-bgp.c from doxygen.
Packit 577717
Packit 577717
	* doc/Doxyfile-html: Make sure the component README file gets
Packit 577717
	  included in doxygen.
Packit 577717
Packit 577717
	* src/components/coretemp_freebsd/coretemp_freebsd.c: Cleanup
Packit 577717
	  doxygen warnings in freebsd coretemp component.
Packit 577717
Packit 577717
	* src/papi.h: Cleanup some doxygen warnings related to the
Packit 577717
	  groupings.
Packit 577717
Packit 577717
	* src/components/example/example.c: fix doxygen warning in the
Packit 577717
	  example component
Packit 577717
Packit 577717
	* doc/Doxyfile-html: Remove some cruft from doxygen config file.
Packit 577717
Packit 577717
	  This addresses the warning about dot not found at /sw/bin/dot .
Packit 577717
Packit 577717
	* src/components/: infiniband/linux-infiniband.c,
Packit 577717
	  infiniband/linux-infiniband.h, cuda/linux-cuda.c,
Packit 577717
	  cuda/linux-cuda.h: Cleaned up some doxygen issues
Packit 577717
Packit 577717
	* src/components/lmsensors/linux-lmsensors.c: Removed long
Packit 577717
	  forgotten debug outputs
Packit 577717
Packit 577717
	* src/papi_libpfm4_events.c: Fix minor doxygen typos.
Packit 577717
Packit 577717
	* src/components/vmware/vmware.c: Add params for doxygen
Packit 577717
Packit 577717
	* man/... : update man pages
Packit 577717
Packit 577717
2012-02-06
Packit 577717
Packit 577717
	* doc/Doxyfile-man1: Fix a typo in a doxygen config file.
Packit 577717
Packit 577717
2012-02-03
Packit 577717
Packit 577717
	* release_procedure.txt, doc/Doxyfile, doc/Doxyfile-everything,
Packit 577717
	  doc/Doxyfile-html, doc/Doxyfile.utils, doc/Doxyfile-man1,
Packit 577717
	  doc/Doxyfile-man3, doc/Makefile, doc/doxygen_procedure.txt:
Packit 577717
	  Rework the doxygen configuration files.
Packit 577717
Packit 577717
	* RELEASENOTES.txt: Update for the impending release.
Packit 577717
Packit 577717
	* ChangeLogP421.txt, RELEASENOTES.txt: Updates for the impending
Packit 577717
	  release.
Packit 577717
Packit 577717
2012-02-02
Packit 577717
Packit 577717
	* src/: papi.c, papi.h: Minor tweaks for doxygen errors
Packit 577717
Packit 577717
2012-02-01
Packit 577717
Packit 577717
	* src/components/lmsensors/: Rules.lmsensors, configure.in: Fixed
Packit 577717
	  configure error message and rules link error for shared object
Packit 577717
	  linking. Thanks Will Cohen.
Packit 577717
Packit 577717
	* src/components/appio/Rules.appio: Correct pathing
Packit 577717
Packit 577717
	* src/ctests/api.c: One minor tiny fix to check for PAPI_ENOEVNT
Packit 577717
	  when testing PAPI_flops. If PAPI_FP_OPS does not exist on the
Packit 577717
	  processor (like many of em), then this tests fails.
Packit 577717
Packit 577717
2012-01-31
Packit 577717
Packit 577717
	* src/ctests/multiattach.c: Increase acceptance criteria for
Packit 577717
	  cycles.
Packit 577717
Packit 577717
	* src/Makefile.in, src/configure, src/configure.in, src/papi.h,
Packit 577717
	  doc/Doxyfile, doc/Doxyfile-everything, doc/Doxyfile.utils,
Packit 577717
	  papi.spec: Update version number to 4.2.1 in preparation for
Packit 577717
	  release.
Packit 577717
Packit 577717
	* src/ctests/prof_utils.c: Correct a warning on 32bit builds about
Packit 577717
	  casting caddr_t to (long long)
Packit 577717
Packit 577717
	  Specifically: prof_utils.c:234: warning: cast from pointer to
Packit 577717
	  integer of different size prof_utils.c:248: warning: cast from
Packit 577717
	  pointer to integer of different size prof_utils.c:262: warning:
Packit 577717
	  cast from pointer to integer of different size
Packit 577717
Packit 577717
	  We first cast to unsigned long and then on to long long.  ( This
Packit 577717
	  maybe overkill, but its for a printf format string )
Packit 577717
Packit 577717
2012-01-30
Packit 577717
Packit 577717
	* release_procedure.txt: Add the correct path for doxygen on ICL
Packit 577717
	  machines.
Packit 577717
Packit 577717
	* src/papi_events.csv: Modify Intel Sandybridge PAPI_FP_OPS and
Packit 577717
	  PAPI_FP_INS events to not count x87 fp instructions.
Packit 577717
Packit 577717
	  The problem is that the current predefines were made by adding 5
Packit 577717
	  events.  With the NMI watchdog stealing an event and/or
Packit 577717
	  hyperthreading reducing the numbr of available counters by half,
Packit 577717
	  we just couldn't fit.
Packit 577717
Packit 577717
	  This now raises the potential for people using x87-compiled
Packit 577717
	  floating point on Sandybridge and getting 0 FP_OPS.  This is only
Packit 577717
	  likely if running a 32-bit kernel and *not* compiling your code
Packit 577717
	  with -msse.
Packit 577717
Packit 577717
	  A long-term solution might be trying to find a better set of FP
Packit 577717
	  predefines for sandybridge.
Packit 577717
Packit 577717
	* src/components/: lustre/linux-lustre.c, mx/linux-mx.c: Some
Packit 577717
	  really minor cleanups to the lustre and mx components.
Packit 577717
Packit 577717
2012-01-28
Packit 577717
Packit 577717
	* src/components/example/: example.c, tests/example_basic.c: Update
Packit 577717
	  example component
Packit 577717
Packit 577717
	  Cleans up code, adds some more documentation, adds counter write
Packit 577717
	  support.
Packit 577717
Packit 577717
2012-01-27
Packit 577717
Packit 577717
	* src/papi_user_events.c: Minor cleanups for user events.
Packit 577717
Packit 577717
	* src/libpfm4/: README, include/perfmon/pfmlib.h, lib/Makefile,
Packit 577717
	  lib/pfmlib_amd64.c, lib/pfmlib_common.c, lib/pfmlib_priv.h: Fix
Packit 577717
	  "conflicts" in git import of libpfm4.
Packit 577717
Packit 577717
	* src/libpfm4/lib/: pfmlib_amd64_fam11h.c,
Packit 577717
	  events/amd64_events_fam11h.h: Initial revision
Packit 577717
Packit 577717
2012-01-26
Packit 577717
Packit 577717
	* src/papi_fwrappers.c: Escape the include directives in the
Packit 577717
	  documentation.
Packit 577717
Packit 577717
	  (Cleans up doxygen )
Packit 577717
Packit 577717
	* src/components/README: Adding vmware to component README
Packit 577717
Packit 577717
	* src/components/vmware/: Makefile.vmware.in,
Packit 577717
	  PAPI-VMwareComponentDocument.pdf, Rules.vmware,
Packit 577717
	  VMwareComponentDocument.txt, configure, configure.in, vmware.c,
Packit 577717
	  vmware.h: merge vmware branch to head
Packit 577717
Packit 577717
	* src/perf_events.c: Set fast_counter_read back to 0 on x86/x86_64
Packit 577717
	  perf_events, as currently rdpmc counter access is not supported.
Packit 577717
Packit 577717
	  There are patches floating around that enable this (although
Packit 577717
	  performance is still a long way from perfctr) but they will  not
Packit 577717
	  likely be merged for a while now, and the perf_events substrate
Packit 577717
	  will require a lot of extra code to support it once it does make
Packit 577717
	  it into a shipping kernel.
Packit 577717
Packit 577717
	* src/buildbot_configure_with_components.sh: Remove acpi from the
Packit 577717
	  buildbot configure script.
Packit 577717
Packit 577717
2012-01-25
Packit 577717
Packit 577717
	* src/components/mx/: Makefile.mx.in, Rules.mx, configure,
Packit 577717
	  configure.in, linux-mx.c, linux-mx.h, tests/Makefile,
Packit 577717
	  tests/mx_basic.c, tests/mx_elapsed.c, utils/fake_mx_counters.c,
Packit 577717
	  utils/sample_output: Re-write of the MX component
Packit 577717
Packit 577717
	  + Add tests + Modernize code + Remove the need to run ./configure
Packit 577717
	  in the mx directory + Add fake mx_counters program that lets you
Packit 577717
	  test component   on machine without myrinet installed
Packit 577717
Packit 577717
	* src/components/: README, acpi/Rules.acpi,
Packit 577717
	  acpi/linux-acpi-memory.c, acpi/linux-acpi.c, acpi/linux-acpi.h:
Packit 577717
	  Remove the ACPI component.
Packit 577717
Packit 577717
	  It was one of the oldest components and needed a lot of cleanup
Packit 577717
	  work, and it turns out that the main useful event it provided
Packit 577717
	  (temperature) isn't available on modern machines/kernels
Packit 577717
	  (coretemp should be used instead).
Packit 577717
Packit 577717
2012-01-23
Packit 577717
Packit 577717
	* src/perf_events.c: Restored Phil's changes that I inadvertently
Packit 577717
	  clobbered with my last commit :(
Packit 577717
Packit 577717
	* src/perf_events.c: Remove a warning about an uninitialized
Packit 577717
	  variable.
Packit 577717
Packit 577717
	* src/utils/: component.c, event_info.c, native_avail.c: Update the
Packit 577717
	  Doxygen comments on these utilities to have the command line
Packit 577717
	  options listed in a list like the other utils.
Packit 577717
Packit 577717
	* src/perf_events.c: More improvements to the read path for
Packit 577717
	  multiplexed counters. Now the case for bad kernel behavior is
Packit 577717
	  built in, and is not required with a #define.
Packit 577717
Packit 577717
	  Basically, there are situations when either enabled or running is
Packit 577717
	  zero but not both. This could result in a divide by 0 in the
Packit 577717
	  worst case, as was observed by Tushar Mohan in papiex. You could
Packit 577717
	  trigger it by doing a read immediately after doing a start with
Packit 577717
	  perf events and use a FORMAT_SCALE argument.
Packit 577717
Packit 577717
	  Now the logic goes, assuming mpxing.
Packit 577717
Packit 577717
	  1) if (running=enabled)	  return raw counter 2) if (running
Packit 577717
	  && enabled)	scale counter by ratio 3) else	warn in debug mode
Packit 577717
	      return raw counter
Packit 577717
Packit 577717
	  Apparently we need a test case that does a read immediately after
Packit 577717
	  a start.  That's a hole.
Packit 577717
Packit 577717
	  Tested on brutus, core2 2.6.36
Packit 577717
Packit 577717
	  Here's the original report.  ------------------- Model string and
Packit 577717
	  code	       : Intel(R) Pentium(R) M processor 1600MHz (9) Linux
Packit 577717
	  thinkpad 2.6.38-02063808-generic #201106040910 SMP Sat Jun 4
Packit 577717
	  10:51:30 UTC 2011 i686 GNU/Linux PAPI Version: 4.2.0.0
Packit 577717
Packit 577717
	  I think I ran into a bug similar to what we ran with MIPS.
Packit 577717
Packit 577717
	  With the latest PAPI (from CVS), on an x86 (32-bit machine), when
Packit 577717
	  using papiex with multiplex with anything more than two events, I
Packit 577717
	  get a floating point exception in PAPI during the PAPI_read call.
Packit 577717
	  On enabling debugging in the substrate, I think the problem is
Packit 577717
	  the same (namely a division by zero, because some event had a
Packit 577717
	  zero time of running):
Packit 577717
Packit 577717
	  libpapiex debug: 24625,0x0,papiex_thread_init_routine Starting
Packit 577717
	  counters with PAPI_start
Packit 577717
	  SUBSTRATE:perf_events.c:pe_enable_counters:953:24625
Packit 577717
	  ioctl(enable): ctx: 0x96a4bc8, fd: 3
Packit 577717
	  SUBSTRATE:perf_events.c:pe_enable_counters:953:24625
Packit 577717
	  ioctl(enable): ctx: 0x96a4bc8, fd: 5 libpapiex debug:
Packit 577717
	  24625,0x0,papiex_thread_init_routine Calling PAPI_lock before
Packit 577717
	  critical section libpapiex debug:
Packit 577717
	  24625,0x0,papiex_thread_init_routine Released PAPI lock libpapiex
Packit 577717
	  debug: 24625,0x0,papiex_start START POINT 0 LABEL libpapiex
Packit 577717
	  debug: 24625,0x0,papiex_start Reading counters (PAPI_read) to get
Packit 577717
	  initial counts SUBSTRATE:perf_events.c:_papi_pe_read:1147:24625
Packit 577717
	  read: fd:  3, tid: 0, cpu: -1, ret: 56
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1148:24625 read: 2 1341021
Packit 577717
	  1341021 SUBSTRATE:perf_events.c:_papi_pe_read:1181:24625
Packit 577717
	  (papi_pe_buffer[3] 33405 * tot_time_enabled 1341021) /
Packit 577717
	  tot_time_running 1341021
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1181:24625
Packit 577717
	  (papi_pe_buffer[5] 44552 * tot_time_enabled 1341021) /
Packit 577717
	  tot_time_running 1341021
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1147:24625 read: fd:  5,
Packit 577717
	  tid: 0, cpu: -1, ret: 40
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1148:24625 read: 1 214777 0
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1181:24625
Packit 577717
	  (papi_pe_buffer[3] 0 * tot_time_enabled 214777) /
Packit 577717
	  tot_time_running 0
Packit 577717
Packit 577717
	  The above debug log is for three events: PAPI_TOT_CYC,
Packit 577717
	  PAPI_TOT_INS and PAPI_L1_DCM. Multiplexing works with two events.
Packit 577717
	  Adding the third (any event), gives this error. Basically, the
Packit 577717
	  floating point exception kills the program, and PAPI_read never
Packit 577717
	  returns.
Packit 577717
Packit 577717
	  I think I know why papiex always hits this bug: It's because
Packit 577717
	  right after starting the counters with PAPI_start, papiex does a
Packit 577717
	  PAPI_read to store the initial values of the counters in a tmp
Packit 577717
	  variable. These are then subtracted from the final counter
Packit 577717
	  values. Should we put a deliberate delay? Of course, the real bug
Packit 577717
	  should be fixed in PAPI.  ----
Packit 577717
Packit 577717
	* src/utils/event_info.c: Major re-write of the papi_xml_event_info
Packit 577717
	  program.  + Remove event code numbers, as they are not stable
Packit 577717
	  run-to-run + Add some Doxygen comments + Remove some wrong
Packit 577717
	  assumptions that could cause potential buffer overflows + Improve
Packit 577717
	  usage information
Packit 577717
Packit 577717
2012-01-20
Packit 577717
Packit 577717
	* src/components/lustre/: Rules.lustre, linux-lustre.c,
Packit 577717
	  linux-lustre.h,
Packit 577717
	  fake_proc/fs/lustre/llite/hpcdata-ffff81022a732800/read_ahead_stats,
Packit 577717
	  fake_proc/fs/lustre/llite/hpcdata-ffff81022a732800/stats,
Packit 577717
	  tests/Makefile, tests/lustre_basic.c: Finish the re-write of the
Packit 577717
	  lustre component.
Packit 577717
Packit 577717
	  It would be nice if someone with access to a machine with a
Packit 577717
	  lustre filesystem could test this for us.
Packit 577717
Packit 577717
	* src/: papi_internal.c, components/lustre/linux-lustre.c: Update
Packit 577717
	  the component initialization code so that it can handle a PAPI
Packit 577717
	  ERROR return gracefully.  Previously there was no way to indicate
Packit 577717
	  initialization failure besides just setting num_native_events to
Packit 577717
	  0.
Packit 577717
Packit 577717
2012-01-19
Packit 577717
Packit 577717
	* src/components/lustre/: linux-lustre.c, linux-lustre.h: First
Packit 577717
	  pass at cleaning up the lustre component.
Packit 577717
Packit 577717
	  It should now properly report no events when no lustre
Packit 577717
	  filesystems are available.
Packit 577717
Packit 577717
2012-01-11
Packit 577717
Packit 577717
	* src/papi_events.csv: Add AMD fam12h support to the events file.
Packit 577717
	  Right now it is just an alias to the similar fam10h event list;
Packit 577717
	  this can be split out if necessary once we find a tester with the
Packit 577717
	  hardware.
Packit 577717
Packit 577717
	* src/libpfm4/: README, docs/man3/pfm_get_event_next.3,
Packit 577717
	  docs/man3/pfm_get_pmu_info.3, include/perfmon/perf_event.h,
Packit 577717
	  include/perfmon/pfmlib.h, lib/Makefile, lib/pfmlib_amd64.c,
Packit 577717
	  lib/pfmlib_amd64_priv.h, lib/pfmlib_common.c,
Packit 577717
	  lib/pfmlib_perf_event.c, lib/pfmlib_priv.h,
Packit 577717
	  lib/events/intel_coreduo_events.h, lib/events/perf_events.h,
Packit 577717
	  perf_examples/Makefile, perf_examples/perf_util.c,
Packit 577717
	  perf_examples/perf_util.h, perf_examples/self.c,
Packit 577717
	  perf_examples/task_smpl.c, perf_examples/x86/bts_smpl.c: Fix
Packit 577717
	  "merge" conflicts with libpfm4 merge.
Packit 577717
Packit 577717
	* src/libpfm4/lib/: pfmlib_amd64_fam12h.c,
Packit 577717
	  events/amd64_events_fam12h.h: Initial revision
Packit 577717
Packit 577717
	* src/papi_libpfm4_events.c: Properly use the  pfm_get_event_next()
Packit 577717
	  iterator to find next event.
Packit 577717
Packit 577717
	  Without this, on AMD Fam10h some events are missed.
Packit 577717
Packit 577717
	  Some events are still missed due to libpfm4 bug, this will be
Packit 577717
	  fixed once I update the libpfm4 tree included with PAPI.
Packit 577717
Packit 577717
	  Note, enumeration fixes like this often break things, so please
Packit 577717
	  test if possible.
Packit 577717
Packit 577717
	* src/papi_events.csv: Update the coreduo (not core2) events.  Most
Packit 577717
	  notably the FP events were wrong.
Packit 577717
Packit 577717
	  This, along with a forthcoming libpfm4 update, make all the
Packit 577717
	  CTESTS pass on an old Yonah coreduo laptop I have.
Packit 577717
Packit 577717
2012-01-05
Packit 577717
Packit 577717
	* src/ctests/api.c: Make the api test actually test PAPI_flops() as
Packit 577717
	  it claims to do, rather than PAPI_flips().
Packit 577717
Packit 577717
	  Patch thanks to: Emilio De Camargo Francesquini
Packit 577717
Packit 577717
	* src/papi_hl.c: Fix some copy-and-paste documentation remnants in
Packit 577717
	  the papi_hl.c file, mostly where it said FLIPS where it meant
Packit 577717
	  FLOPS.
Packit 577717
Packit 577717
2012-01-04
Packit 577717
Packit 577717
	* src/utils/native_avail.c: Update papi_native_avail to *not* print
Packit 577717
	  the event codes, as these are not guaranteed to be stable from
Packit 577717
	  run to run.
Packit 577717
Packit 577717
	  Also fix up the formatting and print some component info too.
Packit 577717
Packit 577717
	  Please try and let me know if you don't like the new output.
Packit 577717
Packit 577717
	* src/: configure, configure.in: Respect a FORCED option in
Packit 577717
	  configure.
Packit 577717
Packit 577717
2011-12-22
Packit 577717
Packit 577717
	* src/Rules.pfm4_pe: Remove perfmon.h from MISCHDRS.
Packit 577717
Packit 577717
2011-12-20
Packit 577717
Packit 577717
	* src/: Rules.perfctr, Rules.perfctr-pfm, Rules.pfm, Rules.pfm4_pe,
Packit 577717
	  Rules.pfm_pe, linux-lock.h, mb.h: Merry Christmas ARM users.
Packit 577717
Packit 577717
	  This patch fixes the SMP ARM issues reported by Harald Servat.
Packit 577717
	  Also, adds proper header dependency checking in the Rules files.
Packit 577717
	  People, please when you add headers, please add them to the
Packit 577717
	  dependency lines so everything gets rebuilt properly.
Packit 577717
Packit 577717
	  New implementation of SMP locks are very pedantic, that is, they
Packit 577717
	  are nost the fastest, but they do use atomics and avoid kernel
Packit 577717
	  intervention.
Packit 577717
Packit 577717
	  Passed on our 2 core ARM v7. All pthreads tests now pass, except
Packit 577717
	  the ones that also fail in the single processor case usually due
Packit 577717
	  to a missing event.
Packit 577717
Packit 577717
	  Samples:
Packit 577717
Packit 577717
	  mucci@panda:~/papi.head/src$ uname -a Linux panda 3.0.0 #2 SMP
Packit 577717
	  Fri Jul 29 16:23:54 EDT 2011 armv7l GNU/Linux
Packit 577717
Packit 577717
	  mucci@panda:~/papi.head/src$ hostname panda
Packit 577717
Packit 577717
	  mucci@panda:~/papi.head/src$ cat /proc/cpuinfo Processor: ARMv7
Packit 577717
	  Processor rev 2 (v7l) processor: 0 BogoMIPS: 2007.19
Packit 577717
Packit 577717
	  processor: 1 BogoMIPS: 1965.18
Packit 577717
Packit 577717
	  Features: swp half thumb fastmult vfp edsp thumbee neon vfpv3 CPU
Packit 577717
	  implementer: 0x41 CPU architecture: 7 CPU variant: 0x1 CPU part:
Packit 577717
	  0xc09 CPU revision: 2
Packit 577717
Packit 577717
	  Hardware: OMAP4 Panda board Revision: 0020 Serial:
Packit 577717
	  0000000000000000
Packit 577717
Packit 577717
	  mucci@panda:~/papi.head/src$ ./ctests/locks_pthreads Creating 2
Packit 577717
	  threads 10000 iterations took 13489 us.  Running 44480 iterations
Packit 577717
	  Expected: 88960 Received: 88960 locks_pthreads.c
Packit 577717
	   PASSED
Packit 577717
Packit 577717
	  mucci@panda:~/papi.head/src$ ./ctests/pthrtough Creating 2
Packit 577717
	  threads for 1000 iterations each of: register create_eventset
Packit 577717
	  destroy_eventset unregister pthrtough.c
Packit 577717
	    PASSED
Packit 577717
Packit 577717
	  mucci@panda:~/papi.head/src$ ./ctests/pthrtough2 Creating 2000
Packit 577717
	  threads for 1 iterations each of: register create_eventset
Packit 577717
	  destroy_eventset unregister Failed to create thread: 238
Packit 577717
	  Continuing test with 237 threads.  pthrtough2.c
Packit 577717
		  PASSED
Packit 577717
Packit 577717
	  mucci@panda:~/papi.head/src$ ./ctests/thrspecific Thread
Packit 577717
	  0x40ae1470 started, specific data is at 0xbea9c6d4 Thread
Packit 577717
	  0x40021000 started, specific data is at 0xbea9c6c4 Thread
Packit 577717
	  0x4244d470 started, specific data is at 0xbea9c6c8 Thread
Packit 577717
	  0x4138d470 started, specific data is at 0xbea9c6d0 Thread
Packit 577717
	  0x41c4d470 started, specific data is at 0xbea9c6cc Entry 0,
Packit 577717
	  Thread 0x41c4d470, Data Pointer 0xbea9c6cc, Value 4000000 Entry
Packit 577717
	  1, Thread 0x40021000, Data Pointer 0xbea9c6c4, Value 500000 Entry
Packit 577717
	  2, Thread 0x40ae1470, Data Pointer 0xbea9c6d4, Value 1000000
Packit 577717
	  Entry 3, Thread 0x4244d470, Data Pointer 0xbea9c6c8, Value
Packit 577717
	  8000000 Entry 4, Thread 0x4138d470, Data Pointer 0xbea9c6d0,
Packit 577717
	  Value 2000000 thrspecific.c			      PASSED
Packit 577717
Packit 577717
	  mucci@panda:~/papi.head/src$ ./ctests/krentel_pthreads
Packit 577717
	  program_time = 6, threshold = 20000000, num_threads = 3
Packit 577717
Packit 577717
	  launched timer in thread 0 launched timer in thread 1 launched
Packit 577717
	  timer in thread 3 launched timer in thread 2 [1] time = 1, count
Packit 577717
	  = 7, iter = 5, rate = 1400.0/Kiter [2] time = 1, count = 7, iter
Packit 577717
	  = 5, rate = 1400.0/Kiter [0] time = 1, count = 7, iter = 5, rate
Packit 577717
	  = 1400.0/Kiter [3] time = 1, count = 7, iter = 5, rate =
Packit 577717
	  1400.0/Kiter [1] time = 2, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [0] time = 2, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [3] time = 2, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [2] time = 2, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [1] time = 3, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [2] time = 3, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [0] time = 3, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [3] time = 3, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [1] time = 4, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [0] time = 4, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [3] time = 4, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [2] time = 4, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [3] time = 5, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [0] time = 5, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [2] time = 5, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [1] time = 5, count = 26, iter = 17, rate =
Packit 577717
	  1529.4/Kiter [2] time = 6, count = 25, iter = 16, rate =
Packit 577717
	  1562.5/Kiter [0] time = 6, count = 27, iter = 17, rate =
Packit 577717
	  1588.2/Kiter done krentel_pthreads.c		     PASSED
Packit 577717
Packit 577717
2011-12-15
Packit 577717
Packit 577717
	* src/papi_libpfm_presets.c: Change PAPI_PERFMON_EVENT_FILE
Packit 577717
	  environment variable name to PAPI_CSV_EVENT_FILE since it's not
Packit 577717
	  just for perfmon anymore.
Packit 577717
Packit 577717
	* src/: configure, configure.in: Open mouth, insert foot; fix
Packit 577717
	  perfctr configure by not testing a library we have not built yet.
Packit 577717
Packit 577717
2011-12-14
Packit 577717
Packit 577717
	* src/: configure, configure.in: Missed one more place where we
Packit 577717
	  tested perfctr != "no"
Packit 577717
Packit 577717
	* src/: configure, configure.in: Fix a typo in the perfctr section;
Packit 577717
	  it was causing a machine to default to perfctr when it had no
Packit 577717
	  performance interface.  ( a centos vm image with a 2.6.18 kernel
Packit 577717
	  )
Packit 577717
Packit 577717
	  Also checks that we actually have perfctr if we specify
Packit 577717
	  --with-perfctr.
Packit 577717
Packit 577717
2011-12-08
Packit 577717
Packit 577717
	* src/components/cuda/: Makefile.cuda.in, Rules.cuda, configure,
Packit 577717
	  configure.in, linux-cuda.c, linux-cuda.h: Added auto-detection of
Packit 577717
	  CUDA version to PAPI CUDA Component. Reason is, the interface has
Packit 577717
	  changed between CUDA/CUPTI 4.0 and 4.1. PAPI now supports both
Packit 577717
	  CUDA versions without any exposure to the users. Configure step
Packit 577717
	  is unchanged and no additional knowledge of which CUDA version is
Packit 577717
	  installed is required.
Packit 577717
Packit 577717
2011-12-03
Packit 577717
Packit 577717
	* src/components/appio/: CHANGES, README, Rules.appio, appio.c,
Packit 577717
	  appio.h, tests/Makefile, tests/appio_list_events.c,
Packit 577717
	  tests/appio_values_by_code.c, tests/appio_values_by_name.c: [no
Packit 577717
	  log message]
Packit 577717
Packit 577717
2011-11-25
Packit 577717
Packit 577717
	* src/linux-timer.c: Fix compilation warning if you specify
Packit 577717
	  --with-walltime=gettimeofday
Packit 577717
Packit 577717
	* src/linux-timer.c: Fix the build on Linux systems using mmtimer
Packit 577717
Packit 577717
	* src/linux-common.c: Update the linux MHz detection code to use
Packit 577717
	  bogoMIPS when there is no MHz field available in /proc/cpuinfo.
Packit 577717
Packit 577717
	  This gives roughly correct MHz on ARM, and the MIPS workaround
Packit 577717
	  should also still work.
Packit 577717
Packit 577717
2011-11-23
Packit 577717
Packit 577717
	* src/components/net/linux-net.c: Fix compile errors in a debug
Packit 577717
	  message.  (pathname didn't exist but we are working on
Packit 577717
	  NET_PROC_FILE)
Packit 577717
Packit 577717
2011-11-22
Packit 577717
Packit 577717
	* src/components/net/: linux-net.c, tests/net_values_by_code.c,
Packit 577717
	  tests/net_values_by_name.c: Change the ping command in the net
Packit 577717
	  tests to not use &> to redirect to NULL.
Packit 577717
Packit 577717
	  This would work on a system with csh, but on systems with a bash
Packit 577717
	  shell this runs ping in the background instead, so the test
Packit 577717
	  finishes before ping can generate any packets.
Packit 577717
Packit 577717
	* src/components/net/linux-net.c: Fix slight bug in the net
Packit 577717
	  component, where a memset() had the wrong arguments.	This made
Packit 577717
	  for weird results in the case where we start/stop quickly enough
Packit 577717
	  that we return the initial data.
Packit 577717
Packit 577717
	* src/components/net/: CHANGES, Makefile.net.in, README, Rules.net,
Packit 577717
	  configure, configure.in, linux-net.c, linux-net.h,
Packit 577717
	  tests/Makefile, tests/net_list_events.c,
Packit 577717
	  tests/net_values_by_code.c, tests/net_values_by_name.c: Replace
Packit 577717
	  net component with updated version written by    Jose Pedro
Packit 577717
	  Oliveira
Packit 577717
Packit 577717
	   * Dynamically detects the network interfaces
Packit 577717
	      (i.e. the ones listed in /proc/net/dev)
Packit 577717
Packit 577717
	  * No longer needs to fork/exec the external ifconfig command and
Packit 577717
		parse its output.  It now reads the Linux kernel network
Packit 577717
	  statistics	 directly from /proc/net/dev.
Packit 577717
Packit 577717
	  * Each network interface now has 16 events instead of 13
Packit 577717
	  (all counters in /proc/net/dev).
Packit 577717
Packit 577717
	  * Adds support for PAPI_event_name_to_code()
Packit 577717
Packit 577717
	  * Adds a couple of small tests/examples
Packit 577717
Packit 577717
2011-11-16
Packit 577717
Packit 577717
	* doc/Doxyfile-everything: Fix the exclude libpfm/perfctr config.
Packit 577717
Packit 577717
2011-11-10
Packit 577717
Packit 577717
	* src/perf_events.c: Only scale when running != enabled.
Packit 577717
Packit 577717
	  Now verified on ig, brutus and the malta
Packit 577717
Packit 577717
	* src/perf_events.c: Further tuneups for mpx'ing.
Packit 577717
Packit 577717
	  Previous commit broke systems with valid return values from
Packit 577717
	  perf_events for running & enabled. My attempt at scaling in long
Packit 577717
	  long world caused an overflow which led to a negative number when
Packit 577717
	  passed up the chain.
Packit 577717
Packit 577717
	  Also consolidated types... best way to avoid this stuff is to
Packit 577717
	  start as the type you are ending as.
Packit 577717
Packit 577717
	  Now we use some better integer scaling...guaranteed within +-0.5%
Packit 577717
	  of the actual scaled value of enabled / running.
Packit 577717
Packit 577717
	  New results on brutus: multiplex1
Packit 577717
Packit 577717
	  case1: Does PAPI_multiplex_init() not break regular operation?
Packit 577717
	  Added PAPI_TOT_CYC Added PAPI_FP_INS case1: PAPI_TOT_CYC
Packit 577717
	  PAPI_FP_INS case1:	     2739865106    600002876
Packit 577717
Packit 577717
	  case2: Does setmpx/add work? Added PAPI_TOT_CYC Added PAPI_FP_INS
Packit 577717
	  case2: PAPI_TOT_CYC  PAPI_FP_INS case2:	  2739678237
Packit 577717
	  600002258
Packit 577717
Packit 577717
	  case3: Does add/setmpx work? Added PAPI_TOT_CYC Added PAPI_FP_INS
Packit 577717
	  case3: PAPI_TOT_CYC  PAPI_FP_INS case3:	  2739847832
Packit 577717
	  600002298
Packit 577717
Packit 577717
	  case4: Does add/setmpx/add work? Added PAPI_TOT_CYC Added
Packit 577717
	  PAPI_FP_INS case4: PAPI_TOT_CYC  PAPI_FP_INS case4:
Packit 577717
	  2737832980	600013404
Packit 577717
Packit 577717
	  case5: Does setmpx/add/add/start/read work? Added PAPI_TOT_CYC
Packit 577717
	  Added PAPI_FP_INS read @start counter[0]: 7106 read @stop
Packit 577717
	  counter[0]: 2740387017 difference  counter[0]: 2740379911  read
Packit 577717
	  @start counter[1]: 0 read @stop  counter[1]: 600017169 difference
Packit 577717
	   counter[1]: 600017169  multiplex1.c
Packit 577717
	  PASSED
Packit 577717
Packit 577717
2011-11-09
Packit 577717
Packit 577717
	* src/components/cuda/linux-cuda.c: For the CUDA Component,
Packit 577717
	  PAPI_read() now accumulates event values. This has to be
Packit 577717
	  explicitly done in PAPI because CUPTI automatically resets all
Packit 577717
	  counter values to 0 after a read. (PAPI_start()/stop() continues
Packit 577717
	  to reset the values to 0)
Packit 577717
Packit 577717
	* src/perf_events.c: Last of the multiplex fixes to perf events.
Packit 577717
	  The root of all evil was this:
Packit 577717
Packit 577717
	  counts[i] =					      ( uint64_t )
Packit 577717
	  ( ( double ) buffer[count_idx] * ( double )
Packit 577717
Packit 577717
	  buffer[get_total_time_enabled_idx(  )] /
Packit 577717
						 ( double )
Packit 577717
Packit 577717
	  buffer[get_total_time_running_idx(  )] ) ; In addition to
Packit 577717
	  improper casting to uints... (papi returns int64s), using
Packit 577717
	  floating point arith is a no-no. Plus this resulted in divide by
Packit 577717
	  zeros...
Packit 577717
Packit 577717
	  Before:
Packit 577717
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1155:12218 read: fd:  3,
Packit 577717
	  tid: 0, cpu: -1, buffer[0-2]: 0x6cba, 0x0, 0x0, ret: 24
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1155:12218 read: fd:  4,
Packit 577717
	  tid: 0, cpu: -1, buffer[0-2]: 0x23, 0x0, 0x0, ret: 24
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1155:12218 read: fd:  3,
Packit 577717
	  tid: 0, cpu: -1, buffer[0-2]: 0x6de72b5d, 0x8ae0fa80, 0x8ae0fa80,
Packit 577717
	  ret: 24 SUBSTRATE:perf_events.c:_papi_pe_read:1155:12218 read:
Packit 577717
	  fd:  4, tid: 0, cpu: -1, buffer[0-2]: 0x4c4b46b, 0x8ae0fa80,
Packit 577717
	  0x8ae0fa80, ret: 24
Packit 577717
Packit 577717
	  So kernel is good, but errors in multiplexed scaling.
Packit 577717
Packit 577717
	  case5: Does setmpx/add/add/start/read work? Added PAPI_TOT_CYC
Packit 577717
	  Added PAPI_FP_INS read @start counter[0]: 9223372034707292159
Packit 577717
	  read @stop  counter[0]: 1843791732 difference  counter[0]:
Packit 577717
	  -9223372032863500427	multiplex1.c
Packit 577717
	  FAILED Line # 389
Packit 577717
Packit 577717
	  With fix:
Packit 577717
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1151:12821 read: fd:  3,
Packit 577717
	  tid: 0, cpu: -1, buffer[0-2]: 0x6782, 0x0, 0x0, ret: 24
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1151:12821 read: fd:  4,
Packit 577717
	  tid: 0, cpu: -1, buffer[0-2]: 0x0, 0x0, 0x0, ret: 24
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_read:1151:12821 read: fd:  3,
Packit 577717
	  tid: 0, cpu: -1, buffer[0-2]: 0x6de725dc, 0x8ae0fa80, 0x8ae0fa80,
Packit 577717
	  ret: 24 SUBSTRATE:perf_events.c:_papi_pe_read:1151:12821 read:
Packit 577717
	  fd:  4, tid: 0, cpu: -1, buffer[0-2]: 0x4c4b400, 0x8ae0fa80,
Packit 577717
	  0x8ae0fa80, ret: 24 read @start counter[0]: 26498 read @stop
Packit 577717
	  counter[0]: 1843865052 difference  counter[0]: 1843838554  read
Packit 577717
	  @start counter[1]: 0 read @stop  counter[1]: 80000000 difference
Packit 577717
	  counter[1]: 80000000
Packit 577717
	  SUBSTRATE:perf_events.c:_papi_pe_update_control_state:1288:12821
Packit 577717
	  Called with count == 0
Packit 577717
	  SUBSTRATE:papi_libpfm4_events.c:_papi_libpfm_shutdown:1178:12821
Packit 577717
	  shutdown  multiplex1.c			   PASSED
Packit 577717
Packit 577717
	  New code is vastly simpler and smaller and checks for bad kernel
Packit 577717
	  behavior:
Packit 577717
Packit 577717
		int64_t tot_time_running =
Packit 577717
	  papi_pe_buffer[get_total_time_running_idx(  )];
Packit 577717
		int64_t tot_time_enabled =
Packit 577717
	  papi_pe_buffer[get_total_time_enabled_idx(  )];
Packit 577717
	  #ifdef BRAINDEAD_MULTIPLEXING       if (tot_time_enabled == 0)
Packit 577717
	       tot_time_enabled = 1;	   if (tot_time_running == 0)
Packit 577717
	    tot_time_running = 1; #else       /* If we are convinced this
Packit 577717
	  platform's kernel is fully operational, then this stuff will
Packit 577717
	  never happen. If it does,	     then BRAINDEAD_MULTIPLEXING
Packit 577717
	  needs to be enabled. */	if ((tot_time_running == 0) &&
Packit 577717
	  (papi_pe_buffer[count_idx])) {	 PAPIERROR("This platform
Packit 577717
	  has a kernel bug in multiplexing, count is %lld (not 0), but time
Packit 577717
	  running is 0.\n",papi_pe_buffer[count_idx]);	   return
Packit 577717
	  PAPI_EBUG;	   }	   if ((tot_time_enabled == 0) &&
Packit 577717
	  (papi_pe_buffer[count_idx])) {	 PAPIERROR("This platform
Packit 577717
	  has a kernel bug in multiplexing, count is %lld (not 0), but time
Packit 577717
	  enabled is 0.\n",papi_pe_buffer[count_idx]);	 return PAPI_EBUG;
Packit 577717
	       } #endif       pe_ctl->counts[i] =
Packit 577717
	  (papi_pe_buffer[count_idx] * tot_time_enabled) /
Packit 577717
	  tot_time_running;
Packit 577717
Packit 577717
	  Also, renamed all instances of 'buffer' to papi_pe_buffer because
Packit 577717
	  buffer is a global variable on MIPS/Linux/libc. Yikes! (gdb)
Packit 577717
	  whatis buffer type = struct utmp *
Packit 577717
Packit 577717
	* src/ctests/multiplex1.c: Made sure that PAPI_TOT_CYC is the first
Packit 577717
	  event added to multiplexing event set.
Packit 577717
Packit 577717
	  This will demonstrate the bug in perf_event multiplexing
Packit 577717
	  arithmetic in case5 on MIPS and other perf_event subsystems that
Packit 577717
	  likely have some breakage in the kernels handling of
Packit 577717
	  multiplexing. The common bug is that the perf_event subsystem
Packit 577717
	  does not fill in the second and third elements of the 24 byte
Packit 577717
	  read that gets returned from the kernel. These values are
Packit 577717
	  time_enabled and time_running. MIPS as of 3.0.3 just fills this
Packit 577717
	  in after a HZ tick has happened. Workarounds are pretty simple in
Packit 577717
	  the low level layer...
Packit 577717
Packit 577717
	  A buggy output looks like this (3.0.3 MIPS/Linux Big Endian)
Packit 577717
Packit 577717
	  -bash-4.1$ ./ctests/multiplex1 case1: Does PAPI_multiplex_init()
Packit 577717
	  not break regular operation? Added PAPI_TOT_CYC Added PAPI_FP_INS
Packit 577717
	  case1: PAPI_TOT_CYC  PAPI_FP_INS case1:	  1843775252
Packit 577717
	  80000000
Packit 577717
Packit 577717
	  case2: Does setmpx/add work? Added PAPI_TOT_CYC Added PAPI_FP_INS
Packit 577717
	  case2: PAPI_TOT_CYC  PAPI_FP_INS case2:	  1843773254
Packit 577717
	  80000037
Packit 577717
Packit 577717
	  case3: Does add/setmpx work? Added PAPI_TOT_CYC Added PAPI_FP_INS
Packit 577717
	  case3: PAPI_TOT_CYC  PAPI_FP_INS case3:	  1843772919
Packit 577717
	  80000037
Packit 577717
Packit 577717
	  case4: Does add/setmpx/add work? Added PAPI_TOT_CYC Added
Packit 577717
	  PAPI_FP_INS case4: PAPI_TOT_CYC  PAPI_FP_INS case4:
Packit 577717
	  1843773959	 80000037
Packit 577717
Packit 577717
	  case5: Does setmpx/add/add/start/read work? Added PAPI_TOT_CYC
Packit 577717
	  Added PAPI_FP_INS read @start counter[0]: 9223372034707292159
Packit 577717
	  read @stop  counter[0]: 1843784577 difference  counter[0]:
Packit 577717
	  -9223372032863507582	multiplex1.c
Packit 577717
	  FAILED Line # 389 Error: Difference in start and stop resulted in
Packit 577717
	  negative value!
Packit 577717
Packit 577717
2011-11-08
Packit 577717
Packit 577717
	* src/components/cuda/: linux-cuda.c, linux-cuda.h: Updated CUDA
Packit 577717
	  component for CUPTI 4.1 (RC1). Note, SetCudaDevice() should now
Packit 577717
	  work with the latest CUDA 4.1 version.
Packit 577717
Packit 577717
2011-11-07
Packit 577717
Packit 577717
	* src/components/coretemp/linux-coretemp.c: Update coretemp to
Packit 577717
	  better handle sparse numbering of the inputs.
Packit 577717
Packit 577717
	* doc/Doxyfile-everything: Exclude the libpfm* and perfctr-*
Packit 577717
	  directories from consideration when generating Doxygen docs.
Packit 577717
Packit 577717
	* src/: papi.h, components/acpi/linux-acpi.h,
Packit 577717
	  components/coretemp_freebsd/coretemp_freebsd.c,
Packit 577717
	  components/cuda/linux-cuda.h,
Packit 577717
	  components/infiniband/linux-infiniband.h,
Packit 577717
	  components/mx/linux-mx.h, components/net/linux-net.h: Place a
Packit 577717
	  space in < your name here > to cleanup doxygen warnings.
Packit 577717
Packit 577717
	* src/perf_events.c: Only perf event systems that have FAST counter
Packit 577717
	  reads and FAST hw timer access are x86...
Packit 577717
Packit 577717
	* src/linux-common.c: MIPS clock and Linux fixup code
Packit 577717
Packit 577717
	* src/components/example/example.c: A little more documentation on
Packit 577717
	  which of the component vector function pointers are relevant.
Packit 577717
Packit 577717
	* src/papi_vector.c: Tested the dummy get_{real,virt}_{cyc,usec}
Packit 577717
	  functions on zeus, they appear to work.
Packit 577717
Packit 577717
	* src/components/example/tests/example_multiple_components.c:
Packit 577717
	  Another fix to properly skip the multiple component case if CPU
Packit 577717
	  component not available.
Packit 577717
Packit 577717
	* src/components/example/tests/example_multiple_components.c: Skip
Packit 577717
	  the test if no CPU component enabled, rather than fail.
Packit 577717
Packit 577717
2011-11-04
Packit 577717
Packit 577717
	* src/components/example/example.c: Free example_native_table with
Packit 577717
	  papi_free, glibc didn't like it if we just called free.  (we
Packit 577717
	  allocate it with papi_calloc)
Packit 577717
Packit 577717
	* man/...: Version number bump. (since the pages are
Packit 577717
	  quantifiably different from those released in 4.2.0 )
Packit 577717
Packit 577717
	* doc/: Doxyfile, Doxyfile-everything, Doxyfile.utils: Bump version
Packit 577717
	  number in the doxygen config files.
Packit 577717
Packit 577717
	* src/components/example/example.c:
Packit 577717
	  _papi_example_shutdown_substrate does not have any arguments.
Packit 577717
Packit 577717
	* src/components/net/linux-net.c: Include ctype.h for isspace().
Packit 577717
Packit 577717
	* release_procedure.txt: release_procedure now reflects the correct
Packit 577717
	  version of doxygen to use.
Packit 577717
Packit 577717
	* src/buildbot_configure_with_components.sh: Do not always
Packit 577717
	  configure with not cpu counters, allow this to be passed in.
Packit 577717
	  Allows us to use one script for both types of builds we test.
Packit 577717
Packit 577717
	* delete_before_release.sh,
Packit 577717
	  src/buildbot_configure_with_components.sh: Create a script for
Packit 577717
	  buildbot to configure with several components.
Packit 577717
Packit 577717
	  Buildbot runs all commandline arguments through a sanitization
Packit 577717
	  before passing them to sh.  Thus --with-configure="a b c" =>
Packit 577717
	  '--with-configure="a b c"' which is bad.
Packit 577717
	  delete_before_release.sh has been instructed to remove this file.
Packit 577717
Packit 577717
	* man/...:  Rebuild the manpages with doxygen 1.7.4 to
Packit 577717
	  remove the 's at the end of sentances.
Packit 577717
Packit 577717
	  The html output looks clean.
Packit 577717
Packit 577717
2011-11-03
Packit 577717
Packit 577717
	* src/: multiplex.c, papi.c: Fix some gcc-4.6 compile warnings
Packit 577717
	  complaining that retval was being set but not used.
Packit 577717
Packit 577717
	* src/papi.c: Add some extra comments to the PAPI_num_cmp_hwctrs()
Packit 577717
	  code that describe its limitations a bit better.
Packit 577717
Packit 577717
2011-11-02
Packit 577717
Packit 577717
	* src/: ctests/overflow_allcounters.c, testlib/test_utils.c: Add
Packit 577717
	  lots of debugging to make results of overflow_allcounters test a
Packit 577717
	  bit more clear.
Packit 577717
Packit 577717
	* src/components/coretemp/tests/coretemp_pretty.c: coretemp_pretty
Packit 577717
	  wasn't printing the description for fan inputs.
Packit 577717
Packit 577717
	  The result on an apple MacBook Pro (running Linux) now looks like
Packit 577717
	  this:
Packit 577717
Packit 577717
	  Trying all coretemp events Found coretemp component at cid 2
Packit 577717
	  hwmon0.temp1_input	     value: 33.50 degrees C, applesmc
Packit 577717
	  module, label TB0T hwmon0.temp2_input  value: 33.50 degrees C,
Packit 577717
	  applesmc module, label TB1T hwmon0.temp3_input  value: 32.00
Packit 577717
	  degrees C, applesmc module, label TB2T hwmon0.temp4_input  value:
Packit 577717
	  0.00 degrees C, applesmc module, label TB3T hwmon0.temp5_input
Packit 577717
	  value: 62.25 degrees C, applesmc module, label TC0D
Packit 577717
	  hwmon0.temp6_input  value: 54.25 degrees C, applesmc module,
Packit 577717
	  label TC0F hwmon0.temp7_input  value: 57.25 degrees C, applesmc
Packit 577717
	  module, label TC0P hwmon0.temp8_input  value: 69.00 degrees C,
Packit 577717
	  applesmc module, label TG0D hwmon0.temp9_input  value: 58.00
Packit 577717
	  degrees C, applesmc module, label TG0F hwmon0.temp10_input
Packit 577717
	   value: 51.25 degrees C, applesmc module, label TG0H
Packit 577717
	  hwmon0.temp11_input	      value: 58.25 degrees C, applesmc
Packit 577717
	  module, label TG0P hwmon0.temp12_input	 value: 60.75
Packit 577717
	  degrees C, applesmc module, label TG0T hwmon0.temp13_input
Packit 577717
	   value: 62.25 degrees C, applesmc module, label TN0D
Packit 577717
	  hwmon0.temp14_input	      value: 59.25 degrees C, applesmc
Packit 577717
	  module, label TN0P hwmon0.temp15_input	 value: 49.00
Packit 577717
	  degrees C, applesmc module, label TTF0 hwmon0.temp16_input
Packit 577717
	   value: 54.00 degrees C, applesmc module, label Th2H
Packit 577717
	  hwmon0.temp17_input	      value: 58.75 degrees C, applesmc
Packit 577717
	  module, label Tm0P hwmon0.temp18_input	 value: 31.50
Packit 577717
	  degrees C, applesmc module, label Ts0P hwmon0.temp19_input
Packit 577717
	   value: 44.25 degrees C, applesmc module, label Ts0S
Packit 577717
	  hwmon0.fan1_input   value: 1999 RPM, applesmc module, label Left
Packit 577717
	  side hwmon0.fan2_input     value: 2003 RPM, applesmc module,
Packit 577717
	  label Right side coretemp_pretty.c		     PASSED
Packit 577717
Packit 577717
	* src/components/coretemp/: linux-coretemp.c, linux-coretemp.h,
Packit 577717
	  tests/coretemp_pretty.c: Make the coretemp code a bit pickier
Packit 577717
	  about which events it supports.  Add descriptions to the events.
Packit 577717
	  Also add support for Voltage (in*) events.
Packit 577717
Packit 577717
	  On an amd14h machine I have access to, coretemp_pretty now
Packit 577717
	  prints:
Packit 577717
Packit 577717
	  Trying all coretemp events Found coretemp component at cid 2
Packit 577717
	  hwmon0.in1_input value: 1.31 V, it8721 module, label ?
Packit 577717
	  hwmon0.in2_input value: 2.22 V, it8721 module, label ?
Packit 577717
	  hwmon0.in3_input value: 3.34 V, it8721 module, label +3.3V
Packit 577717
	  hwmon0.in4_input value: 1.02 V, it8721 module, label ?
Packit 577717
	  hwmon0.in5_input value: 1.52 V, it8721 module, label ?
Packit 577717
	  hwmon0.in6_input value: 1.13 V, it8721 module, label ?
Packit 577717
	  hwmon0.in7_input value: 3.26 V, it8721 module, label 3VSB
Packit 577717
	  hwmon0.in8_input value: 3.17 V, it8721 module, label Vbat
Packit 577717
	  hwmon0.temp1_input value: 28.00 degrees C, it8721 module, label ?
Packit 577717
	  hwmon0.temp2_input value: -128.00 degrees C, it8721 module, label
Packit 577717
	  ? hwmon0.temp3_input value: -128.00 degrees C, it8721 module,
Packit 577717
	  label ? hwmon0.fan1_input value: 0 RPM hwmon0.fan2_input value:
Packit 577717
	  1320 RPM hwmon1.temp1_input value: 33.00 degrees C, jc42 module,
Packit 577717
	  label ? hwmon2.temp1_input value: 31.75 degrees C, jc42 module,
Packit 577717
	  label ? hwmon3.temp1_input value: 53.00 degrees C, radeon module,
Packit 577717
	  label ? hwmon4.temp1_input value: 53.12 degrees C, k10temp
Packit 577717
	  module, label ? coretemp_pretty.c		    PASSED
Packit 577717
Packit 577717
	* src/components/coretemp/: linux-coretemp.c,
Packit 577717
	  tests/coretemp_pretty.c: Cut and paste error slipped in to that
Packit 577717
	  last commit.	Fixes a build issue.
Packit 577717
Packit 577717
	* src/components/coretemp/: linux-coretemp.c, tests/Makefile,
Packit 577717
	  tests/coretemp_pretty.c: Clean up coretemp with same cleanups
Packit 577717
	  done in example component.
Packit 577717
Packit 577717
	  Add a new test, "coretemp_pretty" that prints coretemp results in
Packit 577717
	  a more user-friendly way.
Packit 577717
Packit 577717
	* man/:... Rebuild the man pages with a newer version of
Packit 577717
	  doxygen. ( older versions of doxygen had a nasty bug in man
Packit 577717
	  output. )
Packit 577717
Packit 577717
	  Also reworked the utilities documentation to remove pages for the
Packit 577717
	  files.  Thanks to Jose Pedre Oliveria for pointing this out.
Packit 577717
Packit 577717
	* src/components/example/tests/: Makefile,
Packit 577717
	  example_multiple_components.c: Add a test that makes sure you can
Packit 577717
	  have active EventSets on multiple components at the same time.
Packit 577717
Packit 577717
	* release_procedure.txt: Change PATH specification to include tcsh
Packit 577717
	  syntax; other minor syntax corrections.
Packit 577717
Packit 577717
	* src/components/example/example.c: More cleanups and documentation
Packit 577717
	  for the example component.
Packit 577717
Packit 577717
2011-11-01
Packit 577717
Packit 577717
	* src/components/example/example.c: Some more major overhaul of the
Packit 577717
	  example component.  A lot more documentation, plus make is behave
Packit 577717
	  a lot more like a real component would.
Packit 577717
Packit 577717
	* doc/Doxyfile.utils: Turn off undocumented warnings for the utils.
Packit 577717
	  doxygen run.
Packit 577717
Packit 577717
	* src/utils/: avail.c, command_line.c, cost.c, event_chooser.c,
Packit 577717
	  multiplex_cost.c: Add spaces to the comments so doxygen doesn't
Packit 577717
	  think <event> is an xml tag.
Packit 577717
Packit 577717
2011-10-31
Packit 577717
Packit 577717
	* src/utils/: avail.c, clockres.c, command_line.c, component.c,
Packit 577717
	  cost.c, decode.c, error_codes.c, event_chooser.c, mem_info.c,
Packit 577717
	  multiplex_cost.c, native_avail.c: Remove the @file directive from
Packit 577717
	  the doxygen comment blocks for the utilities.  This cleans up the
Packit 577717
	  generated man pages. ( we nolonger build *.c.1 )
Packit 577717
Packit 577717
	* src/components/example/: example.c, tests/example_basic.c:
Packit 577717
	  Clarify in the example component that ->reset only gets called if
Packit 577717
	  an eventset is currently running.
Packit 577717
Packit 577717
	  Extend the example_basic test to test PAPI_reset()
Packit 577717
Packit 577717
	* release_procedure.txt: Fix a maketarget typo.
Packit 577717
Packit 577717
	* release_procedure.txt: We now have a good version of doxygen
Packit 577717
	  installed on most icl run machines.  (
Packit 577717
	  /mnt/scratch/sw/doxygen-1.7.5.1 )
Packit 577717
Packit 577717
	* doc/doxygen_procedure.txt: [no log message]
Packit 577717
Packit 577717
	* release_procedure.txt: Update release_procedure to inform how to
Packit 577717
	  update the website documentation link.
Packit 577717
Packit 577717
2011-10-28
Packit 577717
Packit 577717
	* RELEASENOTES.txt: Correct the RELEASENOTES for some things I
Packit 577717
	  missed when reviewing it.
Packit 577717
Packit 577717
	  It's Offcore events that we don't support on
Packit 577717
	  Nehalem/Westmere/Sandybridge.
Packit 577717
Packit 577717
	  Also the power6 libpfm4 bug that was listed as an outstanding bug
Packit 577717
	  was fixed a long time ago.
Packit 577717
Packit 577717
	* src/components/coretemp/linux-coretemp.c: Have coretemp set the
Packit 577717
	  num_native_events field.
Packit 577717
Packit 577717
	* src/components/example/tests/example_basic.c: Update example test
Packit 577717
	  to print num_native_events, to help debug issues with other
Packit 577717
	  components not updating the value.
Packit 577717
Packit 577717
	* src/components/coretemp/: linux-coretemp.c, linux-coretemp.h: Fix
Packit 577717
	  typo enent -> event Also remove residual LMSENSOR mentions from
Packit 577717
	  the coretemp header.
Packit 577717
Packit 577717
	* src/papi_libpfm4_events.c: Fix two memory leak locations.
Packit 577717
Packit 577717
	  The attached patch reduces the number of lost memory blocks
Packit 577717
	  reported by valgrind from 234 to 39.	It frees the memory
Packit 577717
	  allocated by the 4 strdups and the calloc functions in
Packit 577717
	  papi_libpfm4_events.c:allocate_native_event().
Packit 577717
Packit 577717
	  Patch by: José Pedro Oliveira
Packit 577717
Packit 577717
	* src/components/cuda/tests/Makefile: The change to pass the PAPI
Packit 577717
	  CC/CFLAGS to the component tests broke the nvidia test as it
Packit 577717
	  wants CC to be nvcc.	So update that Makefile to use nvcc
Packit 577717
	  instead.
Packit 577717
Packit 577717
2011-10-27
Packit 577717
Packit 577717
	* src/components/example/tests/example_basic.c: Improve the
Packit 577717
	  example_basic component test to be much more comprehensive.
Packit 577717
Packit 577717
	* src/components/example/: example.c, tests/HelloWorld.c,
Packit 577717
	  tests/Makefile, tests/example_basic.c: Cleanup the example test.
Packit 577717
	  Fix various mistakes in the comments as well as add better error
Packit 577717
	  checking.
Packit 577717
Packit 577717
	  Also rename the "HelloWorld" test to "example_basic"
Packit 577717
Packit 577717
	* src/components/coretemp/tests/Makefile: The coretemp_test target
Packit 577717
	  was example_test due to cut-and-paste error.
Packit 577717
Packit 577717
	  Patch from Jose Pedro Oliveira
Packit 577717
Packit 577717
	* src/Makefile.inc: Add a component_tests dependency so that the
Packit 577717
	  component_tests are made during a make -j build
Packit 577717
Packit 577717
	* src/Makefile.inc: Make sure the component test makefiles get
Packit 577717
	  passed the CC and CFLAGS definitions.
Packit 577717
Packit 577717
	* src/components/coretemp/: linux-coretemp.c, tests/Makefile,
Packit 577717
	  tests/coretemp_basic.c: Fix up the coretemp component some more.
Packit 577717
	  Make sure the enumerate function returns PAPI_ENOEVNT if no
Packit 577717
	  events are available.
Packit 577717
Packit 577717
	  Update the Makefile so it has proper dependencies.
Packit 577717
Packit 577717
	  Update the test so it prints the first event available.  (The
Packit 577717
	  latter based on a patch from Jose Pedro Oliveira)
Packit 577717
Packit 577717
	* src/: solaris-ultra.c, ctests/all_native_events.c: The
Packit 577717
	  solaris-ultra substrate was still broken.  This is because recent
Packit 577717
	  changes to component bind time explictly used the ->set_domain()
Packit 577717
	  call, and this vector was not set up in solaris_ultra.
Packit 577717
Packit 577717
	  Also made the all_native_events test report the returned error
Packit 577717
	  value to aid in debugging problems like this in the future.