Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package oprofile for openSUSE:Factory checked in at 2021-01-18 11:28:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/oprofile (Old) and /work/SRC/openSUSE:Factory/.oprofile.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oprofile" Mon Jan 18 11:28:56 2021 rev:55 rq:863768 version:1.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/oprofile/oprofile.changes 2020-10-13 15:48:25.261521585 +0200 +++ /work/SRC/openSUSE:Factory/.oprofile.new.28504/oprofile.changes 2021-01-18 11:32:41.804704829 +0100 @@ -1,0 +2,13 @@ +Sat Jan 16 18:21:11 UTC 2021 - Dirk M??ller <[email protected]> + +- update to 1.4.0: + * New/updated Processor Support + * Marvell (Cavium) ThunderX2 + * Hygon Dhyana CPU + * Bugfixes + * Does not build with binutils-gdb master. + * ocount leaves orphan process on error +- remove oprofile-handle-empty-event-name-spec-gracefully-for-ppc.patch, + oprofile-handle-binutils-2_34.patch: upstream + +------------------------------------------------------------------- Old: ---- oprofile-1.3.0.tar.gz oprofile-handle-binutils-2_34.patch oprofile-handle-empty-event-name-spec-gracefully-for-ppc.patch New: ---- oprofile-1.4.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ oprofile.spec ++++++ --- /var/tmp/diff_new_pack.WgBP75/_old 2021-01-18 11:32:42.492707827 +0100 +++ /var/tmp/diff_new_pack.WgBP75/_new 2021-01-18 11:32:42.496707848 +0100 @@ -1,7 +1,7 @@ # # spec file for package oprofile # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: oprofile -Version: 1.3.0 +Version: 1.4.0 Release: 0 Summary: System-Wide Profiler for Linux Systems License: GPL-2.0-or-later AND LGPL-2.1-or-later @@ -30,9 +30,6 @@ Source5: README-BEFORE-ADDING-PATCHES Patch1: %{name}-no-libjvm-version.patch Patch2: %{name}-pfm-ppc.patch -Patch3: %{name}-handle-empty-event-name-spec-gracefully-for-ppc.patch -# PATCH-FIX-UPSTREAM -Patch4: %{name}-handle-binutils-2_34.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: binutils-devel @@ -106,7 +103,6 @@ mkdir -p java/include # copy files necessary to build Java agent libraries # libjvmpi_oprofile.so and libjvmti_oprofile.so -# %S:4 is rpm speak for Source4 (jvmpi.h) ln -s %{_libdir}/jvm/java/include/* java/include test -f java/include/jvmpi.h || ln -s %{SOURCE4} java/include ++++++ oprofile-1.3.0.tar.gz -> oprofile-1.4.0.tar.gz ++++++ ++++ 4607 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/agents/jvmti/libjvmti_oprofile.c new/oprofile-1.4.0/agents/jvmti/libjvmti_oprofile.c --- old/oprofile-1.3.0/agents/jvmti/libjvmti_oprofile.c 2015-06-05 22:39:34.000000000 +0200 +++ new/oprofile-1.4.0/agents/jvmti/libjvmti_oprofile.c 2019-08-14 20:01:53.000000000 +0200 @@ -176,7 +176,7 @@ int cnt = strlen(method_name) + strlen(class_signature) + strlen(method_signature) + 2; char buf[cnt]; - strncpy(buf, class_signature, cnt - 1); + strncpy(buf, class_signature, sizeof(buf) - 1); strncat(buf, method_name, cnt - strlen(buf) - 1); strncat(buf, method_signature, cnt - strlen(buf) - 1); if (op_write_native_code(agent_hdl, buf, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/config.h.in new/oprofile-1.4.0/config.h.in --- old/oprofile-1.3.0/config.h.in 2018-07-16 21:39:43.000000000 +0200 +++ new/oprofile-1.4.0/config.h.in 2020-07-20 17:32:19.000000000 +0200 @@ -3,6 +3,9 @@ /* whether popt prototype takes a const char ** */ #undef CONST_POPT +/* Using binutils 2.34 */ +#undef HAVE_BINUTILS_234 + /* Define to 1 if you have the declaration of `basename', and to 0 if you don't. */ #undef HAVE_DECL_BASENAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/configure.ac new/oprofile-1.4.0/configure.ac --- old/oprofile-1.3.0/configure.ac 2018-07-16 21:38:03.000000000 +0200 +++ new/oprofile-1.4.0/configure.ac 2020-07-20 17:26:39.000000000 +0200 @@ -11,7 +11,7 @@ AC_PREREQ(2.13) -AC_INIT([OProfile], [1.3.0]) +AC_INIT([OProfile], [1.4.0]) AC_CONFIG_SRCDIR([libop/op_config.h]) AM_INIT_AUTOMAKE AC_CONFIG_HEADERS(config.h) @@ -224,6 +224,26 @@ fi AC_SUBST(PFM_LIB) +HAVE_BINUTILS_234='1' +AC_MSG_CHECKING([whether binutils 2.34 is being used]) +rm -f test-for-BINUTILS +AC_LANG_CONFTEST( + [AC_LANG_PROGRAM([[#include <bfd.h>]], + [[asection * sect; + bfd_size_type buildid_sect_size = bfd_section_size(sect); + return 0;]]) + ]) +$CC conftest.$ac_ext $CFLAGS $LDFLAGS $LIBS $PERF_EVENT_FLAGS -o test-for-BINUTILS > /dev/null 2>&1 +if test -f test-for-BINUTILS; then + echo "yes" + HAVE_BINUTILS_234='1' +else + echo "no" + HAVE_BINUTILS_234='0' +fi +AC_DEFINE_UNQUOTED(HAVE_BINUTILS_234, $HAVE_BINUTILS_234, [Using binutils 2.34]) +rm -f test-for-BINUTILS* + AC_ARG_WITH(java, [ --with-java=java-home Path to Java home directory (default is "no"; "yes" will use /usr as Java home)], JAVA_HOMEDIR=$with_java, [with_java=no]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/doc/oprofile.1 new/oprofile-1.4.0/doc/oprofile.1 --- old/oprofile-1.3.0/doc/oprofile.1 2018-07-16 21:50:43.000000000 +0200 +++ new/oprofile-1.4.0/doc/oprofile.1 2020-07-20 17:32:18.000000000 +0200 @@ -1,4 +1,4 @@ -.TH OPROFILE 1 "Mon 16 July 2018" "oprofile 1.3.0" +.TH OPROFILE 1 "Mon 20 July 2020" "oprofile 1.4.0" .UC 4 .SH NAME oprofile \- a statistical profiler for Linux systems, capable of profiling all running code @@ -178,7 +178,7 @@ .SH VERSION .TP -This man page is current for oprofile-1.3.0. +This man page is current for oprofile-1.4.0. .SH SEE ALSO .BR /usr/local/share/doc/oprofile/, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/events/Makefile.am new/oprofile-1.4.0/events/Makefile.am --- old/oprofile-1.3.0/events/Makefile.am 2018-01-18 17:46:48.000000000 +0100 +++ new/oprofile-1.4.0/events/Makefile.am 2019-03-21 20:15:18.000000000 +0100 @@ -59,6 +59,7 @@ arm/armv8-xgene/events arm/armv8-xgene/unit_masks \ arm/armv8-ca57/events arm/armv8-ca57/unit_masks \ arm/armv8-ca53/events arm/armv8-ca53/unit_masks \ + arm/armv8-thunderx2/events arm/armv8-thunderx2/unit_masks \ mips/20K/events mips/20K/unit_masks \ mips/24K/events mips/24K/unit_masks \ mips/25K/events mips/25K/unit_masks \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/events/arm/armv8-thunderx2/events new/oprofile-1.4.0/events/arm/armv8-thunderx2/events --- old/oprofile-1.3.0/events/arm/armv8-thunderx2/events 1970-01-01 01:00:00.000000000 +0100 +++ new/oprofile-1.4.0/events/arm/armv8-thunderx2/events 2019-03-21 20:15:18.000000000 +0100 @@ -0,0 +1,168 @@ +# Cavium ThunderX2 events +# +# The performance event information is taken from +# https://www.marvell.com/documents/hrur6mybdvk5uki1w0z7/ +# +# Note: minimum event values based on armv8-xgene/events +# +event:0x0000 um:zero minimum:500 name:SW_INCR : Instruction architecturally executed, condition code check pass, software increment +event:0x0001 um:zero minimum:5000 name:L1I_CACHE_REFILL : Level 1 instruction cache refill +event:0x0002 um:zero minimum:5000 name:L1I_TLB_REFILL : Level 1 instruction TLB refill +event:0x0003 um:zero minimum:5000 name:L1D_CACHE_REFILL : Level 1 data cache refill +event:0x0004 um:zero minimum:5000 name:L1D_CACHE : Level 1 data cache access +event:0x0005 um:zero minimum:5000 name:L1D_TLB_REFILL : Level 1 data TLB refill +event:0x0006 um:zero minimum:100000 name:LD_RETIRED : Instruction architecturally executed, condition code check pass, load +event:0x0007 um:zero minimum:100000 name:ST_RETIRED : Instruction architecturally executed, condition code check pass, store +event:0x0008 um:zero minimum:100000 name:INST_RETIRED : Instruction architecturally executed +event:0x0009 um:zero minimum:500 name:EXC_TAKEN : Exception taken +event:0x000A um:zero minimum:500 name:EXC_RETURN : Instruction architecturally executed, condition code check pass, exception return +event:0x000B um:zero minimum:500 name:CID_WRITE_RETIRED : Instruction architecturally executed, condition code check pass, write to CONTEXTIDR +event:0x000D um:zero minimum:5000 name:BR_IMMED_RETIRED : Instruction architecturally executed, immediate branch +event:0x000E um:zero minimum:5000 name:BR_RETURN_RETIRED : Instruction architecturally executed, condition code check pass, procedure return +event:0x000F um:zero minimum:500 name:UNALIGNED_LDST_RETIRED : Instruction architecturally executed, condition code check pass, unaligned load or store +event:0x0010 um:zero minimum:5000 name:BR_MIS_PRED : Mispredicted or not predicted branch speculatively executed +event:0x0011 um:zero minimum:100000 name:CPU_CYCLES : Cycle +event:0x0012 um:zero minimum:5000 name:BR_PRED : Predictable branch speculatively executed +event:0x0013 um:zero minimum:100000 name:MEM_ACCESS : Data memory access +event:0x0014 um:zero minimum:5000 name:L1I_CACHE : Level 1 instruction cache access +event:0x0015 um:zero minimum:5000 name:L1D_CACHE_WB : Level 1 data cache write-back +event:0x0016 um:zero minimum:5000 name:L2D_CACHE : Level 2 data/unified cache access +event:0x0017 um:zero minimum:5000 name:L2D_CACHE_REFILL : Level 2 data/unified cache refill +event:0x0018 um:zero minimum:5000 name:L2D_CACHE_WB : Level 2 data/unified cache write back +event:0x0019 um:zero minimum:5000 name:BUS_ACCESS : Bus access +event:0x001B um:zero minimum:100000 name:INST_SPEC : Operation speculatively executed +event:0x001C um:zero minimum:5000 name:TTBR_WRITE_RETIRED : Instruction architecturally executed, condition code check pass, write to TTBR +#event:0x001E um:zero minimum:5000 name:CHAIN : For odd-numbered counters, increments the count by one for each overflow of the preceding even numbered counter +event:0x001F um:zero minimum:5000 name:L1D_CACHE_ALLOCATE : Level 1 data cache allocation without refill +event:0x0020 um:zero minimum:5000 name:L2D_CACHE_ALLOCATE : Level 2 data/unified cache allocation without refill +event:0x0021 um:zero minimum:5000 name:BR_RETIRED : Counts all branches on the architecturally executed path that would incur cost if mispredicted +event:0x0022 um:zero minimum:5000 name:BR_MIS_PRED_RETIRED : Instruction executed, mispredicted branch. All instructions counted by BR RETIRED that were not correctly predicted +event:0x0023 um:zero minimum:5000 name:STALL_FRONTEND : Cycle on which no operation issued because there are no operations to issue +event:0x0024 um:zero minimum:5000 name:STALL_BACKEND : Cycle on which no operation issued due to back-end resources being unavailable +event:0x0025 um:zero minimum:5000 name:L1D_TLB : Level 1 data TLB access +event:0x0026 um:zero minimum:5000 name:L1I_TLB : Level 1 instruction TLB access +event:0x002D um:zero minimum:5000 name:L2D_TLB_REFILL : Attributable memory-read/write operation that causes a TLB refill of at least the Level 2 data or unified TLB +event:0x002E um:zero minimum:5000 name:L2I_TLB_REFILL : Attributable instruction memory accesses that cause a TLB refill of at least the Level 2 instruction or unified TLB +event:0x002F um:zero minimum:5000 name:L2D_TLB : Attributable memory read/write operation that causes a TLB access to at least the Level 2 data or unified TLB +event:0x0030 um:zero minimum:5000 name:L2I_TLB : Attributable memory read/write operation that causes a TLB access to at least the Level 2 instruction or unified TLB +event:0x0040 um:zero minimum:10007 name:L1D_CACHE_RD : Level 1 data cache access, read +event:0x0041 um:zero minimum:10007 name:L1D_CACHE_WR : Level 1 data cache access, write +event:0x0042 um:zero minimum:10007 name:L1D_CACHE_REFILL_RD : Level 1 data cache refill, read +event:0x0043 um:zero minimum:10007 name:L1D_CACHE_REFILL_WR : Level 1 data cache refill, write +event:0x0044 um:zero minimum:10007 name:L1D_CACHE_REFILL_INNER : Level 1 data cache refill, inner +event:0x0045 um:zero minimum:10007 name:L1D_CACHE_REFILL_OUTER : Level 1 data cache refill, outer +event:0x0046 um:zero minimum:10007 name:L1D_CACHE_WB_VICTIM : Level 1 data cache write-back, victim (threadless) +event:0x0047 um:zero minimum:10007 name:L1D_CACHE_WB_CLEAN : Level 1 data cache write-back, cleaning and coherency (thread- less) +event:0x0048 um:zero minimum:10007 name:L1D_CACHE_INVAL : Level 1 data cache invalidate (threadless) +event:0x004C um:zero minimum:10007 name:L1D_TLB_REFILL_RD : Level 1 data TLB refill, read +event:0x004D um:zero minimum:10007 name:L1D_TLB_REFILL_WR : Level 1 data TLB refill, wirte +event:0x004E um:zero minimum:10007 name:L1D_TLB_RD : Level 1 data TLB access, read +event:0x004F um:zero minimum:10007 name:L1D_TLB_WR : Level 1 data TLB access, write +event:0x0050 um:zero minimum:10007 name:L2D_CACHE_RD : Level 2 data cache access, read +event:0x0051 um:zero minimum:10007 name:L2D_CACHE_WR : Level 2 data cache access, write +event:0x0052 um:zero minimum:10007 name:L2D_CACHE_REFILL_RD : Level 2 data cache refill, read +event:0x0053 um:zero minimum:10007 name:L2D_CACHE_REFILL_WR : Level 2 data cache refill, write +event:0x0056 um:zero minimum:10007 name:L2D_CACHE_WB_VICTIM : Level 2 data cache write-back, victim +event:0x0057 um:zero minimum:10007 name:L2D_CACHE_WB_CLEAN : Level 2 data cache write-back, cleaning and coherency +event:0x0058 um:zero minimum:10007 name:L2D_CACHE_INVAL : Level 2 data cache invalidate +event:0x005C um:zero minimum:10007 name:L2D_TLB_REFILL_RD : Level 2 data/unified TLB refill, read +event:0x005D um:zero minimum:10007 name:L2D_TLB_REFILL_WR : Level 2 data/unified TLB refill, write +event:0x005E um:zero minimum:10007 name:L2D_TLB_RD : Level 2 data/unified TLB access, read +event:0x005F um:zero minimum:10007 name:L2D_TLB_WR : Level 2 data/unified TLB access, read +event:0x0060 um:zero minimum:10007 name:BUS_ACCESS_RD : Bus access, read +event:0x0061 um:zero minimum:10007 name:BUS_ACCESS_WR : Bus access, write +event:0x0062 um:zero minimum:10007 name:BUS_ACCESS_SHARED : Bus access, Normal, Cacheable, Shareable +event:0x0063 um:zero minimum:10007 name:BUS_ACCESS_NOT_SHARED : Bus access, not Normal, Cacheable, Shareable +event:0x0064 um:zero minimum:10007 name:BUS_ACCESS_NORMAL : Bus access, normal +event:0x0065 um:zero minimum:10007 name:BUS_ACCESS_PERIPH : Bus access, peripheral +event:0x0066 um:zero minimum:10007 name:MEM_ACCESS_RD : Data memory access, read +event:0x0067 um:zero minimum:10007 name:MEM_ACCESS_WR : Data memory access, write +event:0x0068 um:zero minimum:10007 name:UNALIGNED_LD_SPEC : Unaligned access, read +event:0x0069 um:zero minimum:10007 name:UNALIGNED_ST_SPEC : Unaligned access, write (threadless) +event:0x006A um:zero minimum:10007 name:UNALIGNED_LDST_SPEC : Unaligned access (threadless) +event:0x006C um:zero minimum:10007 name:LDREX_SPEC : Exclusive operation speculatively executed, LDREX or LDX +event:0x006D um:zero minimum:10007 name:STREX_PASS_SPEC : Exclusive operation speculatively executed, STREX or STX pass +event:0x006E um:zero minimum:10007 name:STREX_FAIL_SPEC : Exclusive operation speculatively executed, STREX or STX fail +event:0x006F um:zero minimum:10007 name:STREX_SPEC : Exclusive operation speculatively executed, STREX or STX +event:0x0070 um:zero minimum:10007 name:LD_SPEC : Operation speculatively executed, load +event:0x0071 um:zero minimum:10007 name:ST_SPEC : Operation speculatively executed, store +event:0x0072 um:zero minimum:10007 name:LDST_SPEC : Operation speculatively executed, load or store +event:0x0073 um:zero minimum:10007 name:DP_SPEC : Operation speculatively executed, integer data processing +event:0x0074 um:zero minimum:10007 name:ASE_SPEC : Operation speculatively executed, Advanced SIMD instruction +event:0x0075 um:zero minimum:10007 name:VFP_SPEC : Operation speculatively executed, floating-point instruction +event:0x0077 um:zero minimum:10007 name:CRYPTO_SPEC : Operation speculatively executed, Cryptographic instruction +event:0x0078 um:zero minimum:10007 name:BR_IMMED_SPEC : Branch speculatively executed, immediate branch +event:0x0079 um:zero minimum:10007 name:BR_RETURN_SPEC : Branch speculatively executed, procedure return +event:0x007A um:zero minimum:10007 name:BR_INDIRECT_SPEC : Branch speculatively executed, indirect branch +event:0x007C um:zero minimum:10007 name:ISB_SPEC : Barrier speculatively executed, ISB +event:0x007D um:zero minimum:10007 name:DSB_SPEC : Barrier speculatively executed, DSB +event:0x007E um:zero minimum:10007 name:DMB_SPEC : Barrier speculatively executed, DMB +event:0x0081 um:zero minimum:10007 name:EXC_UNDEF : Exception taken, Other synchronous +event:0x0082 um:zero minimum:10007 name:EXC_SVC : Exception taken, Supervisor Call +event:0x0083 um:zero minimum:10007 name:EXC_PABORT : Exception taken, Instruction Abort +event:0x0084 um:zero minimum:10007 name:EXC_DABORT : Exception taken, Data Abort and SError +event:0x0086 um:zero minimum:10007 name:EXC_IRQ : Exception taken, IRQ +event:0x0087 um:zero minimum:10007 name:EXC_FIQ : Exception taken, FIQ +event:0x0088 um:zero minimum:10007 name:EXC_SMC : Exception taken, Secure Monitor Call +event:0x008A um:zero minimum:10007 name:EXC_HVC : Exception taken, Hypervisor Call +event:0x008B um:zero minimum:10007 name:EXC_TRAP_PABORT : Exception taken, Instruction Abort not taken locally +event:0x008C um:zero minimum:10007 name:EXC_TRAP_DABORT : Exception taken, Data Abort or SError not taken locally +event:0x008D um:zero minimum:10007 name:EXC_TRAP_OTHER : Exception taken, Other traps not taken locally +event:0x008E um:zero minimum:10007 name:EXC_TRAP_IRQ : Exception taken, IRQ not taken locally +event:0x008F um:zero minimum:10007 name:EXC_TRAP_FIQ : Exception taken, FIQ not taken locally +event:0x0090 um:zero minimum:10007 name:RC_LD_SPEC : Release consistency operation speculatively executed, Load Acquire +event:0x0091 um:zero minimum:10007 name:RC_ST_SPEC : Release consistency operation speculatively executed, Store Release +event:0x00C1 um:zero minimum:10007 name:L1D_LHS_VANOTP : A Load hit store retry. VA match against an older entryin the SRQ but the PA mismatches +event:0x00C2 um:zero minimum:10007 name:L1D_LHS_OVRLAP : Load hit store retry. VA match against an older entry in the SRQ but the required load bytes are not all contained +event:0x00C3 um:zero minimum:10007 name:L1D_LHS_VANOSD : Load hit store retry. VA match against an older entry in the SRQ but the associated store data has not been issued yet +event:0x00C4 um:zero minimum:10007 name:L1D_LHS_FWD : Load hit store forwarding. Load completes with data successfully forwarded from the SRQ +event:0x00C6 um:zero minimum:10007 name:L1D_BNKCFL : Bank Conflict load retry. A load that hits in the L1 retriesdue a bank read conflict with another higher priority port of the L1 +event:0x00C7 um:zero minimum:10007 name:L1D_LSMQ_FULL : LSMQ full retry. A load misses the L1 but retries due to the LSMQ being full. Upon retry, sleep in the SCH until a fill return +event:0x00C8 um:zero minimum:10007 name:L1D_LSMQ_HIT : LSMQ hit retry. A load misses the L1 but retries due to hitting an LSMQ that already has 2 loads al-located to it +event:0x00C9 um:zero minimum:10007 name:L1D_EXPB_MISS : An external probe missed the L1 +event:0x00CA um:zero minimum:10007 name:L1D_L2EV_MISS : An L2 Evict operation missed the L1 +event:0x00CB um:zero minimum:10007 name:L1D_EXPB_HITM : An external probe hit a modified line in the L1. (threadless) +event:0x00CC um:zero minimum:10007 name:L1D_L2EV_HITM : An L2 Evict operation hit a modified line in the L1. (threadless) +event:0x00CD um:zero minimum:10007 name:L1D_EXPB_HIT : An external probe hit in the L1.(threadless) +event:0x00CE um:zero minimum:10007 name:L1D_L2EV_HIT : An L2 Evict operation hit in the L1. (threadless) +event:0x00CF um:zero minimum:10007 name:L1D_EXPB_RETRY : An external probe hit was retried by the LSU. (threadless) +event:0x00D0 um:zero minimum:10007 name:L1D_L2EV_RETRY : An L2 Evict operation was retried by the LSU. (threadless) +event:0x00D1 um:zero minimum:10007 name:L1D_ST_RMW : A read modify write store was drained and updated the L1. A RmW store is any store that up-dates 1, 2, or 3 bytes of a bank +event:0x00D2 um:zero minimum:10007 name:L1D_LSMQ00_LDREQ : A load has allocated LSMQ entry 0 and made a request to the SCU +event:0x00D3 um:zero minimum:10007 name:L1D_LSMQ00_LDVLD : LSMQ entry 0 was initiated by a load and is valid this cycle. (threadless) +event:0x00D4 um:zero minimum:10007 name:L1D_LSMQ15_STREQ : A store has allocated LSMQ entry 15 and made a request to the SCU +event:0x00D5 um:zero minimum:10007 name:L1D_LSMQ15_STVLD : LSMQ entry 15 was initiated by a store and is valid this cycle. (threadless) +event:0x00D6 um:zero minimum:10007 name:L1D_PB_FLUSH : LRQ ordering flush +event:0x00E0 um:zero minimum:10007 name:BR_COND_MIS_PRED_RETIRED : Conditional branch instruction executed, but mis-predicted +event:0x00E1 um:zero minimum:10007 name:BR_IND_MIS_PRED_RETIRED : Indirect branch instruction executed, but mis-predicted +event:0x00E2 um:zero minimum:10007 name:BR_RETURN_MIS_PREDRETIRED : Return branch instruction executed, but mis-predicted +event:0x00E8 um:zero minimum:10007 name:OP_RETIRED : Uops executed +event:0x00E9 um:zero minimum:10007 name:LD_OP_RETIRED : Load uops executed +event:0x00EA um:zero minimum:10007 name:ST_OP_RETIRED : Store uops executed +event:0x00EB um:zero minimum:10007 name:FUSED_OP_RETIRED : Fused uops executed +event:0x00F8 um:zero minimum:10007 name:IRQ_MASK : Cumulative duration of a PSTATE. I interrupt mask set to 1 +event:0x00F9 um:zero minimum:10007 name:FIQ_MASK : Cumulative duration of a PSTATE. F interrupt mask set to 1 +event:0x00FA um:zero minimum:10007 name:SERROR_MASK : Cumulative duration of a PSTATE. A interrupt mask set to 1 +event:0x0108 um:zero minimum:10007 name:WFIWFE_SLEEP : Count every cycle in which the CPU is asleep due to having entered a low power mode on executing a WFI or WFE instruction +event:0x0127 um:zero minimum:10007 name:L2TLB_4K_PAGE_MISS : L2 TLB lookup miss using 4K page size +event:0x0128 um:zero minimum:10007 name:L2TLB_64K_PAGE_MISS : L2 TLB lookup miss using 64K page size +event:0x0129 um:zero minimum:10007 name:L2TLB_2M_PAGE_MISS : L2 TLB lookup miss using 2M page size +event:0x012A um:zero minimum:10007 name:L2TLB_512M_PAGE_MISS : L2 TLB lookup miss using 512M page size +event:0x0150 um:zero minimum:10007 name:ISB_EMPTY : Number of cycles during which micro-op skid-buffer in empty. +event:0x0151 um:zero minimum:10007 name:ISB_FULL : Num of cycles uop skid-buffer is back-pressuring decode. (5 or more entries are occupied) +event:0x0152 um:zero minimum:10007 name:STALL_NOTSELECTED : Number of cycles during which thread was available for dispatch but was not selected +event:0x0153 um:zero minimum:10007 name:ROB_RECYCLE : Number of cycles in which one or more valid micro-ops did not dis-patch due to ROB full +event:0x0154 um:zero minimum:10007 name:ISSQ_RECYCLE : Number of cycles in which one or more valid micro-ops did not dis-patch because the instruction issue queue is full +event:0x0155 um:zero minimum:10007 name:GPR_RECYCLE : Number of cycles in which one or more valid micro-ops did not dis-patch because GPR renamer pool is empty +event:0x0156 um:zero minimum:10007 name:FPR_RECYCLE : Number of cycles in which one or more valid micro-ops did not dis-patch because the FPR renamer pool is empty +event:0x0158 um:zero minimum:10007 name:LRQ_RECYCLE : Number of cycles in which one or more valid micro-ops did not dis-patch due to LRQ full +event:0x0159 um:zero minimum:10007 name:SRQ_RECYCLE : Number of cycles in which one or more valid micro-ops did not dis-patch due to SRQ full +event:0x015B um:zero minimum:10007 name:BSR_RECYCLE : Number of cycles in which one or more valid micro-ops did not dis-patch because the branch check-point buffer is full +event:0x0164 um:zero minimum:10007 name:UOPSFUSED : Number of fused micro-ops dispatched +event:0x020B um:zero minimum:10007 name:L2D_TLBI_INT : Internal mmu tlbi cacheops +event:0x020C um:zero minimum:10007 name:L2D_TLBI_EXT : External mmu tlbi cacheops +event:0x0218 um:zero minimum:10007 name:L2D_HWPF_DMD_HIT : Scu ld/st requests that hit cache or msq for lines brought in by the hardware prefetcher +event:0x0219 um:zero minimum:10007 name:L2D_HWPF_REQ_VAL : Scu hwpf requests into the pipeline +event:0x021A um:zero minimum:10007 name:L2D_HWPF_REQ_LD : Scu hwpf ld requests into the pipeline +event:0x021B um:zero minimum:10007 name:L2D_HWPF_REQ_MISS : Scu hwpf requests that miss +event:0x021C um:zero minimum:10007 name:L2D_HWPF_NEXT_LINE : Scu hwpf next line requests generated diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/events/arm/armv8-thunderx2/unit_masks new/oprofile-1.4.0/events/arm/armv8-thunderx2/unit_masks --- old/oprofile-1.3.0/events/arm/armv8-thunderx2/unit_masks 1970-01-01 01:00:00.000000000 +0100 +++ new/oprofile-1.4.0/events/arm/armv8-thunderx2/unit_masks 2019-03-21 20:15:18.000000000 +0100 @@ -0,0 +1,3 @@ +# ARMv8 architected events unit masks +# +include:arm/armv8-pmuv3-common diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/libop/op_cpu_type.c new/oprofile-1.4.0/libop/op_cpu_type.c --- old/oprofile-1.3.0/libop/op_cpu_type.c 2018-04-02 21:43:44.000000000 +0200 +++ new/oprofile-1.4.0/libop/op_cpu_type.c 2019-05-09 15:37:13.000000000 +0200 @@ -122,6 +122,7 @@ { "ARM Cortex-A17", "arm/armv7-ca17", CPU_ARM_V7_CA17, 7 }, { "ppc64 POWER9", "ppc64/power9", CPU_PPC64_POWER9, 6 }, { "Intel Knights Landing", "i386/knightslanding", CPU_KNIGHTSLANDING, 4 }, + { "Cavium ThunderX2", "arm/armv8-thunderx2", CPU_ARM_V8_CAVIUM_THUNDERX2, 6 }, }; static size_t const nr_cpu_descrs = sizeof(cpu_descrs) / sizeof(struct cpu_descr); @@ -429,6 +430,13 @@ switch (cpuid) { case 0x00f: return op_get_cpu_number("arm/armv7-ca15"); + case 0x516: + return op_get_cpu_number("arm/armv8-thunderx2"); + } + } else if (vendorid == 0x43) { /* Cavium */ + switch (cpuid) { + case 0x0af: + return op_get_cpu_number("arm/armv8-thunderx2"); } } else if (vendorid == 0x50) { /* Applied Micro Circuits Corporation */ switch (cpuid) { @@ -591,7 +599,8 @@ if (cpuid_vendor("GenuineIntel")) { ret = _get_intel_cpu_type(); - } else if (cpuid_vendor("AuthenticAMD")) { + } else if (cpuid_vendor("AuthenticAMD") || + cpuid_vendor("HygonGenuine")) { ret = _get_amd_cpu_type(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/libop/op_cpu_type.h new/oprofile-1.4.0/libop/op_cpu_type.h --- old/oprofile-1.3.0/libop/op_cpu_type.h 2018-01-18 17:46:48.000000000 +0100 +++ new/oprofile-1.4.0/libop/op_cpu_type.h 2019-03-21 20:15:18.000000000 +0100 @@ -108,6 +108,7 @@ CPU_ARM_V7_CA17, /* ARM Cortex-A17 */ CPU_PPC64_POWER9, /**< ppc64 POWER8 family */ CPU_KNIGHTSLANDING, /** Intel Knights Landing microarchitecture */ + CPU_ARM_V8_CAVIUM_THUNDERX2, /* Cavium ThunderX2 */ MAX_CPU_TYPE } op_cpu; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/libop/op_events.c new/oprofile-1.4.0/libop/op_events.c --- old/oprofile-1.3.0/libop/op_events.c 2018-01-18 17:46:48.000000000 +0100 +++ new/oprofile-1.4.0/libop/op_events.c 2019-03-21 20:15:18.000000000 +0100 @@ -1247,6 +1247,7 @@ case CPU_ARM_V8_APM_XGENE: case CPU_ARM_V8_CA57: case CPU_ARM_V8_CA53: + case CPU_ARM_V8_CAVIUM_THUNDERX2: descr->name = "CPU_CYCLES"; break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/libpe_utils/op_pe_utils.cpp new/oprofile-1.4.0/libpe_utils/op_pe_utils.cpp --- old/oprofile-1.3.0/libpe_utils/op_pe_utils.cpp 2018-07-16 20:58:37.000000000 +0200 +++ new/oprofile-1.4.0/libpe_utils/op_pe_utils.cpp 2019-05-09 15:37:13.000000000 +0200 @@ -415,7 +415,9 @@ #if defined(__i386__) || defined(__x86_64__) // Setup EventSelct[11:8] field for AMD const char * vendor_AMD = "AuthenticAMD"; - if (op_is_cpu_vendor((char *)vendor_AMD)) { + const char * vendor_Hygon = "HygonGenuine"; + if (op_is_cpu_vendor((char *)vendor_AMD) || + op_is_cpu_vendor((char *)vendor_Hygon)) { config = base_code & 0xF00ULL; config = config << 32; } @@ -588,7 +590,7 @@ } if (line[0] == ' ' || line[0] == '\t') continue; - if (!strncmp(line, event_name, evt_name_len)) { + if (evt_name_len && !strncmp(line, event_name, evt_name_len)) { // Found a potential match. Check if it's a perfect match. string save_event_name = event_name; size_t full_evt_len = index(line, ':') - line; @@ -654,7 +656,7 @@ string str = event.name; strncpy(evt_name, event.name, str.rfind("_GRP")); } else { - strncpy(evt_name, event.name, strlen(event.name)); + strncpy(evt_name, event.name, strlen(evt_name)); } /* Events where the "_EDGE_COUNT" suffix has been appended to a @@ -734,7 +736,7 @@ string str = event.name; strncpy(evt_name, event.name, str.rfind("_GRP")); } else { - strncpy(evt_name, event.name, strlen(event.name)); + strncpy(evt_name, event.name, sizeof(evt_name)); } /* Events where the "_EDGE_COUNT" suffix has been appended to a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/libperf_events/operf_sfile.h new/oprofile-1.4.0/libperf_events/operf_sfile.h --- old/oprofile-1.3.0/libperf_events/operf_sfile.h 2015-10-02 23:23:12.000000000 +0200 +++ new/oprofile-1.4.0/libperf_events/operf_sfile.h 2019-09-24 16:04:53.000000000 +0200 @@ -101,6 +101,7 @@ u32 tgid; vma_t start_addr; vma_t end_addr; + u64 pgoff; bool cg; // TODO: handle extended //void * ext; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/libperf_events/operf_utils.cpp new/oprofile-1.4.0/libperf_events/operf_utils.cpp --- old/oprofile-1.3.0/libperf_events/operf_utils.cpp 2018-07-16 20:58:37.000000000 +0200 +++ new/oprofile-1.4.0/libperf_events/operf_utils.cpp 2019-09-24 16:04:53.000000000 +0200 @@ -320,7 +320,8 @@ cout << "PERF_RECORD_MMAP for process " << hex << event->mmap.pid << "/" << event->mmap.tid << ": " << event->mmap.filename << endl; cout << "\tstart_addr: " << hex << mapping->start_addr - << "; end addr: " << mapping->end_addr << endl; + << "; end addr: " << mapping->end_addr + << "; pgoff: " << mapping->pgoff << endl; } if (event->header.misc & PERF_RECORD_MISC_USER) @@ -465,6 +466,7 @@ trans.image_len = strlen(trans.image_name); trans.start_addr = op_mmap->start_addr; trans.end_addr = op_mmap->end_addr; + trans.pgoff = op_mmap->pgoff; trans.tgid = data->pid; trans.tid = data->tid; trans.cur_procinfo = proc; @@ -474,7 +476,7 @@ if (trans.in_kernel || trans.is_anon) trans.pc = data->ip; else - trans.pc = data->ip - trans.start_addr; + trans.pc = data->ip + trans.pgoff - trans.start_addr; trans.sample_id = data->id; retval = &trans; @@ -767,7 +769,7 @@ if (trans.is_anon) trans.pc = data.ip; else - trans.pc = data.ip - trans.start_addr; + trans.pc = data.ip + trans.pgoff - trans.start_addr; found_trans = true; } @@ -1062,6 +1064,7 @@ size = align_64bit(size); mmap.start = start_addr; mmap.len = end_addr - mmap.start; + mmap.pgoff = offset; mmap.pid = tgid; mmap.tid = tgid; mmap.header.size = (sizeof(mmap) - @@ -1133,6 +1136,7 @@ size = align_64bit(size); mmap.start = start_addr; mmap.len = end_addr - mmap.start; + mmap.pgoff = offset; mmap.pid = tgid; mmap.tid = pid; mmap.header.size = (sizeof(mmap) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/libutil/Makefile.am new/oprofile-1.4.0/libutil/Makefile.am --- old/oprofile-1.3.0/libutil/Makefile.am 2015-06-05 22:39:34.000000000 +0200 +++ new/oprofile-1.4.0/libutil/Makefile.am 2020-07-06 17:23:56.000000000 +0200 @@ -28,4 +28,5 @@ op_version.c \ op_version.h \ op_growable_buffer.c \ - op_growable_buffer.h + op_growable_buffer.h \ + op_bfd_wrappers.h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/libutil/op_bfd_wrappers.h new/oprofile-1.4.0/libutil/op_bfd_wrappers.h --- old/oprofile-1.3.0/libutil/op_bfd_wrappers.h 1970-01-01 01:00:00.000000000 +0100 +++ new/oprofile-1.4.0/libutil/op_bfd_wrappers.h 2020-03-23 17:14:14.000000000 +0100 @@ -0,0 +1,28 @@ +/** + * @file op_bfd_wrappers.h + * Wrappers to hide API changes in binutils 2.34 + * + * @remark Copyright 2020 OProfile authors + * @remark Read the file COPYING + * + * @author William Cohen + */ + +#ifndef OP_BFD_WRAPPERS_H +#define OP_BFD_WRAPPERS_H + +#if HAVE_BINUTILS_234 +#define op_bfd_section_size(ibfd, sec) bfd_section_size(sec) +#define op_bfd_get_section_flags(abfd, sec) bfd_section_flags(sec) +#define op_bfd_set_section_flags(abfd, sec, flags) bfd_set_section_flags(sec, flags) +#define op_bfd_set_section_vma(abfd, sec, vma) bfd_set_section_vma(sec, vma) +#define op_bfd_set_section_size(abfd, sec, size) bfd_set_section_size(sec, size) +#else +#define op_bfd_section_size(ibfd, sec) bfd_section_size(ibfd, sec) +#define op_bfd_get_section_flags(abfd, sec) bfd_get_section_flags(abfd, sec) +#define op_bfd_set_section_flags(abfd, sec, flags) bfd_set_section_flags(abfd, sec, flags) +#define op_bfd_set_section_vma(abfd, sec, vma) bfd_set_section_vma(abfd, sec, vma) +#define op_bfd_set_section_size(abfd, sec, size) bfd_set_section_size(abfd, sec, size) +#endif + +#endif /* !OP_BFD_WRAPPERS_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/libutil++/bfd_support.cpp new/oprofile-1.4.0/libutil++/bfd_support.cpp --- old/oprofile-1.3.0/libutil++/bfd_support.cpp 2015-07-07 16:04:37.000000000 +0200 +++ new/oprofile-1.4.0/libutil++/bfd_support.cpp 2020-03-23 17:14:14.000000000 +0100 @@ -19,6 +19,7 @@ #include "locate_images.h" #include "op_libiberty.h" #include "op_exception.h" +#include "op_bfd_wrappers.h" #include <unistd.h> #include <errno.h> @@ -137,7 +138,7 @@ } } - bfd_size_type buildid_sect_size = bfd_section_size(ibfd, sect); + bfd_size_type buildid_sect_size = op_bfd_section_size(ibfd, sect); char * contents = (char *) xmalloc(buildid_sect_size); errno = 0; if (!bfd_get_section_contents(ibfd, sect, @@ -188,7 +189,7 @@ if (sect == NULL) return false; - bfd_size_type debuglink_size = bfd_section_size(ibfd, sect); + bfd_size_type debuglink_size = op_bfd_section_size(ibfd, sect); char * contents = (char *) xmalloc(debuglink_size); cverb << vbfd << ".gnu_debuglink section has size " << debuglink_size << endl; @@ -346,7 +347,7 @@ // first restrict the search on a sensible range of vma, 16 is // an intuitive value based on epilog code look size_t max_search = 16; - size_t section_size = bfd_section_size(abfd, section); + size_t section_size = op_bfd_section_size(abfd, section); if (pc + max_search > section_size) max_search = section_size - pc; @@ -819,10 +820,10 @@ else pc = (sym.value() + offset) - sym.filepos(); - if ((bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0) + if ((op_bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0) goto fail; - if (pc >= bfd_section_size(abfd, section)) + if (pc >= op_bfd_section_size(abfd, section)) goto fail; ret = bfd_find_nearest_line(abfd, section, syms, pc, &cfilename, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/libutil++/tests/utility_tests.cpp new/oprofile-1.4.0/libutil++/tests/utility_tests.cpp --- old/oprofile-1.3.0/libutil++/tests/utility_tests.cpp 2017-06-29 16:44:14.000000000 +0200 +++ new/oprofile-1.4.0/libutil++/tests/utility_tests.cpp 2019-04-30 17:49:04.000000000 +0200 @@ -21,13 +21,13 @@ static int nb_new; static int nb_new_array; -void* operator new(size_t size) throw(bad_alloc) +void* operator new(size_t size) { nb_new++; return malloc(size); } -void* operator new[](size_t size) throw(bad_alloc) +void* operator new[](size_t size) { nb_new_array++; return malloc(size); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/opjitconv/create_bfd.c new/oprofile-1.4.0/opjitconv/create_bfd.c --- old/oprofile-1.3.0/opjitconv/create_bfd.c 2015-06-05 22:39:34.000000000 +0200 +++ new/oprofile-1.4.0/opjitconv/create_bfd.c 2020-03-23 17:14:14.000000000 +0100 @@ -16,6 +16,7 @@ #include "opjitconv.h" #include "op_libiberty.h" +#include "op_bfd_wrappers.h" #include <bfd.h> #include <assert.h> @@ -86,12 +87,12 @@ bfd_perror("bfd_make_section"); goto error; } - bfd_set_section_vma(abfd, section, vma); - if (bfd_set_section_size(abfd, section, size) == FALSE) { + op_bfd_set_section_vma(abfd, section, vma); + if (op_bfd_set_section_size(abfd, section, size) == FALSE) { bfd_perror("bfd_set_section_size"); goto error; } - if (bfd_set_section_flags(abfd, section, flags) == FALSE) { + if (op_bfd_set_section_flags(abfd, section, flags) == FALSE) { bfd_perror("bfd_set_section_flags"); goto error; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/opjitconv/opjitconv.c new/oprofile-1.4.0/opjitconv/opjitconv.c --- old/oprofile-1.3.0/opjitconv/opjitconv.c 2018-07-16 20:58:37.000000000 +0200 +++ new/oprofile-1.4.0/opjitconv/opjitconv.c 2019-08-14 20:01:53.000000000 +0200 @@ -313,6 +313,7 @@ time_t dumpfile_modtime; struct op_jitdump_info dmp_info; char * elf_file = NULL; + char * tempstring = NULL; char * proc_id = NULL; char const * anon_dir; char const * dumpfilename = rindex(dmp_pathname, '/'); @@ -390,11 +391,12 @@ } result_dir_length = ++anon_path_seg - anon_dir; /* create final ELF file name */ - elf_file_size = result_dir_length + elf_file_size = result_dir_length + strlen("/") + strlen(proc_id) + strlen(".jo") + 1; elf_file = xmalloc(elf_file_size); - snprintf(elf_file, elf_file_size, "%s%s.jo", - anon_dir, proc_id); + tempstring = xmalloc(elf_file_size); + snprintf(tempstring, result_dir_length, "%s",anon_dir); + snprintf(elf_file, elf_file_size, "%s/%s.jo",tempstring,proc_id); /* create temporary ELF file name */ tmp_elffile_size = strlen(tmp_conv_dir) + 1 + strlen(proc_id) + strlen(".jo") + 1; @@ -722,8 +724,8 @@ /* Delete temporary working directory with all its files * (i.e. dump and ELF file). */ - sprintf(sys_cmd_buffer, "/bin/rm -rf '%s'", tmp_conv_dir); - if (system(sys_cmd_buffer) != 0) { + retlen=snprintf(sys_cmd_buffer,sizeof(sys_cmd_buffer), "/bin/rm -rf '%s'", tmp_conv_dir); + if ((retlen <=0 ) || (system(sys_cmd_buffer) != 0)) { printf("opjitconv: Removing temporary working directory failed.\n"); rc = OP_JIT_CONV_TMPDIR_NOT_REMOVED; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/pe_counting/ocount.cpp new/oprofile-1.4.0/pe_counting/ocount.cpp --- old/oprofile-1.3.0/pe_counting/ocount.cpp 2016-08-10 04:32:49.000000000 +0200 +++ new/oprofile-1.4.0/pe_counting/ocount.cpp 2019-07-25 16:35:48.000000000 +0200 @@ -242,6 +242,10 @@ // parent int startup; + if ( app_PID != -1) + // app_PID child process created successfully + app_started = true; + if (startApp) { if (read(app_ready_pipe[0], &startup, sizeof(startup)) == -1) { perror("Internal error on app_ready_pipe"); @@ -297,7 +301,6 @@ perror("Internal error on start_app_pipe"); return false; } - app_started = true; } return ret; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/oprofile-1.3.0/utils/ophelp.c new/oprofile-1.4.0/utils/ophelp.c --- old/oprofile-1.3.0/utils/ophelp.c 2018-07-16 21:49:20.000000000 +0200 +++ new/oprofile-1.4.0/utils/ophelp.c 2019-03-21 20:15:18.000000000 +0100 @@ -51,7 +51,7 @@ return count; } -#define LINE_LEN 999 +#define LINE_LEN 99 static void word_wrap(int indent, int *column, char *msg) { @@ -662,6 +662,13 @@ "Cortex A57 DDI (ARM DDI 0500D, revision r0p2)\n"; break; + case CPU_ARM_V8_CAVIUM_THUNDERX2: + event_doc = + "See ARM Architecture Reference Manual \n" + "ARMv8, for ARMv8-A architecture profile\n" + "DDI (ARM DDI0487D.a)\n"; + break; + case CPU_PPC64_POWER4: case CPU_PPC64_POWER5: case CPU_PPC64_POWER6:
