File: ChangeLogP412.txt

package info (click to toggle)
papi 5.5.1-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 28,064 kB
  • ctags: 38,805
  • sloc: ansic: 404,236; makefile: 3,440; fortran: 3,282; xml: 2,460; sh: 821; python: 515; perl: 269; asm: 24
file content (517 lines) | stat: -rw-r--r-- 18,306 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
2011-01-17

	* src/configure: Ran autoconf to generate updated configure file.

2011-01-16

	* src/components/README: Adding a component for the FreeBSD OS that
	  reports the value of the thermal sensors available in the Intel
	  Core processors.  There are as many counters as cores, and the
	  value reported by each counter is in Kelvin degrees.

	* src/freebsd.c: Implemented missing
	  _papi_freebsd_ntv_name_to_code.

	* src/: Makefile.in, Makefile.inc, configure.in, ctests/Makefile:
	  Fix dependency on -ldl

	  Now configure checks if dl* symbols are in the base system
	  libraries (i.e., no -ldl needed). If so, avoid adding -ldl to
	  shlib example.

	  If dl* symbols are not find in the base system libraries, then
	  check for -ldl, and if it exists, pass it to ctests/Makefile
	  through Makefile. If -ldl is not found, fail at configure time.

	* src/ctests/multiattach.c: Fix to compile in FreeBSD.

	* src/: freebsd-memory.c, freebsd.c: Code cleanup.

2011-01-14

	* src/: perf_events.c, perfmon.c: [PATCH 18/18] papi: make
	  _perfmon2_pfm_pmu_type variable static

	  In perf_events.c and perfmon.c the variable
	  _perfmon2_pfm_pmu_type is used locally only, making it static.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: linux-bgp.c, linux-ia64.c, perf_events.c, perfctr.c,
	  perfmon.c: [PATCH 17/18] papi: remove inline_static macro in
	  Linux only code

	  We better replace the macro with 'static inline'. Not sure if
	  this works for all compilers, so doing it for Linux only files.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/x86_cache_info.c: [PATCH 16/18] papi: remove static inline
	  function declaration

	  By moving the static inline function cpuid() to the begin of the
	  file we may remove its declaration.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/linux.h: [PATCH 15/18] papi: remove unused linux.h header
	  file

	  This file is included nowhere, removing it.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/linux-ia64.c: [PATCH 14/18] papi: fix array out of bounds
	  access

	  Fixing the following warning:

	    linux-ia64.c: In function ?_ia64_init_substrate?:
	    linux-ia64.c:1123:22: warning: array subscript is above array
	  bounds

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: configure, configure.in: [PATCH 13/18] papi: remove
	  unnecassary checks in configure.in

	  The check is obsolete and covered by default.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: papi_pfm_events.c, perf_events.c, perfmon.c, perfmon.h:
	  [PATCH 12/18] papi: include perfmon header files only where
	  necessary

	  This patch includes perfmon header files only where necessary.
	  Declarations in perfmon/perfmon.h are never used, removing its
	  inclusion. Itanium header files are needed only in perfmon.c and
	  perf_events.c.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: papi_pfm_events.c, perfctr-x86.c: [PATCH 11/18] papi: make
	  some functions in papi_pfm_events.c static

	  Functions _pfm_decode_native_event() and _pfm_convert_umask() are
	  internally used only. Remove export declaration and make it
	  static.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: Rules.pfm, linux-ia64-pfm.h, linux-ia64.c, pfmwrap.h:
	  [PATCH 10/18] papi: rename pfmwrap.h -> linux-ia64-pfm.h

	  pfmwrap.h actually only contains IA64 code included by
	  linux-ia64.c.  Rename it to linux-ia64-pfm.h.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: linux-ia64.c, pfmwrap.h: [PATCH 09/18] papi, linux-ia64:
	  make inline functions static

	  Inline functions should be static. Fixing it.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: linux-ia64.c, papi_pfm_events.c: [PATCH 08/18] papi: fix
	  _papi_pfm_ntv_name_to_code() function interface

	  The function is supposed to return a PAPI error code which is an
	  integer.  Make the function's return code an integer too.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/perfctr-ppc64.c: [PATCH 07/18] papi: fix spelling modifer ->
	  modifier

	  Fix spelling: modifer -> modifier

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: linux-ia64.c, papi_pfm_events.c, papi_pfm_events.h,
	  perf_events.c, perfctr-x86.c, perfmon.c: [PATCH 06/18] papi:
	  define function interface in papi_pfm_events.h

	  The header file should define the interface that
	  papi_pfm_events.c provides.  Declarations used internally only in
	  papi_pfm_events.c are moved there.  Now papi_pfm_events.h only
	  contains the prototype functions. Remapping of definitions is
	  removed too. This cleanup removes duplicate code and better
	  defines the interface.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: Rules.perfctr, Rules.perfctr-pfm, linux.c, multiplex.c,
	  papi_vector.c, perfctr-x86.c, perfctr.c, ctests/test_utils.c:
	  [PATCH 05/18] papi: rename linux.c -> perfctr.c

	  The name of linux.c is misleading, it only implements perfctr
	  functionality. Thus renaming it to perfctr.c.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: papi_pfm_events.c, perfctr-x86.c: [PATCH 04/18] papi: make
	  _papi_pfm_init() static by moving it to perfctr-x86.c

	  _papi_pfm_init() is only used in perfctr-x86.c but implemented in
	  papi_pfm_events.c. Move it to perfctr-x86.c and make it static.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/perfmon.c: [PATCH 03/18] papi: make some functions static in
	  perfmon.c

	  The functions are only used in perfmon.c, making it static.

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/: Rules.pfm, Rules.pfm_pe: [PATCH 02/18] papi: do not compile
	  libpfm examples to support cross compilation

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/Rules.pfm: To cross compile papi we need to pass the
	  architecture to libpfm.  Otherwise it will be confused and tries
	  to build the host's make targets with the cross compiler ending
	  up in the following error:

	   pfmlib_amd64.c: In function ?cpuid?:
	   pfmlib_amd64.c:166:3: error: impossible register constraint in
	  ?asm?
	   pfmlib_amd64.c:172:1: error: impossible register constraint in
	  ?asm?
	   make[2]: *** [pfmlib_amd64.o] Error 1

	  Signed-off-by: Robert Richter <robert.richter at amd.com>

	* src/ctests/Makefile: Temporarily back out the FreeBSD makefile
	  change that breaks the build so that I can properly test some
	  other changes.

	* src/papi_events.csv: Change the Core2 L1_TCM preset to be
	  LLC_REFERENCES

	  The current event (L2_RQSTS:SELF:MESI) returns an event
	  equivelent to LLC_REFERENCES on libpfm3, but in libpfm4
	  L2_RQSTS:SELF:MESI maps instead to L2_RQSTS:SELF:MESI:ALL which
	  counts prefetches too.

	  By moving to LLC_REFERENCES both libpfm3 and libpfm4 count the
	  proper value.  This also makes the "tenth" benchmark pass  when
	  using PAPI/libpfm4.

	* src/configure: Update to match current configure.in

	* src/ctests/Makefile: Fix the if / fi syntax of the last change.

2011-01-13

	* src/: Makefile.inc, configure.in, freebsd-memory.c, freebsd.c,
	  ctests/Makefile, ctests/zero_attach.c: Changes from Harald Servat
	  for freebsd support. Note that configure has not been regenerated
	  from this version of configure.in.

	* papi.spec, doc/Doxyfile, doc/Doxyfile-everything,
	  src/Makefile.in, src/configure.in, src/papi.h: Change version
	  numbers to 4.1.2 in preparation for a release.

2011-01-12

	* src/ctests/code2name.c: The code2name test was assuming that the
	  native events start right at PAPI_NATIVE_MASK.  We specifically
	  document elsewhere this might not be the case, and indeed for the
	  libpfm4 code this fails.

	  This fix changes the code to properly enunmerate the native
	  events for the test.

2011-01-06

	* src/: papi.c, papi_internal.c: Fix a long-standing bug where we
	  were walking off the end of the EventInfoArray in
	  remap_event_position().

	  This was noticed by Richard Strong when instrumenting some of the
	  PARSEC benchmarks.

	  In papi_internal.c in the remap_event_position() function we have
	  the loop

		  for ( i = 0; i <= total_events; i++ ) {

	   It seems weird that we are doing a <= compare, and in fact this
	  is why we
	   walk off the end of the array sometimes.  But why only somtimes?
	   If I
	   change that <= to a < then many of the regression tests fail.

	   It turns out that the two calls to remap_event_position() in
	   papi_internal.c are called with ESI->NumberOfEvents being one
	  less
	   than it should be, as it is incremented after the
	  remap_event_position()
	   call (though the new events are added before the call).  This is
	  why
	   <= is used.

	   However the call in PAPI_start() happens with
	  ESI->NumberOfEvents
	   with the right value.  In this case < should be used.

	   The fix I've come up with has a NumberOfEvents value passed in
	  as a
	   parameter to remap_event_position().  This way the value+1 can
	   be passed in the former cases.

2010-12-20

	* src/aix.c: Problem on POWER6 with AIX: pm_initialize() cannot be
	  called multiple times with PM_CURRENT. Instead, use the actual
	  proc type - here PM_POWER6 - and multiple invocations are no
	  longer a problem. Ctests/multiplex1.c passes now.

2010-12-15

	* src/run_tests.sh: If we don't run any tests, get buildbot's
	  attention.

2010-12-14

	* src/aix.c: number_of_nodes var was set to zero in
	  _aix_get_system_info. This caused the papi utilities to report
	  that the number of total CPUs is zero. This also caused
	  ctests/hwinfo to fail on POWER6 with AIX.

2010-12-13

	* src/papi_internal.h: Slight re-ordering of the no_vararg_macro
	  debug statements.  (I actually tested the changes with
	  --with-debug and without on aix)

2010-12-10

	* src/run_tests.sh: Change the syntax on our find command to be
	  more posix compliant.

	  GNU is Not UNIX, cute acronym or massive compatibility
	  conspiracy.  I fall back to posix, you decide!

	* src/: configure, configure.in: Update configure file to be aware
	  of the existence of AIX-Power7.

	  PAPI still won't build, but it gets further than before.

2010-12-09

	* src/run_tests.sh: Make our grep invocation posix compliant.
	  (--invert-match == -v & --regex == -e )

	* src/ctests/overflow_allcounters.c: Separate 'indent' check-in so
	  that the previous modifications are comprehensible :)

	* src/ctests/overflow_allcounters.c: The overflow_allcounters test
	  failed on Power6 with AIX (pmapi) but passes on Power6 with linux
	  (perf_events | perfctr). Therefore detect if we're running on
	  AIX, print a warning, but still pass the test.

	* src/run_tests.sh: Move away from echo -n to the shell builtin
	  printf (echo -n is not portable)

	  non-argumented instances of echo are fine.

	* src/run_tests_exclude.txt: Skip the non-test ctests/burn
	  executable.

	* src/Matlab/: PAPI_Matlab.c, PAPI_Matlab.readme: Change
	  documentation for matlab integration to reflect the need to link
	  to the libpapi.so library and not the static one.

	  Also listed me and the ptools-perfapi list as points of contact
	  for future questions *gulp*

2010-12-08

	* src/: configure, configure.in, run_tests.sh: Clean up (purge)
	  references to libpfm-2.x in configure and run_tests.sh

	* src/Matlab/PAPI_Matlab.c: MATLAB fixups: Calls to PAPI('stop')
	  now stop counting even if we ignore the return values.

	* src/Matlab/PAPI_Matlab.c: Fixup for papi matlab integration.

	  Calls to PAPI('stop') don't cause errors now.  If you call
	  PAPI('stop') with out capturing its return value, it does
	  nothing.

	* src/Matlab/PAPI_Matlab.c: mex does not like c++ style comments
	  (double-backslash)

2010-12-06

	* src/solaris-ultra.c: Resolved a couple type cast warnings.  Also
	  initialized a variable and enabled GET_OVERFLOW_ADDRESS code in
	  two places. The overflow test suite still has a number of
	  failures and is disabled in configure.

2010-11-24

	* src/papi_internal.h: That last commit was lacking in
	  creativity...  By having the debug function names still a macro,
	  we get all the goodness of __FILE__ etc bing in the right place
	  and still not using variadic macros.

	  #define SUBDBG do{ if (_papi_hwi_debug & DEBUG_SUBSTRATE )
	  print_the_label; } while (0); _SUBDBG was the clever line that
	  eluded me yesterday.

2010-11-23

	* src/papi_internal.h: Turns out that when DEBUG and
	  NO_VARARG_MACRO are true, we didn't correctly implement
	  component-level debug functions.  This change uses variable
	  argument lists ( man stdarg) to correctly handle this case. (
	  papi_internal.h defines these)

	  Note that debugging information is not completly useful; due to
	  functions which use variable argument lists not being inlinable (
	  the inline keyword is afterall only a sugestion), all messages
	  appear to come from papi_internal.h:PAPIDEBUG:525:22619 and I am
	  not clever enough to get around that in general right now.

	  Thanks to Maynard Johnson for reporting.

	* src/papi_events.csv: Enable the PAPI_HW_INT event on Nehalem, as
	  tests show the   HW_INT:RCV event is the proper one to use here.

2010-11-22

	* src/papi_events.csv: Update the preset events for Nehalem, as
	  contributed by    Michel Brown.

2010-11-19

	* src/: perf_events.h, perf_events.c: Address problem with overflow
	  handler continuing to count events.  Add overflow status field to
	  determine if an event set has any events enabled for overflow.
	  Use IOC_REFRESH instead of IOC_ENABLE when overflowing.
	  Implement IOC_REFRESH at end of overflow handler.  None of this
	  worked.  Also implemented an IOC_DISABLE at top of overflow
	  handler. That worked, even though it's suboptimal.

2010-11-17

	* src/utils/command_line.c: test_fail_exit() substituted for
	  test_fail().	This became necessary because
	  PAPI_event_name_to_code now returns a PAPI_EATTR error if the
	  base name matches but attribute names don't. This utility was
	  producing an error message and then running the test. Perfctr
	  implementations will happily add a base name with no umasks and
	  then generate 0 counts. This fix prevents that behavior.

	* src/ctests/test_utils.c: Rewrite of test_fail_exit() to call
	  test_fail(). It should be noted that test_fail_exit() behaves the
	  way test_fail() used to behave, i.e. it exits after printing the
	  fail message. However, test_fail no longer exits as that was
	  causing problems with multi-threaded tests not freeing memory. In
	  those cases where an exit is desired, calls to test_fail_exit()
	  should be substituted for calls to test_fail().

	* src/: papi.h, papi_data.c, papi_pfm_events.c, perfmon.c: Added 3
	  new error codes: PAPI_EATTR, PAPI_ECOUNT, and PAPI_ECOMBO. These
	  map onto equivalent errors in libpfm and are provided to give
	  more detail on failures in libpfm calls. A new error mapping
	  function has been added to papi_pfm_events.c to map libpfm errors
	  to PAPI errors, and this function is employed in the
	  compute_kernel_args function in perfmon.c. It could also be
	  deployed elsewhere, but so far is not.

2010-11-09

	* src/x86_cache_info.c: The cpuid change yesterday broke
	  compilation on a 32-bit Pentium 3.  Fix the inline assembly to
	  compile properly there too.

2010-11-08

	* src/: configure, configure.in: Fix configure script to properly
	  detect Pentium M machines.

	* src/x86_cache_info.c: Add cpuid leaf4 cache detection support.

	  This has been available on intel processors since Late model P4s
	  and all Core2 and newer.  It returns cache info in a different
	  way than the older leaf2 method.

	  Currently we only use leaf4 data if the leaf2 results tell us to
	  (apparently Westmere does that).  Otherwise we use the old
	  method.

	  It might be interesting to use more of the leaf4 info.  It can
	  tell us things such as how many processors share a socket, how
	  many processors share a cache, and info on the inclusivity of a
	  cache.

	* src/: linux.c, perfctr-x86.c: Add perfctr Westmere support.

	* src/perfctr-2.6.x/: patches/aliases, usr.lib/Makefile: Fix
	  conflicts from perfctr merge.

2010-11-06

	* src/perf_events.c: Replace KERNEL_CHECKS_SCHEDUABILITY_UPON_OPEN
	  with the proper dynamic kernel version number checking.  This
	  should be the last place in our perf_events code that was using a
	  hard-coded rather than dynamic check for a kernel-version related
	  bugfix.

	* src/perf_events.c: This patch allows PAPI to read multiple events
	  at a time out of the kernel when the kernel is new enough (2.6.34
	  or newer).  The previous code required setting a #define by hand
	  to get this behavior, this new code picks the proper way to do
	  things based on the kernel version number.

	  The patch was supplied by  Gary Mohr

2010-11-04

	* src/: linux.c, perfctr-x86.c: Replace occurrances of
	  PERFCTR_X86_INTEL_COREI7 with PERFCTR_X86_INTEL_NHLM as the
	  former has been documented as being deprecated as of perfctr
	  2.6.41.

2010-11-03

	* src/cycle.h: Change "unicos" to "CLE" since "unicos" no longer
	  exists.

2010-10-26

	* src/examples/locks_pthreads.c: Add a call to PAPI_thread_init(),
	  Thanks to Martin Schindewolf for pointing this out.

2010-10-21

	* src/: papi.c, components/lmsensors/linux-lmsensors.h: Fixup url's
	  that checkbot was finding in error.

2010-10-05

	* src/ctests/: multiattach.c, zero_attach.c: The zero_attach and
	  multiattach were forking before off children	 before testing
	  that PAPI in fact is available.  Then when PAPI_init()   failed
	  the children weren't being cleaned up properly.  This was
	  confusing build bot.	This changeset moves the fork to after the
	  check plus do a fail_exit() on failure.

	* src/: configure, configure.in: Solaris build will fail if
	  /usr/ccs/bin isn't in the path.  Have it check there for "ar" on
	  Solaris systems if it can't be found	 by normal methods.

	* src/: configure, configure.in: Only run the EAR tests on itanium
	  systems.

	* src/: configure, configure.in: Pentium4-perfctr was skipping most
	  of the CTESTS.  Make sure they are all run.