-
Notifications
You must be signed in to change notification settings - Fork 51
/
ChangeLogP500.txt
2279 lines (1683 loc) · 99.9 KB
/
ChangeLogP500.txt
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
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2012-08-08
* 4b4f87ff ChangeLogP5000.txt: Changelog for PAPI5
* 6f208c06 doc/Doxyfile-common papi.spec src/Makefile.in...: Bump version
numbers in prep for a 5.0 release.
* c6fdbd11 release_procedure.txt: Update release_procedure.txt Change the
order of when we branch git, so that the main dev branch gets some of the
release related changes.
2012-04-17
* 97d4687f ChangeLogP440.txt: Pickup the changelog from papi 4.4 This was
only included in the stable-4.4 branch.
2012-08-23
* 628c2b6e src/buildbot_configure_with_components.sh: Take debug out of the
with several components build test config. When built with PAPI's memory
wrapper routines, the threaded stress tests will sometimes get into poor
performing situations. See trac ticket 148 for discussion.
http://icl.utk.edu/trac/papi/ticket/148
2012-08-22
* 46faae8e src/ctests/overflow2.c src/ctests/overflow_single_event.c
src/ctests/overflow_twoevents.c...: Move find_nonderived_event() from
overflow_twoevents to test_utils and call it from overflow2 and
overflow_single_event to insure that we're not trying to overflow on a
derived event.
* 3e7d8455 src/ctests/zero_smp.c: Fix a memory leak reported on the aix
power7 machine. zero_smp.c did not unregister at the end of its thread
function.
* 3ad5782f src/perf_events.c: perf_events: fix segfault if DEBUG is enabled
Was incorrectly using "i" as an index where it should be "0" in a debug
statement.
2012-08-21
* a3cadbdb src/ftests/accum.F src/ftests/avail.F src/ftests/case1.F...: Take
#2. Changing len_trim function in ftests to last_char. This time, I respect
72 char line limit.
* c9db8fbf src/ctests/overflow_force_software.c: overflow_force_software was
the only test that used a different hard_tolerance value (0.25) than the
other overflow tests (0.75). This caused trouble on Power7/AIX. Now we are
using the same hard_tolerance value in all overflow tests.
* 70515343 src/ftests/accum.F src/ftests/avail.F src/ftests/case1.F...:
Changed name of function len_trim to last_char.
* 95168d79 src/components/cuda/linux-cuda.c: Cleanup cuda shutdown code.
* The
shutdown_thread code cleaned out the whole component's state. This has been
split into shutdown_global for the whole component, and shutdown_thread is
left to cleanup some control state info.
* 56284f81 src/ctests/multiplex1_pthreads.c: Fix memory leaks in pthread
multiplex tests.
* aeead8b6 src/threads.c: Remove an outdated comment about
_papi_hwi_free_EventSet holding INTERNAL lock
* e598647b src/perf_events.c: perf_events: fix issue where we dereference a
pointer before NULL check. Fix suggested by Will Cohen, based on a coverity
report.
* 4e0ed976 src/ctests/calibrate.c: Modify warning message to eliminate the
word "error" Hopefully this will suppress it in buildbot outputs.
* 50fbba18 src/ctests/api.c src/ftests/case2.F: Cleanup a few more warnings
from the PAPI_perror change.
* 1f06bf28 src/ftests/case2.F: Missed an instance of perror in the fortran
code.
* 93e6ae2c src/ftests/ftests_util.F: Fix warning in ftest_util.F
2012-08-20
* 60c6029e src/perf_events.c: perf_events: Update multiplexing code It
* turns
out the PERF_EVENT_IOC_RESET ioctl resets the count but not the multiplexing
info. This means that when we fiddle with the events then reset them in
check_scheduability(), we are not really resetting things to zero. The
effect might be small, but since the new multiplex code by definition is
always scheduable, then let's skip the test if multiplexing.
* 9079236c src/ctests/zero.c: Change error reporting so FLOPS > 100% above
theoretical FAIL and FLOPS > 25% above theoretical WARN.
2012-08-18
* 980558af src/papi_internal.c: papi_internal: fix memory leak When I made
some changes a while back I forgot to free ESI->NativeBits properly. This
was causing memory leak warnings on buildbot.
2012-08-17
* 83a14612 src/perf_events.c: perf_events: more cleanups and comments We
really need to go back and figure out in more detail what the
profile/sampling/overflow code is doing.
* 7cafb941 src/perf_events.c: perf_events: more cleanups and comments
* e9e39a4b src/perf_events.c: perf_events: disable kernel multiplexing
* before
2.6.34 It turns out even our simple multiplexing won't work on kernels
before 2.6.34, so fall back to sw multiplex in that case.
* 05801901 src/perf_events.c: perf_events: more cleanup and comments
* 268e31d7 src/perf_events.c: perf_events: more cleanup and commenting
* d62fc2bf src/perf_events.c: perf_events: more cleanup and comments
* fb0081bc src/perf_events.c: perf_events: more cleanups and comments
* a1142fc8 src/perf_events.c: perf_events: cleanup and comment the kernel
* bug
workarounds
* b8560369 src/perf_events.c: perf_events: minor cleanups and new comments
* 6c320bb2 src/perf_events.c: perf_events: fix some debug messages I forget
to test with --with-debug enabled
* f7a3cccf src/perf_events.c: perf_events: enable new read_code This makes
the read code much simpler. It finishes the multiplexing changes. To avoid
complication, we no longer enable PERF_FORMAT_ID as reading that extra info
is unnecessary with the current implementation. This passes all the tests
on
a recent kernel, but on 2.6.32 there are still a few issues.
* 15749cff src/ctests/all_events.c src/ctests/all_native_events.c: Fix
warning in all_events and all_native_events. In the perror semantic change,
several strings for use in the old interface were left.
2012-08-16
* afdd25fa src/perf_events.c: perf_events: always enable kernel multiplexing
The new code should work on any kernel version.
* 9f5e23ae src/perf_events.c: Rewrite multiplex support. Drop support for
the former "partitioned" multiplexing, as we could never use it. Instead
use
the simple/braindead model. This still needs more work, as sometimes reads
are failing.
* cdd29909 src/ftests/strtest.F: Fix strtest.F ftest It was still making
some assumptions about PAPI_perror() writing to a string rather than
directly
to standard error.
* 565f60b3 src/papi_internal.c: Missing code to set num_error_chunks to 0
The new _papi_hwi_cleanup_errors() function was not resetting
num_error_chunks to 0, leading to a segfault in the fmultiplex1 test.
2012-08-02
* bb85bafd src/genpapifdef.c src/papi.c src/papi_common_strings.h...: Remove
usage of _papi_hwi_err. Move PAPI over to storing errors in a runtime list.
* Functions to add/lookup errors. * Generate the list of PAPI_E* errors at
library_init time. * genpapifdef pulled the values for the PAPI_* error
return codes from the _papi_hwi_err structure at configure time. Since this
is now built at run-time, I added the appropriate values to genpapifdef's
builting describe_t table. See : _papi_hwi_publish_error
_papi_hwi_init_errors For usage hints.
2012-08-10
* e27af085 src/perf_events.c: perf_event: rename BRAINDEAD_MULTIPLEXING It
is now "simple_multiplexing" and is a variable not an #ifdef This is needed
before perf_event multiplexing can be sorted out. It's unclear if it
actually works anyway.
* 7f8e8c58 src/perf_events.c: perf_event: remove context "cookie" field It
was a bit of overkill, we just need an initialized field. Also revamp how
context and control are initialized.
* 8cb8ac6d src/perf_events.c: perf_event: move all event specific info to
* the
control state previously half was in the context state and half in the
control state perf_event has a strange architecture with each event being
created having its own fd, which is context wide. In PAPI though we usually
only have one eventset (control state) active at once, so there's no need to
have the context be aware of this.
2012-08-09
* 8d7782cb src/perf_events.c: perf_event: rename evt_t to perf_event_info_t
This just makes the code easier to follow.
* 349de05c src/perf_events.c: perf_event: remove the superfluous
per_event_info_t structure
2012-08-08
* da8ad0a2 src/ctests/all_native_events.c src/ctests/get_event_component.c
src/utils/native_avail.c: Fix warnings about PAPI_enum_cmp_event() return
not
being checked Reported by coverity checker via Will Cohen Harmless
warnings, and now the checker will likely complain about the value being
checked but ignored.
* b4719888 src/papi_user_events.c: Fix unused value in papi_user_events.c
Reported by Coverity checker by Will Cohen
* 6a8f255c src/utils/event_chooser.c: remove unused
* PAPI_get_component_info()
call in event_chooser Reported by Will Cohen from coverity checker
2012-08-06
* 62cda478 src/genpapifdef.c src/papi_common_strings.h
src/papi_internal.c...: Remove usage of _papi_hwi_err. genpapifdef pulled
the values for the PAPI_* error return codes from the _papi_hwi_err structure
at configure time. Since this is now built at run-time, I added the
appropriate values to genpapifdef's builting describe_t table.
2012-08-02
* d11259f3 src/papi.c src/papi_internal.c src/papi_internal.h...: Move over
to generating the list of PAPI errors at library_init time.
* 097ffc44 src/papi_internal.c: Functions to add/lookup errors.
2012-08-07
* 2530533f src/papi_events.csv: tests/zero fails on Power7 due to PAPI_FP_INS
Error of 50%. Preset definition has been redefined and test now passes.
* 8e17836f src/components/appio/Rules.appio src/components/appio/appio.c
src/components/appio/appio.h...: We now intercept recv(). The support for
recv() requires dynamic linkage. For static linkage, recv is not intercepted.
2012-08-06
* 8b1eb84c src/perf_events.c: perf_events: some whitespace cleanup and extra
comments
* f10edba6 src/perf_events.c: perf_events: MAX_READ was no longer being used,
remove it
* 08c06ed1 src/perf_events.c: perf_event event_id is actually 64-bit, so make
our copy match
* a33e8d9c src/perf_events.c: Rename context_t pe_context_t in perf_events.c
Makes the code a bit clearer and matches how other components name things.
* 96ce9dcd src/perf_events.c: Rename control_state_t pe_control_state_t This
makes the code a bit easier to follow and matches how other components name
things.
2012-08-03
* 4c5dce7f src/ctests/zero.c: Beef up error reporting.
* 83b5d28a src/ctests/cycle_ratio.c: Have the cycle_ratio test skip if
PAPI_REF_CYC event is not defined.
2012-08-02
* 25b1ba41 src/ctests/cycle_ratio.c: Removed all TESTS_QUIET blocks. They
aren't needed because tests_quiet() overloads printf. We should probably
remove TEST_QUIET blocks in ALL tests at some point for code clarity…
* 8777d7d4 src/ctests/zero.c: Fixed error reporting. The error computation
was inside a TESTS_QUIET block and wasn't getting executed when run quietly.
Thus this test always passed on buildbot, even when it didn't.
* 006fe8e9 src/ctests/Makefile: Fix typo in cycle_ratio make line.
* 88e6d6a4 src/aix.c src/aix.h: Setting number of multiplex counters back to
32 for AIX. Before it was set equal to number of max HW counters. This caused
ctests/sdsc-mpx to fail.
* ab78deda src/papi_events.csv: ctests/calibrate on Power7/AIX failed with a
50% error all the way through. Updated the preset FP_OPS with a more
appropriate definition. Now the calibrate errors range from 0.0002 to 0.0011%
for double and single precision
* fadce32f src/ctests/calibrate.c: Modify calibrate test in two ways: 1. add
a -f flag to suppress failures and allow test to run to completion; 2. change
error detection to allow warnings above MAX_WARN and failures above MAX_FAIL.
Currently set to 10% and 80% respectively. This allows speculative over
counting to pass with warning rather than fail completely.
* 8a39ac9d src/papi_events.csv: LST_INS for Power7 was defined from 3 native
events that cannot be counted together at the same time. Caused
ctests/all_events to fail. Updated the preset with a more appropriate
definition.
* cdc16e5d src/papi_events.csv: L1_DCA for Power7 was defined from 3 native
events that cannot be counted together at the same time. That caused
ctests/tenth to fail. Updated the preset with a more appropriate definition.
2012-08-01
* 2bf44d13 src/papi_internal.c src/perf_events.c: icc does not like
arithmetic on void pointers. Added cast to unsigned char* when arithmetic was
being performed on void pointers in papi_internal and perf_events.
* 7825ec14 src/ctests/api.c src/ctests/attach2.c src/ctests/attach3.c...:
Modify tests that FAIL if PAPI_FP_OPS or PAPI_FP_INS not implemented. Now
they will warn and continue. This is specifically to accommodate the
brain-dead IvyBridge implementation.
* fd70a015 src/testlib/test_utils.c: Re-writing of test_utils introduced new
bugs that caused ctests/tenth to fail. test_events struct lists the same
event twice (MASK_L1_DCW), hence PAPI_add_event() fails because it's forced
to add the same preset twice.
* 74ece3a0 src/run_tests.sh: run_tests.sh was clobbering $EXCLUDE variable if
$CUDA was defined. Changed to add entries from run_tests_exclude_cuda.txt to
$EXCLUDE which should already contain entries from run_tests_exclude.txt
instead of replacing the entries already contained.
* 11ed2364 src/libpfm4/config.mk: Added check in libpfm4/config.mk to check
if using icc. If so, the -Wno-unused-parameter flag will no longer be used
because icc does not provide it and provides no alternative.
* dedf73f6 src/papi_user_events.c: fget() returns an int it should be treated
as an int The coverity scan flagged that the int return by fget was stored
in a char. The main concern with this is the EOF that fget() could return is
-1. Do not want to mess up that value by typecasting to char and then back to
int.
* c4fcbe7e src/ctests/kufrin.c: Check return values of PAPI_get_cmp_opt() and
calloc A coverity scan showed that PAPI_get_cmp_opt() could potentially
return a negative number. Also it is good form to check the return value of
calloc to ensure it is a non-null pointer.
* e89d6ffa src/testlib/test_utils.c: Clean up test_print_event_header()
There were a couple warnings flagged by coverity on
test_print_events_header(). The function now checks for error conditions
flagged by PAPI_get_cmp_opt() and also frees memory allocated by a calloc()
function.
* c81d8b60 src/threads.h: Eliminate deadcode from threads.h If
HAVE_THREAD_LOCAL_STORAGE is defined, a portion of the
_papi_hwi_lookup_thread() will never be executed. This patch make either one
section or the other section of code be compiled. This will eliminate a
coverity scan warning about unreachable code.
* f70f3f56 src/ctests/all_native_events.c: Eliminate unused variable in
ctests/all_native_events.c Coverity identified a variable that was set but
never used in all_native_events.c. This patch removes the unused variable to
eliminate that warning.
* a9f29840 src/components/appio/appio.c: A couple places in appio.c used the
FD_SET() without initializing the variable. Coverity scan pointed out this
issue.
* 9e535ae2 src/components/rapl/linux-rapl.c: A Coverity scan pointed out that
read_msr() could potentially use an invalid value of fd for pread(). Need to
check the value of fd before using it.
* 7b55c675 src/components/rapl/linux-rapl.c: The arrays used for
initialization were hard coded to 1024 packages. Want to avoid hard coding
that so the day when machines with 1025 packages are available is a
non-event. Also changed the initialization code to avoid having the
initialization be O((number of packages)^2) in time complexity.
2012-07-27
* 3703995a src/papi_internal.c: Fix the component name predending code. When
presented with a NULL component .short_name, the code did the wrong thing.
* 5258db8b src/components/cuda/linux-cuda.c: Fix a warning in cuda.
2012-07-26
* ddd6f193 src/ctests/Makefile src/ctests/cycle_ratio.c: Add a test to
compute nominal CPU MHz from real cycles and use PAPI_TOT_CYC and
PAPI_REF_CYC to compute effective MHz. Warns if PAPI_REF_CYC is zero, which
can happen on kernels < ~3.3.
* fab5e9ef src/papiStdEventDefs.h src/papi_common_strings.h
src/papi_events.csv: Add PAPI_REF_CYC preset event. Define it as
UNHALTED_REFERENCE_CYCLES for all Intel platforms on which this native event
is supported.
2012-07-25
* 8b9b6bef src/papi_events.csv: Modify SandyBridge and IvyBridge tables:
SandyBridge FP_OPS only counts scalars; SP_OPS and DP_OPS now count
correctly, including SSE and AVX. IvyBridge can't count FP at all;
adjustments made to eliminate event differences with SandyBridge.
2012-07-26
* 5b11c982 src/components/cuda/linux-cuda.c: Fix the cuda component. The
cuda component prepended CUDA. to all its event names, this is no longer the
case.
2012-07-25
* db5b0857 src/papi_events.csv: Added 2 new preset definitions for BGQ. Note,
these presets use the new feature where a generic event mask together with an
ORed opcode string is used. This won't work until the new Q driver is
released (currently scheduled for end of August).
2012-07-24
* af7cd721 src/components/coretemp/linux-coretemp.c
src/components/coretemp/tests/coretemp_pretty.c
src/components/cuda/linux-cuda.c...: Enforce all our components to use the
same naming. We setteled on :'s as inter-event seperators. This also touches
a few of the components' tests, we changed the name field so their searches
needed help.
2012-07-23
* 57aeb9d4 src/papi_internal.c: Prepend component .short_name to each event
name. Use ::: as a sep.
2012-07-24
* 762e9584 src/ctests/multiplex2.c src/sw_multiplex.c: Fix multiplex2 test
It complained if it tried to add a multiplex event and PAPI properly told it
that it couldn't.
* 531870f1 src/papi_internal.c: Add sanity check at component init time
Looks for num_cntrs being larger than num_mpx_cntrs which doesn't make much
sense.
* 53ad0259 src/extras.c src/genpapifdef.c src/papi.c...: Rename
PAPI_MAX_HWCTRS to PAPI_EVENTS_IN_DERIVED_EVENT Hopefully this will make
things a little less confusing.
* 700af24b src/papi_internal.c: Change EventInfoArrayLength to always return
num_mpx_cntrs Things should be consistently using num_mpx_cntrs rather than
num_cntrs now. Issue reported by Steve Kaufmann
* d1570bec src/sw_multiplex.c: Fix sw_multiplex bug when max SW counters is
less than max HW counters this was causing kufrin and max_multiplex to fail
* f47f5d6a src/aix.c src/components/appio/appio.c
src/components/bgpm/CNKunit/linux-CNKunit.c...: Remove PAPI_MPX_DEF_DEG It
was not well documented and being used in confused ways all over the code.
Now there is a different define PAPI_MAX_SW_MPX_EVENTS used by the software
multiplex code. All other components have had the value replaced with just
the maximum number of counters. If a component can handle its own
(non-software) multiplexing it is up to it to set .num_mpx_cntrs to a value
that's different from .num_cntrs
* 0d83f5db src/papi_internal.c src/papi_internal.h: Split NativeBits off of
NativeInfoArray in EventSet previously we were doing some crazy thing where
we allocated both at once and then split them afterward. The new code is
easier to follow.
* 98f2ecbd src/papi_internal.c: Clean up EventSet creation Sort out which
sizes are used for allocating which structures.
* e1024579 src/Makefile.inc src/multiplex.c src/multiplex.h...: Rename the
multiplex files to be sw_multiplex That way it's more clear the stuff
included only relates to software multiplexing, not generic multiplexing.
* a6adc7ff src/multiplex.h src/papi_internal.c src/papi_internal.h: Move some
sw-multiplex specific terms out of papi_internal.h and into multiplex.h
2012-07-23
* 1ddbe117 src/components/README: Added note that lmsensors component
requires lmsensors version >=3.0.0
* 94676869 src/components/appio/appio.c
src/components/appio/tests/appio_test_pthreads.c: proper checking of return
codes in response to tests using coverity
* ea958b18 src/components/appio/tests/appio_list_events.c
src/components/appio/tests/appio_values_by_code.c: As component name in table
has been changed from appio.c to appio, we now use appio in the tests.
2012-07-20
* f212cc34 src/components/appio/appio.c
src/components/coretemp/linux-coretemp.c
src/components/coretemp_freebsd/coretemp_freebsd.c...: Add .short_name
entries to each component.
* 1e755836 src/papi_libpfm4_events.c src/perf_events.c: Fix use-after-free
bug in perf_events.c This turned up in the ctests/flops test, and Valgrind
made it easy to track down.
* 4580ed1d src/perf_events.c: Update perf_event.c rdpmc support Use the
libpfm4 definition for mmap rather than our custom one, now that libpfm4 has
been updated
* 47558b2c src/libpfm4/examples/showevtinfo.c
src/libpfm4/include/perfmon/perf_event.h
src/libpfm4/lib/pfmlib_intel_nhm_unc.c...: Import current libpfm4 from
libpfm4 git It has some minor uncore fixes plus the header changes needed
for rdpmc.
2012-07-17
* 65d4c06c src/linux-common.c: Reorder statements to ensure the fclose() are
performed Coverity pointed out that it was possible for resources to be
leaked in linux-common.c if the fscanf() encountered error. This reordering
of the statements ensures that the fclose() calls are done regards of the
results of the fscanf() functions.
2012-07-18
* 7bf071ff src/papi_user_events.c: Ensure that load_user_event_table() frees
files and memory on error A Coverity scan showed that an error condition in
load_user_event_table() function would exit the the function without closing
the table file or freeing allocated memory. This patch addresses those
issues.
2012-07-17
* 1ba52e35 src/components/stealtime/linux-stealtime.c: Ensure that
read_stealtime() closes the file in case of an error condition A Coverity
scan showed that an error condition could cause read_stealtime() to exit
without closing the file. This patch ensures that the file is closed
regardless of success or failure.
2012-07-18
* f37f22e5 src/papi_libpfm4_events.c: Fix warning in papi_libpfm4_events.c
We were setting a value but never using it.
* 8e8401bc src/testlib/test_utils.c: Remove unused variable in test_utils.c
Most of the machines in buildbot were complaining about this.
* 133ce6a9 src/linux-timer.c: Add missing papi_vector.h include to
linux-timer.c This was breaking on PPC Linux
2012-07-17
* 6fd3cedd src/perf_events.c: Fix perf_events.c warnings reported by ICC
* 21c8f932 src/perfctr-x86.c: Fix perfctr-x86 build with debug enabled
* 08f76743 src/configure src/configure.in src/linux-bgq.c: Attempt to fix
linux-bgq compilation error. It turns out BGQ uses the standard
linux-context.h header
* 43457f4f src/linux-bgq.c: Made check for opcodes more robust.
* d58116b4 src/perf_events.c: More cleanups of perf_events.c file
* 409438b7 src/freebsd-context.h src/freebsd.c src/freebsd.h: Fix FreeBSD
compile warnings Similar to the perfctr issues.
* 1e6dfb02 src/aix.c src/aix.h: Fix AIX build warnings They were similar in
cause to the perfctr issues.
* 3d0b5785 src/Rules.perfmon2 src/components/appio/appio.c
src/components/bgpm/CNKunit/linux-CNKunit.h...: Remove papi_vector.h include
from papi_internal.h There were some semi-circular dependencies that came up
with the context split changes. The easiest way to fix things for perfctr
was just move papi_vector.h out to be included explicitly. This touches a
lot of files because a lot of files include papi_internal.h This should also
fix the perfctr and perfmon2 builds that were broken yesterday.
2012-07-16
* a7a14a5b src/ctests/zero.c src/testlib/test_utils.c: Modify zero test to
warm up processor before measuring events, and report timing errors as signed
deviations. Modify test_utils add_two_events code to check for errors after
adding nominally valid events. This is a more rigorous test than just
counting available registers.
* de0860d3 src/perf_events.c: Remove perf_events.h module header It's no
longer needed, everything important is merged into the perf_events.c file.
* 22975f14 src/perf_events.c: Remove perf_event SYNCHRONIZED_RESET code This
was never defined and never used, just remove the code.
* 48750b8c src/perf_events.c: Remove papi_pe_allocate_registers On
perf_event this code wasn't really doing anything useful, as
update_control_state would end up re-doing any possible tests we could want
to do here.
* 1775566f src/Makefile.in src/Makefile.inc src/Rules.pfm4_pe...: Remove
"include CPUCOMPONENT" from papi_internal.h This was the last major
dependency on CPU component in common PAPI code. It was mostly necessary for
the ucontext definitions when trying to get the instruction pointer when
doing sampling. This change creates new OS-specific header files that handle
the ucontext related code, and has papi_internal.h include that instead.
* 969ce035 src/Rules.pfm4_pe src/Rules.pfm_pe src/configure...: Make
perf_event libpfm4 only perf_event libpfm3 support is not really needed
anymore and supporting it was cluttering up the perf_event component.
2012-07-13
* adad1d2a src/perf_events.c: Add init time error messages to perf_event
component
* 827ccc07 src/perf_events.c: Add perf_event rdpmc / fast_real_timer
detection Currently we need a custom copy of struct perf_event_mmap_page
because the version included with libpfm4 doesn't define the fields we need
yet.
* 4f82fe94 src/perf_events.c: Read in paranoid info on perf_events This
indicates whether a regular user can read CPU-specific or system-wide
measurements.
* 03080450 src/perf_events.c: Add proper perf_event detection Using the
official /proc/sys/kernel/perf_event_paranoid file
* 6e71d3f7 src/linux-bgq.c: Updated BGQ opcode stuff; cleaned up code.
2012-07-11
* 3114d3dc src/multiplex.c src/papi_internal.c src/perf_events.c: Minor
documentation improvements Plus fixes some typos
2012-07-09
* b60c0f0c src/perf_events.c: Minor cleanups to perf_events.c
* 075278a0 src/aix.c src/freebsd.c src/linux-bgp.c...: Change return value
for .allocate_registers For some reason it returned 1 on success and 0 on
failure. Change it so you return PAPI_OK on success and a PAPI error on
failure, to better match all of the other component vectors.
* 29d9e62b src/testlib/test_utils.c: Fixed the print_header routine to report
an error message if counters are not found, instead of a negative counter
number. Tested by forcing the return value negative; not by running on a Mac,
where the error first appeared.
* 74257334 src/ctests/Makefile src/ctests/remove_events.c: Add remove_events
test This just makes sure EventSets still work after an event has been
removed. This is probably covered by other more elaborate tests, but I
needed a simple test to make sure I wasn't breaking anything.
* 1372714f src/papi.c src/papi_internal.c src/papi_internal.h: Clean up,
rename, and comment _papi_hwi_remap_event_position I've found this section
of code to be confusing for a long time. I think I finally have it mostly
figured out. I've renamed it _papi_hwi_map_events_to_native() to better
describe what it does. The issue is that the native event list in an
EventSet can change at various times. At event add, event remove, and
somewhat unexpectedly, whenever ->update_control_state is called (a component
can re-arrange native events if it wants, to handle conflicts, etc.) Once
the native event list has been changed, _papi_hwi_map_events_to_native() has
to be called to make sure the events all map to the proper native_event
again. Currently we have the _papi_hwi_map_events_to_native() calls in odd
places. It seems to cover all possible needed locations, but analyzing that
we do takes a lot of analysis...
* f1b837d8 src/papi.c: Remove unused variable in papi.c
* 541bcf44 src/papi_internal.h: Update commens in papi_internal.h Some of
the EventSetInfo comments were out of date.
* e6587847 src/papi.c src/papi_internal.c src/papi_internal.h: Remove unused
paramater from _papi_hwi_remap_event_position The mysterious
_papi_hwi_remap_event_position function had a "thisindex" field that was
ignored. This will possibly speed PAPI_start() time as it was running a loop
over num_native_events on _papi_hwi_remap_event_position even though each
call did the same thing since the value being passed was ignored.
* 3ad3d14b src/papi_internal.c: Clean up and comment add_native_events in
papi_internal.c I'm chasing some weird perf_events behavior with the
papi_event_chooser. The add_native_events code is very hard to understand,
working on commenting it more.
* 4e5e7664 src/utils/event_chooser.c: Fix coverity warning in
papi_event_chooser
* 666249a8 src/jni/EventSet.java src/jni/FlipInfo.java
src/jni/FlopInfo.java...: RIP Java. Java PAPI wrappers have not been
supported for years (2005?). They are being removed to declutter the source.
* e18561fc src/papi_preset.c: Update cmpinfo->num_preset_events properly
This value wasn't being set if we were reading the presets directly from the
CSV file.
* 290ab7c3 src/utils/component.c: Have papi_component_avail report counter
and event info
* 7c421b9c src/testlib/test_utils.c src/utils/native_avail.c: Remove counter
number from the testlib header. The header was only reporting number of
counters for the CPU component, even though the header is printed for many
utils and the CPU component might not even be involved. This could be a bit
confusing, so remove it.
* 26432359 src/darwin-common.c src/darwin-memory.c: Improve OSX support This
properly detects CPU information now. You can get results like this:
Available native events and hardware information.
- PAPI Version : 4.9.0.0 Vendor string and code : GenuineIntel
(1) Model string and code : Intel(R) Core(TM) i5-2435M CPU @ 2.40GHz (42)
CPU Revision : 7.000000 CPUID Info : Family: 6
Model: 42 Stepping: 7 CPU Max Megahertz : 2400 CPU Min Megahertz
: 2400 CPUs per Node : 0 Total CPUs : 4 Running in
a VM : no Number Hardware Counters : -4 Max Multiplex Counters :
-4
-
2012-07-08
* 845d9ecb src/Makefile.inc src/configure src/configure.in...: Add Mac OSX
support This is enough that things compile and simple utilities run. No CPU
perf counter support.
2012-07-06
* ff6f9ab4 src/linux-bgq.c: missed to delete a debug output.
2012-04-17
* 12e9a11a RELEASENOTES.txt: Release notes for the 4.4 release.
2012-07-06
* ac2eac56 src/papi.c src/papi.h: Add a PAPI_disable_component_by_name entry
point.
* 8c490849 src/components/coretemp_freebsd/coretemp_freebsd.c src/freebsd.c:
Fix FreeBSD to work I'm not sure how it ever worked in the past. With these
changes I can at least do a papi_component_avail and a papi_native_avail and
get sane results
* 108b5ce6 src/freebsd.c src/freebsd.h src/freebsd/map-atom.c...: Fix FreeBSD
build some of the recent changes broke the FreeBSD build
* 40a60f0a src/linux-bgq.c src/linux-bgq.h: Added BGQ's opcode and generic
event functionality to PAPI. For BGQ there are multiple ways to define
presets. The naive way is to derive from multiple events. This eats up
multiple counters and we lose sample capability as well as overflow
capability. On the other side, some events come with multiple InstrGroup
derived in the field. If that's the case we can use a generic event and
opcodes to filter multiple groups in a single counter. This is not working
properly yet due to a known error in BGPM. Bgpm_AddEvent() does not work
properly when multiple generic events are added to an EventSet. The BGPM
folks have been made aware of this issue, they confirmed the error, and they
are currently working on a fix.
* 6f72b70f src/papi_events_table.sh: Make this script robust enough to handle
any line ending, including CR (Mac), CRLF (Windows), and LF (Unix). It
appears that google mail now automagically converts attached files to CRLF
format.
* 765ed0d2 src/papi_internal.c: Fix a type warning in the UE code.
* 94bc1b15 src/MACROS: Remove the MACROS file it held out of date info and
hasn't been touched since 2004
* d19e73ba src/ctests/Makefile src/ctests/clockcore.c
src/testlib/Makefile...: Move the clockcore.c file from ctests to testlib
it's common code used by multiple tests, including some in the utils
directory also add a function definition to fix a build-time warning
* 1101a6aa src/aix-lock.h src/aix.h src/configure...: Make papi_lock.h
changes for non Linux architectures
2012-07-05
* 3b82b03d src/Makefile.in src/Makefile.inc src/aix.c...: Make the PAPI locks
be tied to OS, not to CPU There is not a papi_lock.h file that when included
gets the proper lock include for the OS. This fixes a lot of previous build
hacks where a CPU component was needed in order for locks to work.
* 0632ef42 src/threads.c: Fix spurious init_thread call in threads.c
threads.c was calling init_thread() on all components, even ones that were
disabled Fix it to honor the disable bit, as well as for shutdown_thread().
This was causing perfctr disable code to not work.
* 19d9de7f src/Makefile.in src/Makefile.inc src/Rules.pfm4_pe...: Replace
SUBSTRATE with CPUCOMPONENT in build This was mostly a configure/build
change but it also cleaned up some cases where we were including SUBSTRATE
where we didn't have to.
* 829780db src/solaris-common.c src/solaris-common.h
src/solaris-niagara2.c...: Move some common solaris code to solaris-common
* 681ef027 src/configure src/configure.in src/solaris-memory.c...: Merge
solaris-memory.c and solaris-niagara2-memory.c
* bbd41743 src/solaris-ultra/get_tick.S src/solaris.h: Remove
solaris-ultra/get_tick.S Nothing was using it.
* dc3b6920 src/papi_sys_headers.h src/solaris.h: Remove papi_sys_headers.h
Solaris was the only thing including it, and it wasn't really using it.
* 7ccfa9df src/Makefile.in src/Makefile.inc src/configure...: Move move OS
specific code into the new OSFILESSRC Linux in particular was using MISC for
this.
* 6f16c0c5 src/configure: Re-run autoconf to pickup the substrate=>component
change.
* cfff1ede src/Makefile.in src/Makefile.inc src/configure...: Remove
MEMSUBSTR In reality, what we want instead of a Memory Substrate is an idea
of the OS-specific common code that includes the memory substrate. This
change adds OSFILESSRC and OSFILESOBJ to handle this case in configure
* ca4729e6 src/configure.in: Separate out MEMSUBSTR and make it per-OS
* 3148cba5 src/Matlab/PAPI_Matlab.dsp src/ctests/calibrate.c
src/ctests/flops.c...: RIP Windows, remove the windows support code. Windows
has not been activly supported since the transition to Component PAPI (4.0)
This cleans up the code-base.
2012-07-03
* a366adf7 src/papi.c src/utils/error_codes.c: Change PAPI_strerror and
PAPI_perror to behave more like thir POSIX namesakes. PAPI_error_descr is
made redundant and removed as a result.
2012-07-05
* 7df46f81 src/Rules.pfm src/aix.c
src/components/coretemp/linux-coretemp.c...: Move uses of PAPI_ESBSTR to
PAPI_ECMP I left PAPI_ESBSTR defined too for backward compatability. Also
some of the changes update PAPI_ESBSTR to be a more relevant error code, it
one is available.
2012-07-03
* fdb348ad src/components/coretemp_freebsd/coretemp_freebsd.c
src/components/example/example.c src/components/net/linux-net.c...: A few
more substrate removals
* 791747c1 src/cpus.c src/papi.h src/perf_events.c...: Fix bugs introduced by
substrate -> component change Fix some stupid compile bugs that I missed.
* 79b01a47 src/aix.c src/components/appio/appio.c
src/components/bgpm/CNKunit/linux-CNKunit.c...: More substrate -> component
changes This changes the vectors .init_substrate -> .init_component
.shutdown_substrate -> .shutdown_substrate .init -> .init_thread .shutdown ->
.shutdown_thread hopefully this will make the code clearer.
* 02a10d71 src/Makefile.inc src/aix.c src/cpus.c...: Rename "substrate" to
"component" This first pass only re-names things in comments.
2012-07-02
* c4bbff1c src/papi.c src/papi.h: Minor documentation fixes Found when
writing up the PAPI 5.0 changes document
2012-06-30
* f9cb7346 src/components/vmware/vmware.c: Fix vmware component apparently I
forgot to test the build with the vmguestlib support disabled.
2012-06-22
* 599040d1 src/components/coretemp/linux-coretemp.c
src/components/rapl/linux-rapl.c
src/components/stealtime/linux-stealtime.c...: Fix libpfm4 ntv_event_to_info
event_info_t on other components This was actually a widespead problem due
to cut-and-paste.
* 2b51b439 src/papi_libpfm4_events.c: Properly fix libpfm4 ntv_event_to_info
event_info_t event value The previous fix was subtly wrong. This is the
proper fix, which is to do nothing inside of papi_libpfm4_events.c because
papi_internal.c does the right thing for us and we were overwriting that with
the wrong value.
* a4f576bf src/ctests/overflow_allcounters.c src/testlib/papi_test.h
src/testlib/test_utils.c: Clean up overflow_allcounters code While tracking
down a previous issue I also cleaned up the overflow_allcounters test code to
use some of the new interfaces.
* 6903e053 src/papi_libpfm4_events.c: Fix libpfm4 ntv_event_to_info
event_info_t event value The recently added libpfm4 ntv_event_to_info
function was not properly oring PAPI_NATIVE_MASK to the event value in the
event_info_t struct. That means if you tried to use that event value to add
an event it would fail. The overflow_allcounters test broke because of this.
* 420c3d11 src/ctests/Makefile src/ctests/disable_component.c src/papi.c...:
Add PAPI_get_component_index() and PAPI_disable_component()
PAPI_get_component_index() will return a component index if you give it the
name of a component to match. This saves you having to iterate the entire
component list looking. PAPI_disable_component() will manually mark a
component as disabled. It has to be run before PAPI_library_init() is called.
* 11946525 src/aix.c src/components/cuda/linux-cuda.c
src/components/example/example.c...: Standardize component names to not end
in .c We were being inconsistent; the time to make them all be the same is
now before 5.0 gets out.
2012-06-21
* 274e1ad8 src/components/vmware/tests/Makefile: Fix cut-and-paste error in
the vmware component Makefile
* 85d6438d src/utils/event_chooser.c: Update papi_event_chooser to work with
components Now you can specify events from components and it will tell you
all the other events on that component that can run with it. Previously the
utility was limited to the CPU component (0) only.
* 3c2fcc83 src/papi_libpfm3_events.c src/papi_libpfm4_events.c
src/perf_events.c: Hook up .ntv_code_to_info on perf_event
* 36e864b3 src/papi_libpfm4_events.c src/papi_libpfm_events.h
src/perf_events.c: Enable support for showing extended umasks on perf_event
With this change, papi_native_avail now shows event umasks such as :u, :k,
:c, :e, and :i. (user, kernel, cmask, edge-trigger, invert) Thes are boolean
or integer events. They were supported by previous PAPI but they were never
enumerated.
* 8f3e305e src/components/coretemp/linux-coretemp.c: Fix cut-and-paste error
in linux-coretemp.c that could lead to wrong size being copied
* 0eedd562 src/libpfm4/lib/events/intel_atom_events.h
src/libpfm4/lib/events/intel_core_events.h
src/libpfm4/lib/events/intel_coreduo_events.h...: Import most recent libpfm4
git This fixes an issue where there can be confusion between :i and :i=1
type events. It also has initial support for Uncore, though you need a
specially patched kernel and PAPI does not support it yet.
* 2f86ec78 src/components/appio/tests/Makefile
src/components/appio/tests/appio_test_blocking.c
.../appio/tests/appio_test_fread_fwrite.c...: - Fixed tests verbosity by
using TESTS_QUIET macro - Fixed Makefile to only include necessary tests for
automatic builds (skip blocking tests that read from stdin)
* 6936b955 src/components/appio/README src/components/appio/appio.c
src/components/appio/appio.h...: Added polling of read/write descriptor to
check which operations would block.
* 48cacccf src/papi.h: Add back PAPI_COMPONENT_INDEX() for backward
compatability It turns out some people were using this for cases other than
enumeration. The proper way to do things now is to use
PAPI_get_event_component() which is what this PAPI_COMPONENT_INDEX() now maps
to.
* d1ed12b7 src/ctests/Makefile src/ctests/get_event_component.c
src/papi.c...: Add PAPI_get_event_component() This function returns the
component an event belongs to. It also adds a test to test this
functionality.
2012-06-20
* ffccf633 src/papi.h: Add component_type field to .cmp_info The idea is
we'll specify CPU, I/O, GPU, hardware, etc.
* 9998eecc src/components/lmsensors/Rules.lmsensors: Another lmsensors build
fix
* caa94d64 src/components/lmsensors/linux-lmsensors.c: Update lmsensors
component to actually compile. I finally found a machine with lmsensors
installed.
* fbcde325 src/components/lmsensors/linux-lmsensors.c
src/components/lmsensors/linux-lmsensors.h: Update lmsensor component Unlike
the other components it hadn't been updated to PAPI 5 standards. Also, it
was wrongly de-allocating all state in "_shutdown" rather than
"_shutdown_substrate" which was causing double-frees during tests.
* 0d3c0ae2 src/papi_internal.c: Add some extra debugging to
_papi_hwi_get_native_event_info
* 5961c03d src/aix.c src/components/nvml/linux-nvml.c
src/ctests/subinfo.c...: Remove cntr_groups from .cmp_info This information
is better exposed by enumeration.
* 2b4193fd src/utils/event_chooser.c: Cleanup and comment event_chooser code
* 7f9fab2b src/ctests/all_native_events.c: Cleanup and add comments to
all_native_events.c
* a245b502 src/components/nvml/linux-nvml.c src/ctests/subinfo.c
src/freebsd.c...: Remove profile_ear from .cmp_info The CPU components
should handle this internally.
* bca07f3c src/papi.c: Add comments to the PAPI_sprofil code.
* b1e2090c src/papi.c: Minor papi.c cleanups Fix some minor cosmetic things,
including a typo in a comment.
* 8f3aef4a src/ctests/subinfo.c src/papi.h: Remove opcode_match_width field
from .cmp_info This should be exposed via enumeration and not by a field in
the generic cmp_info structure.
* 047af629 src/components/nvml/linux-nvml.c src/ctests/subinfo.c
src/papi.h...: Remove cntr_OPCM_events field from .cmp_info This should be
exposed via enumeration and not by a field in the generic cmp_info structure.
* 3f1f9e10 src/components/nvml/linux-nvml.c src/ctests/subinfo.c
src/papi.h...: Remove cntr_DEAR_events field from .cmp_info This should be
exposed via enumeration and not by a field in the generic cmp_info structure.
* 962c642a src/components/nvml/linux-nvml.c src/ctests/subinfo.c
src/papi.h...: Remove cntr_IEAR_events field from .cmp_info This should be
exposed via enumeration and not by a field in the generic cmp_info structure.
* 5aa7eac1 src/components/nvml/linux-nvml.c src/ctests/subinfo.c
src/papi.h...: Remove instr_address_range from .cmp_info This feature should
be deteced via enumeration, not via a flag in the generic .cmp_info
structure.
* 1bf68d5d src/components/nvml/linux-nvml.c src/ctests/subinfo.c
src/papi.h...: Remove data_address_range field from .cmp_info The proper way
to detect this feature is via enumeration.