From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751676AbdB1KIF (ORCPT ); Tue, 28 Feb 2017 05:08:05 -0500 Received: from mga06.intel.com ([134.134.136.31]:9338 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751026AbdB1KID (ORCPT ); Tue, 28 Feb 2017 05:08:03 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,218,1484035200"; d="scan'208";a="1103125941" Subject: Re: perf test 'instruction decoder' failing To: Arnaldo Carvalho de Melo References: <20170224202702.GA15145@kernel.org> Cc: Jiri Olsa , Namhyung Kim , David Ahern , Linux Kernel Mailing List From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Message-ID: <08c6ad07-7994-3e56-b20e-d75727ca7765@intel.com> Date: Tue, 28 Feb 2017 12:02:36 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <20170224202702.GA15145@kernel.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 24/02/17 22:27, Arnaldo Carvalho de Melo wrote: > Hi Adrian, > > This test is failing, I'll try to recheck this and bisect it, > but since I haven't had the time so far and I saw it since yesterday (at > least), lemme document it here: > > > [root@jouet ~]# perf test -v 57 > 57: x86 instruction decoder - new instructions : > --- start --- > test child forked, pid 18975 > Decoded ok: 0f 31 rdtsc > Decoded ok: 0f 1b 80 78 56 34 12 bndstx %bnd0,0x12345678(%eax) > > Decoded ok: 0f 1b 85 78 56 34 12 bndstx %bnd0,0x12345678(%ebp) > Decoded ok: 0f 1b 84 01 78 56 34 12 bndstx %bnd0,0x12345678(%ecx,%eax,1) > Decoded ok: 0f 1b 84 05 78 56 34 12 bndstx %bnd0,0x12345678(%ebp,%eax,1) > Decoded ok: 0f 1b 84 08 78 56 34 12 bndstx %bnd0,0x12345678(%eax,%ecx,1) > Decoded ok: f2 e8 fc ff ff ff bnd call fce > Failed to decode 'rel' value (0xfffffffc vs expected 0): f2 ff 10 bnd call *(%eax) > Failed to decode 'rel' value (0xfffffffc vs expected 0): f2 c3 bnd ret > Decoded ok: f2 e9 fc ff ff ff bnd jmp fd9 > Decoded ok: f2 e9 fc ff ff ff bnd jmp fdf > Failed to decode 'rel' value (0xfffffffc vs expected 0): f2 ff 21 bnd jmp *(%ecx) > Decoded ok: f2 0f 85 fc ff ff ff bnd jne fe9 > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 3a cc c1 00 sha1rnds4 $0x0,%xmm1,%xmm0 > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 3a cc d7 91 sha1rnds4 $0x91,%xmm7,%xmm2 > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 3a cc 00 91 sha1rnds4 $0x91,(%eax),%xmm0 > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 3a cc 05 78 56 34 12 91 sha1rnds4 $0x91,0x12345678,%xmm0 > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 3a cc 18 91 sha1rnds4 $0x91,(%eax),%xmm3 > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 3a cc 04 01 91 sha1rnds4 $0x91,(%ecx,%eax,1),%xmm0 > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 3a cc 04 05 78 56 34 12 91 sha1rnds4 $0x91,0x12345678(,%eax,1),%xmm0 > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 3a cc 04 08 91 sha1rnds4 $0x91,(%eax,%ecx,1),%xmm0 > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 3a cc 04 c8 91 sha1rnds4 $0x91,(%eax,%ecx,8),%xmm0 > > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 1b 45 12 bndstx %bnd0,0x12(%rbp) > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 1b 44 01 12 bndstx %bnd0,0x12(%rcx,%rax,1) > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 1b 44 05 12 bndstx %bnd0,0x12(%rbp,%rax,1) > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 1b 44 08 12 bndstx %bnd0,0x12(%rax,%rcx,1) > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 1b 80 78 56 34 12 bndstx %bnd0,0x12345678(%rax) > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 1b 85 78 56 34 12 bndstx %bnd0,0x12345678(%rbp) > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 1b 84 01 78 56 34 12 bndstx %bnd0,0x12345678(%rcx,%rax,1) > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 1b 84 05 78 56 34 12 bndstx %bnd0,0x12345678(%rbp,%rax,1) > Failed to decode 'rel' value (0xfffffffc vs expected 0): 0f 1b 84 08 78 56 34 12 bndstx %bnd0,0x12345678(%rax,%rcx,1) > Decoded ok: f2 e8 00 00 00 00 bnd callq f22 > Decoded ok: 67 f2 ff 10 bnd callq *(%eax) > > Decoded ok: 41 0f c7 9c c8 78 56 34 12 xrstors 0x12345678(%r8,%rcx,8) > Decoded ok: 0f 01 ee rdpkru > Decoded ok: 0f 01 ef wrpkru > test child finished with -1 > ---- end ---- > x86 instruction decoder - new instructions: FAILED! > > Fedora 25, > > [acme@jouet linux]$ uname -a > Linux jouet 4.10.0-rc8 #2 SMP Wed Feb 15 15:26:36 BRT 2017 x86_64 x86_64 x86_64 GNU/Linux > > [acme@jouet linux]$ rpm -q binutils elfutils gcc glibc > binutils-2.26.1-1.fc25.x86_64 > elfutils-0.168-1.fc25.x86_64 > gcc-6.3.1-1.fc25.x86_64 > glibc-2.24-4.fc25.x86_64 > glibc-2.24-4.fc25.i686 > [acme@jouet linux]$ > > [acme@jouet linux]$ perf -v > perf version 4.10.g264b77 > > perf as in tip/perf/core and soon as in acme/perf/core There is missing initialization. It only affects the test because it is checking 'rel' even in cases where there is no value. Here is the fix. diff --git a/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c b/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c index 7913363bde5c..55b6250350d7 100644 --- a/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c +++ b/tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c @@ -39,6 +39,8 @@ static void intel_pt_insn_decoder(struct insn *insn, enum intel_pt_insn_branch branch = INTEL_PT_BR_NO_BRANCH; int ext; + intel_pt_insn->rel = 0; + if (insn_is_avx(insn)) { intel_pt_insn->op = INTEL_PT_OP_OTHER; intel_pt_insn->branch = INTEL_PT_BR_NO_BRANCH;