# git rev-parse -q --verify ce9f98c0229de93b6b90bcf3deb536f922ad893a^{commit} ce9f98c0229de93b6b90bcf3deb536f922ad893a already have revision, skipping fetch # git checkout -q -f -B kisskb ce9f98c0229de93b6b90bcf3deb536f922ad893a # git clean -qxdf # < git log -1 # commit ce9f98c0229de93b6b90bcf3deb536f922ad893a # Author: Athira Rajeev # Date: Wed Aug 26 02:40:29 2020 -0400 # # powerpc/perf: Fix reading of MSR[HV/PR] bits in trace-imc # # IMC trace-mode uses MSR[HV/PR] bits to set the cpumode for the # instruction pointer captured in each sample. The bits are fetched from # the third double word of the trace record. Reading third double word # from IMC trace record should use be64_to_cpu() along with READ_ONCE # inorder to fetch correct MSR[HV/PR] bits. Patch addresses this change. # # Currently we are using PERF_RECORD_MISC_HYPERVISOR as cpumode if MSR # HV is 1 and PR is 0 which means the address is from host counter. But # using PERF_RECORD_MISC_HYPERVISOR for host counter data will fail to # resolve the address -> symbol during "perf report" because perf tools # side uses PERF_RECORD_MISC_KERNEL to represent the host counter data. # Therefore, fix the trace imc sample data to use # PERF_RECORD_MISC_KERNEL as cpumode for host kernel information. # # Fixes: 77ca3951cc37 ("powerpc/perf: Add kernel support for new MSR[HV PR] bits in trace-imc") # Signed-off-by: Athira Rajeev # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/1598424029-1662-1-git-send-email-atrajeev@linux.vnet.ibm.com # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/ia64-linux/bin/ia64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/ia64-linux/bin/ia64-linux-ld --version # < git log --format=%s --max-count=1 ce9f98c0229de93b6b90bcf3deb536f922ad893a # < make -s -j 48 ARCH=ia64 O=/kisskb/build/powerpc-fixes_ia64-defconfig_ia64-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/ia64-linux/bin/ia64-linux- defconfig # < make -s -j 48 ARCH=ia64 O=/kisskb/build/powerpc-fixes_ia64-defconfig_ia64-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/ia64-linux/bin/ia64-linux- help # make -s -j 48 ARCH=ia64 O=/kisskb/build/powerpc-fixes_ia64-defconfig_ia64-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/ia64-linux/bin/ia64-linux- olddefconfig # make -s -j 48 ARCH=ia64 O=/kisskb/build/powerpc-fixes_ia64-defconfig_ia64-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/ia64-linux/bin/ia64-linux- :1511:2: warning: #warning syscall clone3 not implemented [-Wcpp] In file included from /kisskb/src/arch/ia64/include/uapi/asm/intrinsics.h:22:0, from /kisskb/src/arch/ia64/include/asm/intrinsics.h:11, from /kisskb/src/arch/ia64/include/asm/timex.h:14, from /kisskb/src/include/linux/timex.h:65, from /kisskb/src/include/linux/time32.h:13, from /kisskb/src/include/linux/time.h:73, from /kisskb/src/fs/nfs/read.c:11: /kisskb/src/fs/nfs/read.c: In function 'nfs_read_completion': /kisskb/src/arch/ia64/include/uapi/asm/cmpxchg.h:57:2: warning: value computed is not used [-Wunused-value] ((__typeof__(*(ptr))) __xchg((unsigned long) (x), (ptr), sizeof(*(ptr)))) ^ /kisskb/src/fs/nfs/read.c:196:5: note: in expansion of macro 'xchg' xchg(&nfs_req_openctx(req)->error, error); ^ /kisskb/src/fs/nfs/read.c: In function 'nfs_readpage': /kisskb/src/arch/ia64/include/uapi/asm/cmpxchg.h:57:2: warning: value computed is not used [-Wunused-value] ((__typeof__(*(ptr))) __xchg((unsigned long) (x), (ptr), sizeof(*(ptr)))) ^ /kisskb/src/fs/nfs/read.c:355:2: note: in expansion of macro 'xchg' xchg(&ctx->error, 0); ^ No errors detected in 22420 functions. Completed OK # rm -rf /kisskb/build/powerpc-fixes_ia64-defconfig_ia64-gcc4.9 # Build took: 0:02:30.775240