Will, Could you provide the list of events detected by libpfm4? You need to run as root: sudo examples/showevtinfo -L Clearly the ubo uncore event should not be processed as part of tracepoints.
On Tue, Nov 3, 2015 at 3:48 PM, William Cohen <wco...@redhat.com> wrote: > When running some of the PAPI tests from PAPI git checkout as root we > noticed that fmultiplex1 failed sometimes with an invalid free, but this > problem did not occur when running the test as a normal user. It > looks like the problem is tied to libpfm getting additional tracepoint > events. The problem has been reproduced on a Intel Westmere machine > running RHEL7 and a Intel Ivy Bridge machine running Fedora 22. > > Steps to reproduce: > > # git clone https://icl.cs.utk.edu/git/papi.git/ > # cd papi/src > # CFLAGS="-g" ./configure > # make > # cd ftests > > # ulimit -c unlimited > # ./fmultiplex1 > > multiplex1: Using *** iterations > case1: Does PAPI_multiplex_init() not break regular operation? > Event set list > 1: PAPI_TOT_INS > 2: PAPI_TOT_CYC > > case1: 6983630740 6892812568 > case2: Does setmpx/add work? > Event set list > 1: PAPI_TOT_INS > 2: PAPI_TOT_CYC > > case2: 6983630766 6892856004 > *** Error in `./fmultiplex1': free(): invalid pointer: 0x00000000004e7543 > *** > ======= Backtrace: ========= > /lib64/libc.so.6(+0x7cfe1)[0x7fbe28055fe1] > ./fmultiplex1[0x4212cc] > ./fmultiplex1[0x41d6e2] > ./fmultiplex1[0x42a6f5] > ./fmultiplex1[0x41a4c8] > ./fmultiplex1[0x40a94e] > ./fmultiplex1[0x4033e1] > ./fmultiplex1[0x40390e] > ./fmultiplex1[0x403a9a] > /lib64/libc.so.6(__libc_start_main+0xf5)[0x7fbe27ffab15] > ./fmultiplex1[0x402421] > ======= Memory map: ======== > 00400000-00565000 r-xp 00000000 fd:00 136896780 > /root/testing/papi/src/ftests/fmultiplex1 > 00765000-00766000 r--p 00165000 fd:00 136896780 > /root/testing/papi/src/ftests/fmultiplex1 > 00766000-00780000 rw-p 00166000 fd:00 136896780 > /root/testing/papi/src/ftests/fmultiplex1 > 00780000-04787000 rw-p 00000000 00:00 0 > 05948000-059f7000 rw-p 00000000 00:00 0 > [heap] > 7fbe20000000-7fbe20021000 rw-p 00000000 00:00 0 > 7fbe20021000-7fbe24000000 ---p 00000000 00:00 0 > 7fbe27fd9000-7fbe2818f000 r-xp 00000000 fd:00 201328876 > /usr/lib64/libc-2.17.so > 7fbe2818f000-7fbe2838f000 ---p 001b6000 fd:00 201328876 > /usr/lib64/libc-2.17.so > 7fbe2838f000-7fbe28393000 r--p 001b6000 fd:00 201328876 > /usr/lib64/libc-2.17.so > 7fbe28393000-7fbe28395000 rw-p 001ba000 fd:00 201328876 > /usr/lib64/libc-2.17.so > 7fbe28395000-7fbe2839a000 rw-p 00000000 00:00 0 > 7fbe2839a000-7fbe283d5000 r-xp 00000000 fd:00 201329542 > /usr/lib64/libquadmath.so.0.0.0 > 7fbe283d5000-7fbe285d4000 ---p 0003b000 fd:00 201329542 > /usr/lib64/libquadmath.so.0.0.0 > 7fbe285d4000-7fbe285d5000 r--p 0003a000 fd:00 201329542 > /usr/lib64/libquadmath.so.0.0.0 > 7fbe285d5000-7fbe285d6000 rw-p 0003b000 fd:00 201329542 > /usr/lib64/libquadmath.so.0.0.0 > 7fbe285d6000-7fbe285eb000 r-xp 00000000 fd:00 201326732 > /usr/lib64/libgcc_s-4.8.5-20150702.so.1 > 7fbe285eb000-7fbe287ea000 ---p 00015000 fd:00 201326732 > /usr/lib64/libgcc_s-4.8.5-20150702.so.1 > 7fbe287ea000-7fbe287eb000 r--p 00014000 fd:00 201326732 > /usr/lib64/libgcc_s-4.8.5-20150702.so.1 > 7fbe287eb000-7fbe287ec000 rw-p 00015000 fd:00 201326732 > /usr/lib64/libgcc_s-4.8.5-20150702.so.1 > 7fbe287ec000-7fbe288ed000 r-xp 00000000 fd:00 201328884 > /usr/lib64/libm-2.17.so > 7fbe288ed000-7fbe28aec000 ---p 00101000 fd:00 201328884 > /usr/lib64/libm-2.17.so > 7fbe28aec000-7fbe28aed000 r--p 00100000 fd:00 201328884 > /usr/lib64/libm-2.17.so > 7fbe28aed000-7fbe28aee000 rw-p 00101000 fd:00 201328884 > /usr/lib64/libm-2.17.so > 7fbe28aee000-7fbe28c0d000 r-xp 00000000 fd:00 201329761 > /usr/lib64/libgfortran.so.3.0.0 > 7fbe28c0d000-7fbe28e0d000 ---p 0011f000 fd:00 201329761 > /usr/lib64/libgfortran.so.3.0.0 > 7fbe28e0d000-7fbe28e0f000 r--p 0011f000 fd:00 201329761 > /usr/lib64/libgfortran.so.3.0.0 > 7fbe28e0f000-7fbe28e11000 rw-p 00121000 fd:00 201329761 > /usr/lib64/libgfortran.so.3.0.0 > 7fbe28e11000-7fbe28e32000 r-xp 00000000 fd:00 201328869 > /usr/lib64/ld-2.17.so > 7fbe29023000-7fbe29027000 rw-p 00000000 00:00 0 > 7fbe29030000-7fbe29032000 rw-p 00000000 00:00 0 > 7fbe29032000-7fbe29033000 r--p 00021000 fd:00 201328869 > /usr/lib64/ld-2.17.so > 7fbe29033000-7fbe29034000 rw-p 00022000 fd:00 201328869 > /usr/lib64/ld-2.17.so > 7fbe29034000-7fbe29035000 rw-p 00000000 00:00 0 > 7ffdb0d6f000-7ffdb0d90000 rw-p 00000000 00:00 0 > [stack] > 7ffdb0dfb000-7ffdb0dfd000 r-xp 00000000 00:00 0 > [vdso] > ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 > [vsyscall] > > Program received signal SIGABRT: Process abort signal. > > Backtrace for this error: > #0 0x7FBE28B07467 > #1 0x7FBE28B07AAE > #2 0x7FBE2800E66F > #3 0x7FBE2800E5F7 > #4 0x7FBE2800FCE7 > #5 0x7FBE2804E316 > #6 0x7FBE28055FE0 > #7 0x4212CB in pfm_perf_terminate at pfmlib_perf_event_pmu.c:793 > #8 0x41D6E1 in pfm_terminate at pfmlib_common.c:839 > #9 0x42A6F4 in _papi_libpfm4_shutdown at papi_libpfm4_events.c:77 > #10 0x41A4C7 in _peu_shutdown_component at perf_event_uncore.c:696 > #11 0x40A94D in PAPI_shutdown at papi.c:4551 > #12 0x4033E0 in case2_ > #13 0x40390D in MAIN__ at fmultiplex1.F:? > Aborted (core dumped) > > > Using gdb to see where the program died: > > # gdb ./fmultiplex1 core.* > GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-80.el7 > Copyright (C) 2013 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later < > http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "x86_64-redhat-linux-gnu". > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>... > Reading symbols from /root/testing/papi/src/ftests/fmultiplex1...done. > [New LWP 16871] > Core was generated by `./fmultiplex1'. > Program terminated with signal 6, Aborted. > #0 0x00007fbe2800e5f7 in __GI_raise (sig=sig@entry=6) > at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 > 56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); > Missing separate debuginfos, use: debuginfo-install > libgcc-4.8.5-4.el7.x86_64 libgfortran-4.8.5-4.el7.x86_64 > libquadmath-4.8.5-4.el7.x86_64 > (gdb) where > #0 0x00007fbe2800e5f7 in __GI_raise (sig=sig@entry=6) > at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 > #1 0x00007fbe2800fce8 in __GI_abort () at abort.c:90 > #2 0x00007fbe2804e317 in __libc_message (do_abort=do_abort@entry=2, > fmt=fmt@entry=0x7fbe28157988 "*** Error in `%s': %s: 0x%s ***\n") > at ../sysdeps/unix/sysv/linux/libc_fatal.c:196 > #3 0x00007fbe28055fe1 in malloc_printerr (ar_ptr=0x7fbe28393760 > <main_arena>, > ptr=<optimized out>, str=0x7fbe28155074 "free(): invalid pointer", > action=3) at malloc.c:5013 > #4 _int_free (av=0x7fbe28393760 <main_arena>, p=<optimized out>, > have_lock=0) > at malloc.c:3835 > #5 0x00000000004212cc in pfm_perf_terminate ( > this=0x774960 <perf_event_support>) at pfmlib_perf_event_pmu.c:793 > #6 0x000000000041d6e2 in pfm_terminate () at pfmlib_common.c:839 > #7 0x000000000042a6f5 in _papi_libpfm4_shutdown () at > papi_libpfm4_events.c:77 > #8 0x000000000041a4c8 in _peu_shutdown_component () > at components/perf_event_uncore/perf_event_uncore.c:696 > #9 0x000000000040a94e in PAPI_shutdown () at papi.c:4551 > #10 0x00000000004033e1 in case2_ () > #11 0x000000000040390e in MAIN__ () > #12 0x0000000000403a9a in main () > > To see what is happinging in pfm_terminate(): > > (gdb) up > #1 0x00007fbe2800fce8 in __GI_abort () at abort.c:90 > 90 raise (SIGABRT); > (gdb) up > #2 0x00007fbe2804e317 in __libc_message (do_abort=do_abort@entry=2, > fmt=fmt@entry=0x7fbe28157988 "*** Error in `%s': %s: 0x%s ***\n") > at ../sysdeps/unix/sysv/linux/libc_fatal.c:196 > 196 abort (); > (gdb) up > #3 0x00007fbe28055fe1 in malloc_printerr (ar_ptr=0x7fbe28393760 > <main_arena>, > ptr=<optimized out>, str=0x7fbe28155074 "free(): invalid pointer", > action=3) at malloc.c:5013 > 5013 __libc_message (action & 2, "*** Error in `%s': %s: 0x%s > ***\n", > (gdb) up > #4 _int_free (av=0x7fbe28393760 <main_arena>, p=<optimized out>, > have_lock=0) > at malloc.c:3835 > 3835 malloc_printerr (check_action, errstr, chunk2mem(p), av); > (gdb) up > #5 0x00000000004212cc in pfm_perf_terminate ( > this=0x774960 <perf_event_support>) at pfmlib_perf_event_pmu.c:793 > 793 free((void *)p->name); > (gdb) print p->type > $1 = 2 > (gdb) print p->name > $2 = 0x4e7543 "snbep_unc_ubo" > > p->type of 2 is a trace point, but that name definitely not a tracepoint > name. > > -Will > > > ------------------------------------------------------------------------------ > _______________________________________________ > perfmon2-devel mailing list > perfmon2-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/perfmon2-devel >
------------------------------------------------------------------------------
_______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel