<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/tools/perf/util/intel-pt-decoder, branch v5.1.2</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>perf intel-pt: Fix TSC slip</title>
<updated>2019-03-28T17:31:55+00:00</updated>
<author>
<name>Adrian Hunter</name>
<email>adrian.hunter@intel.com</email>
</author>
<published>2019-03-25T13:51:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f3b4e06b3bda759afd042d3d5fa86bea8f1fe278'/>
<id>f3b4e06b3bda759afd042d3d5fa86bea8f1fe278</id>
<content type='text'>
A TSC packet can slip past MTC packets so that the timestamp appears to
go backwards. One estimate is that can be up to about 40 CPU cycles,
which is certainly less than 0x1000 TSC ticks, but accept slippage an
order of magnitude more to be on the safe side.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Cc: stable@vger.kernel.org
Fixes: 79b58424b821c ("perf tools: Add Intel PT support for decoding MTC packets")
Link: http://lkml.kernel.org/r/20190325135135.18348-1-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A TSC packet can slip past MTC packets so that the timestamp appears to
go backwards. One estimate is that can be up to about 40 CPU cycles,
which is certainly less than 0x1000 TSC ticks, but accept slippage an
order of magnitude more to be on the safe side.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Cc: stable@vger.kernel.org
Fixes: 79b58424b821c ("perf tools: Add Intel PT support for decoding MTC packets")
Link: http://lkml.kernel.org/r/20190325135135.18348-1-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>perf tools: Rename build libperf to perf</title>
<updated>2019-02-14T18:18:08+00:00</updated>
<author>
<name>Jiri Olsa</name>
<email>jolsa@kernel.org</email>
</author>
<published>2019-02-13T12:32:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5ff328836dfde0cef9f28c8b8791a90a36d7a183'/>
<id>5ff328836dfde0cef9f28c8b8791a90a36d7a183</id>
<content type='text'>
Rename build libperf to perf, because it's used to build perf.

The libperf build object name will be used for libperf library.

Signed-off-by: Jiri Olsa &lt;jolsa@kernel.org&gt;
Cc: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Cc: Namhyung Kim &lt;namhyung@kernel.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Link: http://lkml.kernel.org/r/20190213123246.4015-4-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rename build libperf to perf, because it's used to build perf.

The libperf build object name will be used for libperf library.

Signed-off-by: Jiri Olsa &lt;jolsa@kernel.org&gt;
Cc: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Cc: Namhyung Kim &lt;namhyung@kernel.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Link: http://lkml.kernel.org/r/20190213123246.4015-4-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>perf intel-pt: Packet splitting can happen only on 32-bit</title>
<updated>2019-02-06T13:27:54+00:00</updated>
<author>
<name>Adrian Hunter</name>
<email>adrian.hunter@intel.com</email>
</author>
<published>2019-02-06T10:39:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=26ee2bcdea33c60aa833cc32a1624ef5d49c9c6f'/>
<id>26ee2bcdea33c60aa833cc32a1624ef5d49c9c6f</id>
<content type='text'>
Data is copied when the trace is stopped, so packets are never split
between buffers except when processing if the buffer cannot fit in the
address space which can only happen on 32-bit systems. Change the logic
to reflect that.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Link: http://lkml.kernel.org/r/20190206103947.15750-5-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Data is copied when the trace is stopped, so packets are never split
between buffers except when processing if the buffer cannot fit in the
address space which can only happen on 32-bit systems. Change the logic
to reflect that.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Link: http://lkml.kernel.org/r/20190206103947.15750-5-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>perf intel-pt: Fix CYC timestamp calculation after OVF</title>
<updated>2019-02-06T13:27:27+00:00</updated>
<author>
<name>Adrian Hunter</name>
<email>adrian.hunter@intel.com</email>
</author>
<published>2019-02-06T10:39:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=03997612904866abe7cdcc992784ef65cb3a4b81'/>
<id>03997612904866abe7cdcc992784ef65cb3a4b81</id>
<content type='text'>
CYC packet timestamp calculation depends upon CBR which was being
cleared upon overflow (OVF). That can cause errors due to failing to
synchronize with sideband events. Even if a CBR change has been lost,
the old CBR is still a better estimate than zero. So remove the clearing
of CBR.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/20190206103947.15750-4-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CYC packet timestamp calculation depends upon CBR which was being
cleared upon overflow (OVF). That can cause errors due to failing to
synchronize with sideband events. Even if a CBR change has been lost,
the old CBR is still a better estimate than zero. So remove the clearing
of CBR.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/20190206103947.15750-4-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>perf intel-pt: Fix overlap calculation for padding</title>
<updated>2019-02-06T13:27:00+00:00</updated>
<author>
<name>Adrian Hunter</name>
<email>adrian.hunter@intel.com</email>
</author>
<published>2019-02-06T10:39:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5a99d99e3310a565b0cf63f785b347be9ee0da45'/>
<id>5a99d99e3310a565b0cf63f785b347be9ee0da45</id>
<content type='text'>
Auxtrace records might have up to 7 bytes of padding appended. Adjust
the overlap accordingly.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/20190206103947.15750-3-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Auxtrace records might have up to 7 bytes of padding appended. Adjust
the overlap accordingly.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/20190206103947.15750-3-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>perf script: Fix LBR skid dump problems in brstackinsn</title>
<updated>2018-12-28T19:33:02+00:00</updated>
<author>
<name>Andi Kleen</name>
<email>ak@linux.intel.com</email>
</author>
<published>2018-11-20T05:06:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=61f611593f2c90547cb09c0bf6977414454a27e6'/>
<id>61f611593f2c90547cb09c0bf6977414454a27e6</id>
<content type='text'>
This is a fix for another instance of the skid problem Milian recently
found [1]

The LBRs don't freeze at the exact same time as the PMI is triggered.
The perf script brstackinsn code that dumps LBR assembler assumes that
the last branch in the LBR leads to the sample point.  But with skid
it's possible that the CPU executes one or more branches before the
sample, but which do not appear in the LBR.

What happens then is either that the sample point is before the last LBR
branch. In this case the dumper sees a negative length and ignores it.
Or it the sample point is long after the last branch. Then the dumper
sees a very long block and dumps it upto its block limit (16k bytes),
which is noise in the output.

On typical sample session this can happen regularly.

This patch tries to detect and handle the situation. On the last block
that is dumped by the LBR dumper we always stop on the first branch. If
the block length is negative just scan forward to the first branch.
Otherwise scan until a branch is found.

The PT decoder already has a function that uses the instruction decoder
to detect branches, so we can just reuse it here.

Then when a terminating branch is found print an indication and stop
dumping. This might miss a few instructions, but at least shows no
runaway blocks.

Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Acked-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@kernel.org&gt;
Cc: Milian Wolff &lt;milian.wolff@kdab.com&gt;
Link: http://lkml.kernel.org/r/20181120050617.4119-1-andi@firstfloor.org
[ Resolved conflict with dd2e18e9ac20 ("perf tools: Support 'srccode' output") ]
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a fix for another instance of the skid problem Milian recently
found [1]

The LBRs don't freeze at the exact same time as the PMI is triggered.
The perf script brstackinsn code that dumps LBR assembler assumes that
the last branch in the LBR leads to the sample point.  But with skid
it's possible that the CPU executes one or more branches before the
sample, but which do not appear in the LBR.

What happens then is either that the sample point is before the last LBR
branch. In this case the dumper sees a negative length and ignores it.
Or it the sample point is long after the last branch. Then the dumper
sees a very long block and dumps it upto its block limit (16k bytes),
which is noise in the output.

On typical sample session this can happen regularly.

This patch tries to detect and handle the situation. On the last block
that is dumped by the LBR dumper we always stop on the first branch. If
the block length is negative just scan forward to the first branch.
Otherwise scan until a branch is found.

The PT decoder already has a function that uses the instruction decoder
to detect branches, so we can just reuse it here.

Then when a terminating branch is found print an indication and stop
dumping. This might miss a few instructions, but at least shows no
runaway blocks.

Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Acked-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@kernel.org&gt;
Cc: Milian Wolff &lt;milian.wolff@kdab.com&gt;
Link: http://lkml.kernel.org/r/20181120050617.4119-1-andi@firstfloor.org
[ Resolved conflict with dd2e18e9ac20 ("perf tools: Support 'srccode' output") ]
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>perf intel-pt: Add MTC and CYC timestamps to debug log</title>
<updated>2018-11-05T17:53:54+00:00</updated>
<author>
<name>Adrian Hunter</name>
<email>adrian.hunter@intel.com</email>
</author>
<published>2018-11-05T07:35:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f6c23e3b55cb93f32a724f41af8d38888bc2ab6b'/>
<id>f6c23e3b55cb93f32a724f41af8d38888bc2ab6b</id>
<content type='text'>
One cause of decoding errors is un-synchronized side-band data.
Timestamps are needed to debug such cases. TSC packet timestamps are
logged. Log also MTC and CYC timestamps.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Link: http://lkml.kernel.org/r/20181105073505.8129-3-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
One cause of decoding errors is un-synchronized side-band data.
Timestamps are needed to debug such cases. TSC packet timestamps are
logged. Log also MTC and CYC timestamps.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Link: http://lkml.kernel.org/r/20181105073505.8129-3-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>perf intel-pt: Add more event information to debug log</title>
<updated>2018-11-05T17:53:37+00:00</updated>
<author>
<name>Adrian Hunter</name>
<email>adrian.hunter@intel.com</email>
</author>
<published>2018-11-05T07:35:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=93f8be2799515e01647c5a9b0d17a90a00ebcf82'/>
<id>93f8be2799515e01647c5a9b0d17a90a00ebcf82</id>
<content type='text'>
More event information is useful for debugging, especially MMAP events.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Link: http://lkml.kernel.org/r/20181105073505.8129-2-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
More event information is useful for debugging, especially MMAP events.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Link: http://lkml.kernel.org/r/20181105073505.8129-2-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>perf intel-pt: Implement decoder flags for trace begin / end</title>
<updated>2018-09-20T18:19:52+00:00</updated>
<author>
<name>Adrian Hunter</name>
<email>adrian.hunter@intel.com</email>
</author>
<published>2018-09-20T13:00:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=bea6385789b8b5e1e3228a281978ca6c4a8c70a0'/>
<id>bea6385789b8b5e1e3228a281978ca6c4a8c70a0</id>
<content type='text'>
Have the Intel PT decoder implement the new Intel PT decoder flags for
trace begin / end.

Previously, the decoder would indicate begin / end by a branch from / to
zero. That hides useful information, in particular when a trace ends
with a call. That happens when using address filters, for example:

  $ perf record -e intel_pt/cyc,mtc_period=0,noretcomp/u --filter='filter main @ /bin/uname ' uname Linux
  [ perf record: Woken up 1 times to write data ]
  [ perf record: Captured and wrote 0.031 MB perf.data ]

Before:

  $ perf script --itrace=cre -Ftime,flags,ip,sym,symoff,addr --ns
   7249.622183310:   tr strt         0 [unknown] =&gt;   401590 main+0x0
   7249.622183311:   call       4015b9 main+0x29 =&gt;        0 [unknown]
   7249.622183711:   tr strt         0 [unknown] =&gt;   4015be main+0x2e
   7249.622183714:   call       4015c8 main+0x38 =&gt;        0 [unknown]
   7249.622247731:   tr strt         0 [unknown] =&gt;   4015cd main+0x3d
   7249.622247760:   call       4015d7 main+0x47 =&gt;        0 [unknown]
   7249.622248340:   tr strt         0 [unknown] =&gt;   4015dc main+0x4c
   7249.622248341:   call       4015e1 main+0x51 =&gt;        0 [unknown]
   7249.622248681:   tr strt         0 [unknown] =&gt;   4015e6 main+0x56
   7249.622248682:   call       4015eb main+0x5b =&gt;        0 [unknown]
   7249.622248970:   tr strt         0 [unknown] =&gt;   4015f0 main+0x60
   7249.622248971:   call       401612 main+0x82 =&gt;        0 [unknown]
   7249.622249757:   tr strt         0 [unknown] =&gt;   401617 main+0x87
   7249.622249770:   call       401847 main+0x2b7 =&gt;        0 [unknown]
   7249.622250606:   tr strt         0 [unknown] =&gt;   40184c main+0x2bc
   7249.622250612:   call       4019bf main+0x42f =&gt;        0 [unknown]
   7249.622256823:   tr strt         0 [unknown] =&gt;   4019c4 main+0x434
   7249.622256863:   call       4019f5 main+0x465 =&gt;        0 [unknown]
   7249.622264217:   tr strt         0 [unknown] =&gt;   4019fa main+0x46a
   7249.622264235:   call       401832 main+0x2a2 =&gt;        0 [unknown]

After:

  $ perf script --itrace=cre -Ftime,flags,ip,sym,symoff,addr --ns
   7249.622183310:   tr strt              0 [unknown] =&gt;   401590 main+0x0
   7249.622183311:   tr end  call    4015b9 main+0x29 =&gt;   401ef0 set_program_name+0x0
   7249.622183711:   tr strt              0 [unknown] =&gt;   4015be main+0x2e
   7249.622183714:   tr end  call    4015c8 main+0x38 =&gt;   4014b0 setlocale@plt+0x0
   7249.622247731:   tr strt              0 [unknown] =&gt;   4015cd main+0x3d
   7249.622247760:   tr end  call    4015d7 main+0x47 =&gt;   4012d0 bindtextdomain@plt+0x0
   7249.622248340:   tr strt              0 [unknown] =&gt;   4015dc main+0x4c
   7249.622248341:   tr end  call    4015e1 main+0x51 =&gt;   4012b0 textdomain@plt+0x0
   7249.622248681:   tr strt              0 [unknown] =&gt;   4015e6 main+0x56
   7249.622248682:   tr end  call    4015eb main+0x5b =&gt;   404340 atexit+0x0
   7249.622248970:   tr strt              0 [unknown] =&gt;   4015f0 main+0x60
   7249.622248971:   tr end  call    401612 main+0x82 =&gt;   401320 getopt_long@plt+0x0
   7249.622249757:   tr strt              0 [unknown] =&gt;   401617 main+0x87
   7249.622249770:   tr end  call    401847 main+0x2b7 =&gt;   401360 uname@plt+0x0
   7249.622250606:   tr strt              0 [unknown] =&gt;   40184c main+0x2bc
   7249.622250612:   tr end  call    4019bf main+0x42f =&gt;   401b10 print_element+0x0
   7249.622256823:   tr strt              0 [unknown] =&gt;   4019c4 main+0x434
   7249.622256863:   tr end  call    4019f5 main+0x465 =&gt;   401340 __overflow@plt+0x0
   7249.622264217:   tr strt              0 [unknown] =&gt;   4019fa main+0x46a
   7249.622264235:   tr end  call    401832 main+0x2a2 =&gt;   401520 exit@plt+0x0

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Andi Kleen &lt;ak@linux.intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Link: http://lkml.kernel.org/r/20180920130048.31432-7-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Have the Intel PT decoder implement the new Intel PT decoder flags for
trace begin / end.

Previously, the decoder would indicate begin / end by a branch from / to
zero. That hides useful information, in particular when a trace ends
with a call. That happens when using address filters, for example:

  $ perf record -e intel_pt/cyc,mtc_period=0,noretcomp/u --filter='filter main @ /bin/uname ' uname Linux
  [ perf record: Woken up 1 times to write data ]
  [ perf record: Captured and wrote 0.031 MB perf.data ]

Before:

  $ perf script --itrace=cre -Ftime,flags,ip,sym,symoff,addr --ns
   7249.622183310:   tr strt         0 [unknown] =&gt;   401590 main+0x0
   7249.622183311:   call       4015b9 main+0x29 =&gt;        0 [unknown]
   7249.622183711:   tr strt         0 [unknown] =&gt;   4015be main+0x2e
   7249.622183714:   call       4015c8 main+0x38 =&gt;        0 [unknown]
   7249.622247731:   tr strt         0 [unknown] =&gt;   4015cd main+0x3d
   7249.622247760:   call       4015d7 main+0x47 =&gt;        0 [unknown]
   7249.622248340:   tr strt         0 [unknown] =&gt;   4015dc main+0x4c
   7249.622248341:   call       4015e1 main+0x51 =&gt;        0 [unknown]
   7249.622248681:   tr strt         0 [unknown] =&gt;   4015e6 main+0x56
   7249.622248682:   call       4015eb main+0x5b =&gt;        0 [unknown]
   7249.622248970:   tr strt         0 [unknown] =&gt;   4015f0 main+0x60
   7249.622248971:   call       401612 main+0x82 =&gt;        0 [unknown]
   7249.622249757:   tr strt         0 [unknown] =&gt;   401617 main+0x87
   7249.622249770:   call       401847 main+0x2b7 =&gt;        0 [unknown]
   7249.622250606:   tr strt         0 [unknown] =&gt;   40184c main+0x2bc
   7249.622250612:   call       4019bf main+0x42f =&gt;        0 [unknown]
   7249.622256823:   tr strt         0 [unknown] =&gt;   4019c4 main+0x434
   7249.622256863:   call       4019f5 main+0x465 =&gt;        0 [unknown]
   7249.622264217:   tr strt         0 [unknown] =&gt;   4019fa main+0x46a
   7249.622264235:   call       401832 main+0x2a2 =&gt;        0 [unknown]

After:

  $ perf script --itrace=cre -Ftime,flags,ip,sym,symoff,addr --ns
   7249.622183310:   tr strt              0 [unknown] =&gt;   401590 main+0x0
   7249.622183311:   tr end  call    4015b9 main+0x29 =&gt;   401ef0 set_program_name+0x0
   7249.622183711:   tr strt              0 [unknown] =&gt;   4015be main+0x2e
   7249.622183714:   tr end  call    4015c8 main+0x38 =&gt;   4014b0 setlocale@plt+0x0
   7249.622247731:   tr strt              0 [unknown] =&gt;   4015cd main+0x3d
   7249.622247760:   tr end  call    4015d7 main+0x47 =&gt;   4012d0 bindtextdomain@plt+0x0
   7249.622248340:   tr strt              0 [unknown] =&gt;   4015dc main+0x4c
   7249.622248341:   tr end  call    4015e1 main+0x51 =&gt;   4012b0 textdomain@plt+0x0
   7249.622248681:   tr strt              0 [unknown] =&gt;   4015e6 main+0x56
   7249.622248682:   tr end  call    4015eb main+0x5b =&gt;   404340 atexit+0x0
   7249.622248970:   tr strt              0 [unknown] =&gt;   4015f0 main+0x60
   7249.622248971:   tr end  call    401612 main+0x82 =&gt;   401320 getopt_long@plt+0x0
   7249.622249757:   tr strt              0 [unknown] =&gt;   401617 main+0x87
   7249.622249770:   tr end  call    401847 main+0x2b7 =&gt;   401360 uname@plt+0x0
   7249.622250606:   tr strt              0 [unknown] =&gt;   40184c main+0x2bc
   7249.622250612:   tr end  call    4019bf main+0x42f =&gt;   401b10 print_element+0x0
   7249.622256823:   tr strt              0 [unknown] =&gt;   4019c4 main+0x434
   7249.622256863:   tr end  call    4019f5 main+0x465 =&gt;   401340 __overflow@plt+0x0
   7249.622264217:   tr strt              0 [unknown] =&gt;   4019fa main+0x46a
   7249.622264235:   tr end  call    401832 main+0x2a2 =&gt;   401520 exit@plt+0x0

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Andi Kleen &lt;ak@linux.intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Link: http://lkml.kernel.org/r/20180920130048.31432-7-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>perf intel-pt: Add decoder flags for trace begin / end</title>
<updated>2018-09-20T18:19:51+00:00</updated>
<author>
<name>Adrian Hunter</name>
<email>adrian.hunter@intel.com</email>
</author>
<published>2018-09-20T13:00:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c6b5da093a8ba740b71dd0052f3846016986fd21'/>
<id>c6b5da093a8ba740b71dd0052f3846016986fd21</id>
<content type='text'>
Previously, the decoder would indicate begin / end by a branch from / to
zero. That hides useful information, in particular when a trace ends
with a call. To prepare for remedying that, add Intel PT decoder flags
for trace begin / end and map them to the existing sample flags.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Andi Kleen &lt;ak@linux.intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Link: http://lkml.kernel.org/r/20180920130048.31432-6-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, the decoder would indicate begin / end by a branch from / to
zero. That hides useful information, in particular when a trace ends
with a call. To prepare for remedying that, add Intel PT decoder flags
for trace begin / end and map them to the existing sample flags.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: Andi Kleen &lt;ak@linux.intel.com&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Link: http://lkml.kernel.org/r/20180920130048.31432-6-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
