Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Transport/fsockopen.php on line 170

Warning: Cannot modify header information - headers already sent by (output started at /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Transport/fsockopen.php:170) in /home/andi/public_html/halobates/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1752

Warning: Cannot modify header information - headers already sent by (output started at /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Transport/fsockopen.php:170) in /home/andi/public_html/halobates/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1752

Warning: Cannot modify header information - headers already sent by (output started at /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Transport/fsockopen.php:170) in /home/andi/public_html/halobates/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1752

Warning: Cannot modify header information - headers already sent by (output started at /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Transport/fsockopen.php:170) in /home/andi/public_html/halobates/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1752

Warning: Cannot modify header information - headers already sent by (output started at /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Transport/fsockopen.php:170) in /home/andi/public_html/halobates/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1752

Warning: Cannot modify header information - headers already sent by (output started at /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Transport/fsockopen.php:170) in /home/andi/public_html/halobates/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1752

Warning: Cannot modify header information - headers already sent by (output started at /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Transport/fsockopen.php:170) in /home/andi/public_html/halobates/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1752

Warning: Cannot modify header information - headers already sent by (output started at /home/andi/public_html/halobates/wordpress/wp-includes/Requests/Transport/fsockopen.php:170) in /home/andi/public_html/halobates/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1752
{"id":344,"date":"2015-08-17T04:27:33","date_gmt":"2015-08-17T04:27:33","guid":{"rendered":"http:\/\/halobates.de\/blog\/?p=344"},"modified":"2015-08-17T04:27:33","modified_gmt":"2015-08-17T04:27:33","slug":"announcing-simple-pt-a-simple-processor-trace-implementation","status":"publish","type":"post","link":"http:\/\/halobates.de\/blog\/p\/344","title":{"rendered":"Announcing simple-pt — A simple Processor Trace implementation"},"content":{"rendered":"

Modern Intel Core CPUs (5th and 6th generation) have a Intel Processor Trace (PT) feature to trace branch execution with low overhead. This is useful for performance analysis and debugging.<\/p>\n

simple-pt is a simple standalone driver and decoder tool to implement PT on Linux.<\/p>\n

Starting with Linux 4.1 Linux already has a integrated PT implementation in perf (see https:\/\/lwn.net\/Articles\/648154\/<\/a> ). simple-pt is an alternative implementation. It has many disadvantages over the perf PT implementation, such as:
\n– needs to run as root
\n– no long term tracing or sampling with interrupts
\n– no support for interactive debugging (use gdb 7.10 on perf for that)
\n– no support for histograms
\n– somewhat experimental
\n– not as well supported as perf<\/p>\n

On the positive side simple-pt is:
\n– simple
\n– standalone. No kernel changes needed. Could be ported to older kernels or other operating systems
\n– easy to modify and experiment with
\n– more ftrace like decoding tool
\n– support for kprobes based triggers
\n– modular “unix style” design with simple tools that do only one thing each
\n– BSD licensed<\/p>\n

Example output:<\/p>\n

\r\n\r\n        % sptcmd  -c tcall taskset -c 0 .\/tcall\r\n        cpu   0 offset 1027688,  1003 KB, writing to ptout.0\r\n        ...\r\n        Wrote sideband to ptout.sideband\r\n        % sptdecode --sideband ptout.sideband --pt ptout.0 | less\r\n        TIME      DELTA  INSNs   OPERATION\r\n        frequency 32\r\n        0        [+0]     [+   1] _dl_aux_init+436\r\n                          [+   6] __libc_start_main+455 -> _dl_discover_osversion\r\n        ...\r\n                          [+  13] __libc_start_main+446 -> main\r\n                          [+   9]     main+22 -> f1\r\n                          [+   4]             f1+9 -> f2\r\n                          [+   2]             f1+19 -> f2\r\n                          [+   5]     main+22 -> f1\r\n                          [+   4]             f1+9 -> f2\r\n                          [+   2]             f1+19 -> f2\r\n                          [+   5]     main+22 -> f1\r\n        ...\r\n<\/code>\r\n<\/pre>\n

Available from https:\/\/github.com\/andikleen\/simple-pt<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

Modern Intel Core CPUs (5th and 6th generation) have a Intel Processor Trace (PT) feature to trace branch execution with low overhead. This is useful for performance analysis and debugging. simple-pt is a simple standalone driver and decoder tool to implement PT on Linux. Starting with Linux 4.1 Linux already has a integrated PT implementation […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,17],"tags":[],"_links":{"self":[{"href":"http:\/\/halobates.de\/blog\/wp-json\/wp\/v2\/posts\/344"}],"collection":[{"href":"http:\/\/halobates.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/halobates.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/halobates.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/halobates.de\/blog\/wp-json\/wp\/v2\/comments?post=344"}],"version-history":[{"count":10,"href":"http:\/\/halobates.de\/blog\/wp-json\/wp\/v2\/posts\/344\/revisions"}],"predecessor-version":[{"id":354,"href":"http:\/\/halobates.de\/blog\/wp-json\/wp\/v2\/posts\/344\/revisions\/354"}],"wp:attachment":[{"href":"http:\/\/halobates.de\/blog\/wp-json\/wp\/v2\/media?parent=344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/halobates.de\/blog\/wp-json\/wp\/v2\/categories?post=344"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/halobates.de\/blog\/wp-json\/wp\/v2\/tags?post=344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}