From: Rodrigo Ipince Date: Fri, 18 Dec 2009 02:07:28 +0000 (-0800) Subject: Added support for filter in dmtracedump tool, along with some test cases. X-Git-Tag: android-x86-2.2~120^2~2^2~1 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f434b16855feb706e6a4b4c7837dbd3c343d1c82;p=android-x86%2Fdalvik.git Added support for filter in dmtracedump tool, along with some test cases. Some corner cases are still not handled in the code, but will be eventually. --- diff --git a/tools/dmtracedump/TraceDump.c b/tools/dmtracedump/TraceDump.c index 2308148cd..da3bfd0a9 100644 --- a/tools/dmtracedump/TraceDump.c +++ b/tools/dmtracedump/TraceDump.c @@ -47,6 +47,17 @@ int versionNumber; /* Size of temporary buffers for escaping html strings */ #define HTML_BUFSIZE 10240 +/* Size of methodId->method cache */ +#define METHOD_CACHE_SIZE 2048 + +/* Some filter constants */ +#define FILTER_TAG '*' +#define FILTER_FLAG_THREAD '+' +#define FILTER_TYPE_CLASS 0 +#define FILTER_TYPE_METHOD 1 + +#define DEFAULT_ACTIVE_THREADS 8 + char *htmlHeader = "\n\n\n" " + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        2   12.50  62.50  [2] A.m ()
+        2   12.50  75.00  [3] B.m ()
+        2   12.50  87.50  [4] D.m ()
+        2   12.50 100.00  [5] E.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      2/2              8 Z.m ()
+                12.5%    [2]      1/1              2 A.m ()
+                12.5%    [3]      1/1              2 B.m ()
+                12.5%    [4]      1/1              2 D.m ()
+                12.5%    [5]      1/1              2 E.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              8 (toplevel)
+[1]     50.0%                     2+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     12.5%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     12.5%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     12.5%                     1+0              2 D.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[5]     12.5%                     1+0              2 E.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00   0.00      1 main
+        8   50.00 100.00   0.00  50.00   0.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 8 ( 50.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                   100.00                      50.00               main
+         0                     0.00                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 8 ( 50.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         0                     0.00                      50.00               main
+         8                   100.00                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      2+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [5] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      2+0      [1] Z.m ()
+
         2         2    12.5    62.5      1+0      [2] A.m ()
+
         2         2    12.5    75.0      1+0      [3] B.m ()
+
         2         2    12.5    87.5      1+0      [4] D.m ()
+
         2         2    12.5   100.0      1+0      [5] E.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterDiffKeysTrace new file mode 100644 index 000000000..8bc74ffad Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeys new file mode 100644 index 000000000..76cdea78b --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeys @@ -0,0 +1,19 @@ +# ____ ____ _________ +# __|R |___________|S |_____|Z |_______ +# +# ___________ ____ ____ +# _______|Z |_____|R |_________|S |__ +# +# +0 1 R +2 1 R +0 2 Z +4 2 Z +2 1 S +4 1 S +4 2 R +6 2 R +4 1 Z +8 1 Z +6 2 S +8 2 S diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeysExpected new file mode 100644 index 000000000..567282614 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeysExpected @@ -0,0 +1,210 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        4   25.00  75.00  [2] R.m ()
+        4   25.00 100.00  [3] S.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      2/2              8 Z.m ()
+                25.0%    [2]      2/2              4 R.m ()
+                25.0%    [3]      2/2              4 S.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              8 (toplevel)
+[1]     50.0%                     2+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     25.0%                     2+0              4 R.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[3]     25.0%                     2+0              4 S.m ()
+               100.0%   excl                       4
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00  50.00      1 main
+        8   50.00 100.00  50.00   0.00  50.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 16 (100.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                    50.00                      50.00               main
+         8                    50.00                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 16 (100.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                    50.00                      50.00               main
+         8                    50.00                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      2+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      2+0      [1] Z.m ()
+
         4         4    25.0    75.0      2+0      [2] R.m ()
+
         4         4    25.0   100.0      2+0      [3] S.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeysTrace new file mode 100644 index 000000000..9ec737814 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeys new file mode 100644 index 000000000..d1bcdd31c --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeys @@ -0,0 +1,19 @@ +# ____ ____ _________ +# __|A |___________|B |_____|Z |_______ +# +# ___________ ____ ____ +# _______|Z |_____|R |_________|S |__ +# +# +0 1 A +2 1 A +0 2 Z +4 2 Z +2 1 B +4 1 B +4 2 R +6 2 R +4 1 Z +8 1 Z +6 2 S +8 2 S diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeysExpected new file mode 100644 index 000000000..ef56af57b --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeysExpected @@ -0,0 +1,232 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        2   12.50  62.50  [2] A.m ()
+        2   12.50  75.00  [3] B.m ()
+        2   12.50  87.50  [4] R.m ()
+        2   12.50 100.00  [5] S.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      2/2              8 Z.m ()
+                12.5%    [2]      1/1              2 A.m ()
+                12.5%    [3]      1/1              2 B.m ()
+                12.5%    [4]      1/1              2 R.m ()
+                12.5%    [5]      1/1              2 S.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              8 (toplevel)
+[1]     50.0%                     2+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     12.5%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     12.5%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     12.5%                     1+0              2 R.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[5]     12.5%                     1+0              2 S.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00   0.00      1 main
+        8   50.00 100.00  50.00   0.00  50.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 16 (100.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                    50.00                      50.00               main
+         8                    50.00                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 8 ( 50.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         0                     0.00                      50.00               main
+         8                   100.00                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      2+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [5] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      2+0      [1] Z.m ()
+
         2         2    12.5    62.5      1+0      [2] A.m ()
+
         2         2    12.5    75.0      1+0      [3] B.m ()
+
         2         2    12.5    87.5      1+0      [4] R.m ()
+
         2         2    12.5   100.0      1+0      [5] S.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeysTrace new file mode 100644 index 000000000..0559a6af3 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeys new file mode 100644 index 000000000..2bb68d7bd --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeys @@ -0,0 +1,19 @@ +# ____ ____ _________ +# __|A |___________|B |_____|Z |_______ +# +# ___________ ____ ____ +# _______|Z |_____|A |_________|B |__ +# +# +0 1 A +2 1 A +0 2 Z +4 2 Z +2 1 B +4 1 B +4 2 A +6 2 A +4 1 Z +8 1 Z +6 2 B +8 2 B diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeysExpected new file mode 100644 index 000000000..50b2b98a5 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeysExpected @@ -0,0 +1,203 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        4   25.00  75.00  [2] A.m ()
+        4   25.00 100.00  [3] B.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      2/2              8 Z.m ()
+                25.0%    [2]      2/2              4 A.m ()
+                25.0%    [3]      2/2              4 B.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              8 (toplevel)
+[1]     50.0%                     2+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     25.0%                     2+0              4 A.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[3]     25.0%                     2+0              4 B.m ()
+               100.0%   excl                       4
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00   0.00      1 main
+        8   50.00 100.00  50.00   0.00   0.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 16 (100.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                    50.00                      50.00               main
+         8                    50.00                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      2+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      2+0      [1] Z.m ()
+
         4         4    25.0    75.0      2+0      [2] A.m ()
+
         4         4    25.0   100.0      2+0      [3] B.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeysTrace new file mode 100644 index 000000000..f113fcfcc Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeys new file mode 100644 index 000000000..e7456c1a5 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeys @@ -0,0 +1,17 @@ +# ____ ____ ____ ________ ____ ____ ____ +# __|A ||Z ||B ||Z ||D ||Z ||E |__ +# +0 1 A +2 1 A +2 1 Z +4 1 Z +4 1 B +6 1 B +6 1 Z +10 1 Z +10 1 D +12 1 D +12 1 Z +14 1 Z +14 1 E +16 1 E diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeysExpected new file mode 100644 index 000000000..9349375e8 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeysExpected @@ -0,0 +1,232 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        2   12.50  62.50  [2] A.m ()
+        2   12.50  75.00  [3] B.m ()
+        2   12.50  87.50  [4] D.m ()
+        2   12.50 100.00  [5] E.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      3/3              8 Z.m ()
+                12.5%    [2]      1/1              2 A.m ()
+                12.5%    [3]      1/1              2 B.m ()
+                12.5%    [4]      1/1              2 D.m ()
+                12.5%    [5]      1/1              2 E.m ()
+----------------------------------------------------
+               100.0%    [0]      3/3              8 (toplevel)
+[1]     50.0%                     3+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     12.5%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     12.5%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     12.5%                     1+0              2 D.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[5]     12.5%                     1+0              2 E.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       16  100.00 100.00  37.50  37.50   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 6 ( 37.50% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         6                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 6 ( 37.50% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         6                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      3+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [5] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      3+0      [1] Z.m ()
+
         2         2    12.5    62.5      1+0      [2] A.m ()
+
         2         2    12.5    75.0      1+0      [3] B.m ()
+
         2         2    12.5    87.5      1+0      [4] D.m ()
+
         2         2    12.5   100.0      1+0      [5] E.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeysTrace new file mode 100644 index 000000000..09983baca Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeys new file mode 100644 index 000000000..b51f81e18 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeys @@ -0,0 +1,17 @@ +# ____ ____ ____ ________ ____ ____ ____ +# __|R ||Z ||S ||Z ||R ||Z ||S |__ +# +0 1 R +2 1 R +2 1 Z +4 1 Z +4 1 S +6 1 S +6 1 Z +10 1 Z +10 1 R +12 1 R +12 1 Z +14 1 Z +14 1 S +16 1 S diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeysExpected new file mode 100644 index 000000000..41f9625b5 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeysExpected @@ -0,0 +1,210 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        4   25.00  75.00  [2] R.m ()
+        4   25.00 100.00  [3] S.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      3/3              8 Z.m ()
+                25.0%    [2]      2/2              4 R.m ()
+                25.0%    [3]      2/2              4 S.m ()
+----------------------------------------------------
+               100.0%    [0]      3/3              8 (toplevel)
+[1]     50.0%                     3+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     25.0%                     2+0              4 R.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[3]     25.0%                     2+0              4 S.m ()
+               100.0%   excl                       4
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       16  100.00 100.00  75.00   0.00  75.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+        12                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+        12                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      3+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      3+0      [1] Z.m ()
+
         4         4    25.0    75.0      2+0      [2] R.m ()
+
         4         4    25.0   100.0      2+0      [3] S.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeysTrace new file mode 100644 index 000000000..2cccf077a Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeys new file mode 100644 index 000000000..d4e41a48a --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeys @@ -0,0 +1,16 @@ +# ____ +# ____ ____ ____ ________ ____|Z |____ +# __|A ||Z ||B ||Z ||C |__ +# +0 1 A +2 1 A +2 1 Z +4 1 Z +4 1 B +6 1 B +6 1 Z +10 1 Z +10 1 C +12 1 Z +14 1 Z +16 1 C diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeysExpected new file mode 100644 index 000000000..d81cccc9c --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeysExpected @@ -0,0 +1,216 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        4   25.00  75.00  [2] C.m ()
+        2   12.50  87.50  [3] A.m ()
+        2   12.50 100.00  [4] B.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                37.5%    [2]      1/1              6 C.m ()
+                37.5%    [1]      2/3              6 Z.m ()
+                12.5%    [3]      1/1              2 A.m ()
+                12.5%    [4]      1/1              2 B.m ()
+----------------------------------------------------
+                75.0%    [0]      2/3              6 (toplevel)
+                25.0%    [2]      1/3              2 C.m ()
+[1]     50.0%                     3+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      1/1              6 (toplevel)
+[2]     37.5%                     1+0              6 C.m ()
+                66.7%   excl                       4
+                33.3%    [1]      1/3              2 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     12.5%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     12.5%                     1+0              2 B.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       16  100.00 100.00  75.00   0.00   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+        12                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      3+0      [1] m ()
+
+ +
+
         4         6   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      3+0      [1] Z.m ()
+
         4         6    25.0    75.0      1+0      [2] C.m ()
+
         2         2    12.5    87.5      1+0      [3] A.m ()
+
         2         2    12.5   100.0      1+0      [4] B.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeysTrace new file mode 100644 index 000000000..3f61656ab Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeys new file mode 100644 index 000000000..0b3377d6b --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeys @@ -0,0 +1,17 @@ +# ____ ____ ____ ________ ____ ____ ____ +# __|A ||Z ||B ||Z ||A ||Z ||B |__ +# +0 1 A +2 1 A +2 1 Z +4 1 Z +4 1 B +6 1 B +6 1 Z +10 1 Z +10 1 A +12 1 A +12 1 Z +14 1 Z +14 1 B +16 1 B diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeysExpected new file mode 100644 index 000000000..aa476b36b --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeysExpected @@ -0,0 +1,203 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        4   25.00  75.00  [2] A.m ()
+        4   25.00 100.00  [3] B.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      3/3              8 Z.m ()
+                25.0%    [2]      2/2              4 A.m ()
+                25.0%    [3]      2/2              4 B.m ()
+----------------------------------------------------
+               100.0%    [0]      3/3              8 (toplevel)
+[1]     50.0%                     3+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     25.0%                     2+0              4 A.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[3]     25.0%                     2+0              4 B.m ()
+               100.0%   excl                       4
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       16  100.00 100.00  75.00   0.00   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+        12                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      3+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      3+0      [1] Z.m ()
+
         4         4    25.0    75.0      2+0      [2] A.m ()
+
         4         4    25.0   100.0      2+0      [3] B.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeysTrace new file mode 100644 index 000000000..c6ddbe5ab Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeys new file mode 100644 index 000000000..d87ac8174 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeys @@ -0,0 +1,19 @@ +# ____ ____ ________ +# __|A |_____________________|B ||Z |__ +# +# ____ ________ ____ +# _______|D ||Z ||E |______________ +# +# +0 1 A +2 1 A +0 2 D +2 2 D +2 2 Z +6 2 Z +6 2 E +8 2 E +2 1 B +4 1 B +4 1 Z +8 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeysExpected new file mode 100644 index 000000000..a97f25c78 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeysExpected @@ -0,0 +1,232 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        2   12.50  62.50  [2] A.m ()
+        2   12.50  75.00  [3] B.m ()
+        2   12.50  87.50  [4] D.m ()
+        2   12.50 100.00  [5] E.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      2/2              8 Z.m ()
+                12.5%    [2]      1/1              2 A.m ()
+                12.5%    [3]      1/1              2 B.m ()
+                12.5%    [4]      1/1              2 D.m ()
+                12.5%    [5]      1/1              2 E.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              8 (toplevel)
+[1]     50.0%                     2+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     12.5%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     12.5%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     12.5%                     1+0              2 D.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[5]     12.5%                     1+0              2 E.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00   0.00      1 main
+        8   50.00 100.00   0.00 100.00   0.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+        12                   100.00                      33.33               main
+         0                     0.00                      66.67               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 8 ( 50.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         0                     0.00                       0.00               main
+         8                   100.00                     100.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      2+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [5] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      2+0      [1] Z.m ()
+
         2         2    12.5    62.5      1+0      [2] A.m ()
+
         2         2    12.5    75.0      1+0      [3] B.m ()
+
         2         2    12.5    87.5      1+0      [4] D.m ()
+
         2         2    12.5   100.0      1+0      [5] E.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeysTrace new file mode 100644 index 000000000..832bbfc54 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeys new file mode 100644 index 000000000..82ab14216 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeys @@ -0,0 +1,19 @@ +# ____ ____ ________ +# __|R |_____________________|S ||Z |__ +# +# ____ ________ ____ +# _______|R ||Z ||S |______________ +# +# +0 1 R +2 1 R +0 2 R +2 2 R +2 2 Z +6 2 Z +6 2 S +8 2 S +2 1 S +4 1 S +4 1 Z +8 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeysExpected new file mode 100644 index 000000000..623478eee --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeysExpected @@ -0,0 +1,210 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        4   25.00  75.00  [2] R.m ()
+        4   25.00 100.00  [3] S.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      2/2              8 Z.m ()
+                25.0%    [2]      2/2              4 R.m ()
+                25.0%    [3]      2/2              4 S.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              8 (toplevel)
+[1]     50.0%                     2+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     25.0%                     2+0              4 R.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[3]     25.0%                     2+0              4 S.m ()
+               100.0%   excl                       4
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00  50.00      1 main
+        8   50.00 100.00 100.00   0.00 100.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+        12                   100.00                      33.33               main
+         8                    66.67                      66.67               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+        12                   100.00                      33.33               main
+         8                    66.67                      66.67               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      2+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      2+0      [1] Z.m ()
+
         4         4    25.0    75.0      2+0      [2] R.m ()
+
         4         4    25.0   100.0      2+0      [3] S.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeysTrace new file mode 100644 index 000000000..371f150d4 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeys new file mode 100644 index 000000000..511543fdb --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeys @@ -0,0 +1,19 @@ +# ____ ____ ________ +# __|A |_____________________|B ||Z |__ +# +# ____ ________ ____ +# _______|R ||Z ||S |______________ +# +# +0 1 A +2 1 A +0 2 R +2 2 R +2 2 Z +6 2 Z +6 2 S +8 2 S +2 1 B +4 1 B +4 1 Z +8 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeysExpected new file mode 100644 index 000000000..1193f5ffd --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeysExpected @@ -0,0 +1,232 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        2   12.50  62.50  [2] A.m ()
+        2   12.50  75.00  [3] B.m ()
+        2   12.50  87.50  [4] R.m ()
+        2   12.50 100.00  [5] S.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      2/2              8 Z.m ()
+                12.5%    [2]      1/1              2 A.m ()
+                12.5%    [3]      1/1              2 B.m ()
+                12.5%    [4]      1/1              2 R.m ()
+                12.5%    [5]      1/1              2 S.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              8 (toplevel)
+[1]     50.0%                     2+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     12.5%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     12.5%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     12.5%                     1+0              2 R.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[5]     12.5%                     1+0              2 S.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00   0.00      1 main
+        8   50.00 100.00 100.00   0.00 100.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+        12                   100.00                      33.33               main
+         8                    66.67                      66.67               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 8 ( 50.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         0                     0.00                       0.00               main
+         8                   100.00                     100.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      2+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [5] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      2+0      [1] Z.m ()
+
         2         2    12.5    62.5      1+0      [2] A.m ()
+
         2         2    12.5    75.0      1+0      [3] B.m ()
+
         2         2    12.5    87.5      1+0      [4] R.m ()
+
         2         2    12.5   100.0      1+0      [5] S.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeysTrace new file mode 100644 index 000000000..9f87efc65 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeys new file mode 100644 index 000000000..6714ddd72 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeys @@ -0,0 +1,19 @@ +# ____ ____ ________ +# __|A |_____________________|B ||Z |__ +# +# ____ ________ ____ +# _______|A ||Z ||B |______________ +# +# +0 1 A +2 1 A +0 2 A +2 2 A +2 2 Z +6 2 Z +6 2 B +8 2 B +2 1 B +4 1 B +4 1 Z +8 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeysExpected new file mode 100644 index 000000000..79c2e6300 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeysExpected @@ -0,0 +1,203 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        4   25.00  75.00  [2] A.m ()
+        4   25.00 100.00  [3] B.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      2/2              8 Z.m ()
+                25.0%    [2]      2/2              4 A.m ()
+                25.0%    [3]      2/2              4 B.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              8 (toplevel)
+[1]     50.0%                     2+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     25.0%                     2+0              4 A.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[3]     25.0%                     2+0              4 B.m ()
+               100.0%   excl                       4
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00   0.00      1 main
+        8   50.00 100.00 100.00   0.00   0.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+        12                   100.00                      33.33               main
+         8                    66.67                      66.67               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      2+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      2+0      [1] Z.m ()
+
         4         4    25.0    75.0      2+0      [2] A.m ()
+
         4         4    25.0   100.0      2+0      [3] B.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeysTrace new file mode 100644 index 000000000..74e4c53e9 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeys new file mode 100644 index 000000000..b92471f84 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeys @@ -0,0 +1,13 @@ +# ____ ____ ____ ____ ____ +# __|A ||D ||E ||B ||Z |__ +# +0 1 A +2 1 A +2 1 D +4 1 D +4 1 E +6 1 E +6 1 B +8 1 B +8 1 Z +10 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeysExpected new file mode 100644 index 000000000..3b2ffc8d3 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeysExpected @@ -0,0 +1,232 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 10 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        2   20.00  20.00  [1] A.m ()
+        2   20.00  40.00  [2] B.m ()
+        2   20.00  60.00  [3] D.m ()
+        2   20.00  80.00  [4] E.m ()
+        2   20.00 100.00  [5] Z.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             10 (toplevel)
+                 0.0%   excl                       0
+                20.0%    [1]      1/1              2 A.m ()
+                20.0%    [2]      1/1              2 B.m ()
+                20.0%    [3]      1/1              2 D.m ()
+                20.0%    [4]      1/1              2 E.m ()
+                20.0%    [5]      1/1              2 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[1]     20.0%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     20.0%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     20.0%                     1+0              2 D.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     20.0%                     1+0              2 E.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[5]     20.0%                     1+0              2 Z.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       10  100.00 100.00  80.00  40.00   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 8 ( 80.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 4 ( 40.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         4                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         2         2   100.0   100.0      1+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [5] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         2         2    20.0    20.0      1+0      [1] A.m ()
+
         2         2    20.0    40.0      1+0      [2] B.m ()
+
         2         2    20.0    60.0      1+0      [3] D.m ()
+
         2         2    20.0    80.0      1+0      [4] E.m ()
+
         2         2    20.0   100.0      1+0      [5] Z.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeysTrace new file mode 100644 index 000000000..c9c086cea Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeys new file mode 100644 index 000000000..27b2bf80c --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeys @@ -0,0 +1,13 @@ +# ____ ____ ____ ____ ____ +# __|R ||R ||S ||S ||Z |__ +# +0 1 R +2 1 R +2 1 R +4 1 R +4 1 S +6 1 S +6 1 S +8 1 S +8 1 Z +10 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeysExpected new file mode 100644 index 000000000..df55cd463 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeysExpected @@ -0,0 +1,210 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 10 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        4   40.00  40.00  [1] R.m ()
+        4   40.00  80.00  [2] S.m ()
+        2   20.00 100.00  [3] Z.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             10 (toplevel)
+                 0.0%   excl                       0
+                40.0%    [1]      2/2              4 R.m ()
+                40.0%    [2]      2/2              4 S.m ()
+                20.0%    [3]      1/1              2 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[1]     40.0%                     2+0              4 R.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     40.0%                     2+0              4 S.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     20.0%                     1+0              2 Z.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       10  100.00 100.00  80.00   0.00  80.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 8 ( 80.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 8 ( 80.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         4         4   100.0   100.0      2+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         4         4    40.0    40.0      2+0      [1] R.m ()
+
         4         4    40.0    80.0      2+0      [2] S.m ()
+
         2         2    20.0   100.0      1+0      [3] Z.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeysTrace new file mode 100644 index 000000000..0afca4d06 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeys new file mode 100644 index 000000000..a494716e6 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeys @@ -0,0 +1,11 @@ +# ____ ____ ____ ____ +# __|A ||C ||B ||Z |__ +# +0 1 A +2 1 A +2 1 C +4 1 C +4 1 B +6 1 B +6 1 Z +8 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeysExpected new file mode 100644 index 000000000..720d05ac4 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeysExpected @@ -0,0 +1,214 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 8 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        2   25.00  25.00  [1] A.m ()
+        2   25.00  50.00  [2] B.m ()
+        2   25.00  75.00  [3] C.m ()
+        2   25.00 100.00  [4] Z.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0              8 (toplevel)
+                 0.0%   excl                       0
+                25.0%    [1]      1/1              2 A.m ()
+                25.0%    [2]      1/1              2 B.m ()
+                25.0%    [3]      1/1              2 C.m ()
+                25.0%    [4]      1/1              2 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[1]     25.0%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     25.0%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     25.0%                     1+0              2 C.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     25.0%                     1+0              2 Z.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8  100.00 100.00  75.00   0.00   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 6 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         6                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         2         2   100.0   100.0      1+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         2         2    25.0    25.0      1+0      [1] A.m ()
+
         2         2    25.0    50.0      1+0      [2] B.m ()
+
         2         2    25.0    75.0      1+0      [3] C.m ()
+
         2         2    25.0   100.0      1+0      [4] Z.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeysTrace new file mode 100644 index 000000000..c5f9a3e5e Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeys new file mode 100644 index 000000000..bd645af3f --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeys @@ -0,0 +1,13 @@ +# ____ ____ ____ ____ ____ +# __|A ||A ||B ||B ||Z |__ +# +0 1 A +2 1 A +2 1 A +4 1 A +4 1 B +6 1 B +6 1 B +8 1 B +8 1 Z +10 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeysExpected new file mode 100644 index 000000000..0e8f300ea --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeysExpected @@ -0,0 +1,203 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 10 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        4   40.00  40.00  [1] A.m ()
+        4   40.00  80.00  [2] B.m ()
+        2   20.00 100.00  [3] Z.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             10 (toplevel)
+                 0.0%   excl                       0
+                40.0%    [1]      2/2              4 A.m ()
+                40.0%    [2]      2/2              4 B.m ()
+                20.0%    [3]      1/1              2 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[1]     40.0%                     2+0              4 A.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     40.0%                     2+0              4 B.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     20.0%                     1+0              2 Z.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       10  100.00 100.00  80.00   0.00   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 8 ( 80.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         4         4   100.0   100.0      2+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         4         4    40.0    40.0      2+0      [1] A.m ()
+
         4         4    40.0    80.0      2+0      [2] B.m ()
+
         2         2    20.0   100.0      1+0      [3] Z.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeysTrace new file mode 100644 index 000000000..65e381a13 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingPairCrossThread b/tools/dmtracedump/tests/filters/testWaitingPairCrossThread new file mode 100644 index 000000000..6c93bc62f --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPairCrossThread @@ -0,0 +1,14 @@ +# ____ ____ ____ +# __|A |______|B ||Z |__ +# +# _____ +# ________|Z |_________________ +# +0 1 A +2 1 A +0 2 Z +2 2 Z +2 1 B +4 1 B +4 1 Z +6 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingPairCrossThreadExpected b/tools/dmtracedump/tests/filters/testWaitingPairCrossThreadExpected new file mode 100644 index 000000000..ed45fffca --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPairCrossThreadExpected @@ -0,0 +1,203 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 8 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        4   50.00  50.00  [1] Z.m ()
+        2   25.00  75.00  [2] A.m ()
+        2   25.00 100.00  [3] B.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0              8 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      2/2              4 Z.m ()
+                25.0%    [2]      1/1              2 A.m ()
+                25.0%    [3]      1/1              2 B.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[1]     50.0%                     2+0              4 Z.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     25.0%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     25.0%                     1+0              2 B.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        6   75.00  75.00  66.67   0.00   0.00      1 main
+        2   25.00 100.00   0.00   0.00   0.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 6 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         6                   100.00                      66.67               main
+         0                     0.00                      33.33               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         4         4   100.0   100.0      2+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         4         4    50.0    50.0      2+0      [1] Z.m ()
+
         2         2    25.0    75.0      1+0      [2] A.m ()
+
         2         2    25.0   100.0      1+0      [3] B.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingPairCrossThreadTrace b/tools/dmtracedump/tests/filters/testWaitingPairCrossThreadTrace new file mode 100644 index 000000000..4e53dfd22 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingPairCrossThreadTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingPairSingleThread b/tools/dmtracedump/tests/filters/testWaitingPairSingleThread new file mode 100644 index 000000000..45375ca87 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPairSingleThread @@ -0,0 +1,11 @@ +# ____ ____ ____ ____ +# __|A ||Z ||B ||Z |__ +# +0 1 A +2 1 A +2 1 Z +4 1 Z +4 1 B +6 1 B +6 1 Z +8 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingPairSingleThreadExpected b/tools/dmtracedump/tests/filters/testWaitingPairSingleThreadExpected new file mode 100644 index 000000000..b3e2b3f94 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPairSingleThreadExpected @@ -0,0 +1,203 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 8 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        4   50.00  50.00  [1] Z.m ()
+        2   25.00  75.00  [2] A.m ()
+        2   25.00 100.00  [3] B.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0              8 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      2/2              4 Z.m ()
+                25.0%    [2]      1/1              2 A.m ()
+                25.0%    [3]      1/1              2 B.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[1]     50.0%                     2+0              4 Z.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     25.0%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     25.0%                     1+0              2 B.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8  100.00 100.00  75.00   0.00   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 6 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         6                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         4         4   100.0   100.0      2+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         4         4    50.0    50.0      2+0      [1] Z.m ()
+
         2         2    25.0    75.0      1+0      [2] A.m ()
+
         2         2    25.0   100.0      1+0      [3] B.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingPairSingleThreadTrace b/tools/dmtracedump/tests/filters/testWaitingPairSingleThreadTrace new file mode 100644 index 000000000..3f29843a9 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingPairSingleThreadTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeys new file mode 100644 index 000000000..05995f370 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeys @@ -0,0 +1,23 @@ +# ____ ____ ____ ____ +# __|A |___________|B ||Z |____|Z |_______ +# +# ____ ____ ____ ____ +# _______|Z ||D |___________|E |____|Z |__ +# +# +0 1 A +2 1 A +0 2 Z +2 2 Z +2 2 D +4 2 D +2 1 B +4 1 B +4 1 Z +6 1 Z +4 2 E +6 2 E +6 1 Z +8 1 Z +6 2 Z +8 2 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeysExpected new file mode 100644 index 000000000..ba83cee11 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeysExpected @@ -0,0 +1,232 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        2   12.50  62.50  [2] A.m ()
+        2   12.50  75.00  [3] B.m ()
+        2   12.50  87.50  [4] D.m ()
+        2   12.50 100.00  [5] E.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      4/4              8 Z.m ()
+                12.5%    [2]      1/1              2 A.m ()
+                12.5%    [3]      1/1              2 B.m ()
+                12.5%    [4]      1/1              2 D.m ()
+                12.5%    [5]      1/1              2 E.m ()
+----------------------------------------------------
+               100.0%    [0]      4/4              8 (toplevel)
+[1]     50.0%                     4+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     12.5%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     12.5%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     12.5%                     1+0              2 D.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[5]     12.5%                     1+0              2 E.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00   0.00      1 main
+        8   50.00 100.00   0.00  50.00   0.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 8 ( 50.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                   100.00                      50.00               main
+         0                     0.00                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 8 ( 50.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         0                     0.00                      50.00               main
+         8                   100.00                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      4+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [5] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      4+0      [1] Z.m ()
+
         2         2    12.5    62.5      1+0      [2] A.m ()
+
         2         2    12.5    75.0      1+0      [3] B.m ()
+
         2         2    12.5    87.5      1+0      [4] D.m ()
+
         2         2    12.5   100.0      1+0      [5] E.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeysTrace new file mode 100644 index 000000000..30fbe3853 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeys new file mode 100644 index 000000000..f87446405 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeys @@ -0,0 +1,23 @@ +# ____ ____ ____ ____ +# __|R |___________|S ||Z |____|Z |_______ +# +# ____ ____ ____ ____ +# _______|Z ||R |___________|S |____|Z |__ +# +# +0 1 R +2 1 R +0 2 Z +2 2 Z +2 2 R +4 2 R +2 1 S +4 1 S +4 1 Z +6 1 Z +4 2 S +6 2 S +6 1 Z +8 1 Z +6 2 Z +8 2 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeysExpected new file mode 100644 index 000000000..93c4a0521 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeysExpected @@ -0,0 +1,210 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        4   25.00  75.00  [2] R.m ()
+        4   25.00 100.00  [3] S.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      4/4              8 Z.m ()
+                25.0%    [2]      2/2              4 R.m ()
+                25.0%    [3]      2/2              4 S.m ()
+----------------------------------------------------
+               100.0%    [0]      4/4              8 (toplevel)
+[1]     50.0%                     4+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     25.0%                     2+0              4 R.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[3]     25.0%                     2+0              4 S.m ()
+               100.0%   excl                       4
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00  50.00      1 main
+        8   50.00 100.00  50.00   0.00  50.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                    66.67                      50.00               main
+         8                    66.67                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                    66.67                      50.00               main
+         8                    66.67                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      4+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      4+0      [1] Z.m ()
+
         4         4    25.0    75.0      2+0      [2] R.m ()
+
         4         4    25.0   100.0      2+0      [3] S.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeysTrace new file mode 100644 index 000000000..6dc18264d Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeys new file mode 100644 index 000000000..bdc437336 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeys @@ -0,0 +1,23 @@ +# ____ ____ ____ ____ +# __|A |___________|B ||Z |____|Z |_______ +# +# ____ ____ ____ ____ +# _______|Z ||R |___________|S |____|Z |__ +# +# +0 1 A +2 1 A +0 2 Z +2 2 Z +2 2 R +4 2 R +2 1 B +4 1 B +4 1 Z +6 1 Z +4 2 S +6 2 S +6 1 Z +8 1 Z +6 2 Z +8 2 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeysExpected new file mode 100644 index 000000000..b154ed134 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeysExpected @@ -0,0 +1,232 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        2   12.50  62.50  [2] A.m ()
+        2   12.50  75.00  [3] B.m ()
+        2   12.50  87.50  [4] R.m ()
+        2   12.50 100.00  [5] S.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      4/4              8 Z.m ()
+                12.5%    [2]      1/1              2 A.m ()
+                12.5%    [3]      1/1              2 B.m ()
+                12.5%    [4]      1/1              2 R.m ()
+                12.5%    [5]      1/1              2 S.m ()
+----------------------------------------------------
+               100.0%    [0]      4/4              8 (toplevel)
+[1]     50.0%                     4+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     12.5%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     12.5%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     12.5%                     1+0              2 R.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[5]     12.5%                     1+0              2 S.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00   0.00      1 main
+        8   50.00 100.00  50.00   0.00  50.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                    66.67                      50.00               main
+         8                    66.67                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 8 ( 50.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         0                     0.00                      50.00               main
+         8                   100.00                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      4+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [5] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      4+0      [1] Z.m ()
+
         2         2    12.5    62.5      1+0      [2] A.m ()
+
         2         2    12.5    75.0      1+0      [3] B.m ()
+
         2         2    12.5    87.5      1+0      [4] R.m ()
+
         2         2    12.5   100.0      1+0      [5] S.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeysTrace new file mode 100644 index 000000000..efb0b1b06 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeys new file mode 100644 index 000000000..552ae40df --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeys @@ -0,0 +1,23 @@ +# ____ ____ ____ ____ +# __|A |___________|B ||Z |____|Z |_______ +# +# ____ ____ ____ ____ +# _______|Z ||A |___________|B |____|Z |__ +# +# +0 1 A +2 1 A +0 2 Z +2 2 Z +2 2 A +4 2 A +2 1 B +4 1 B +4 1 Z +6 1 Z +4 2 B +6 2 B +6 1 Z +8 1 Z +6 2 Z +8 2 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeysExpected new file mode 100644 index 000000000..82b0356b9 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeysExpected @@ -0,0 +1,203 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 16 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        8   50.00  50.00  [1] Z.m ()
+        4   25.00  75.00  [2] A.m ()
+        4   25.00 100.00  [3] B.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             16 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      4/4              8 Z.m ()
+                25.0%    [2]      2/2              4 A.m ()
+                25.0%    [3]      2/2              4 B.m ()
+----------------------------------------------------
+               100.0%    [0]      4/4              8 (toplevel)
+[1]     50.0%                     4+0              8 Z.m ()
+               100.0%   excl                       8
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     25.0%                     2+0              4 A.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[3]     25.0%                     2+0              4 B.m ()
+               100.0%   excl                       4
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8   50.00  50.00  50.00   0.00   0.00      1 main
+        8   50.00 100.00  50.00   0.00   0.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 12 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                    66.67                      50.00               main
+         8                    66.67                      50.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         8         8   100.0   100.0      4+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         8         8    50.0    50.0      4+0      [1] Z.m ()
+
         4         4    25.0    75.0      2+0      [2] A.m ()
+
         4         4    25.0   100.0      2+0      [3] B.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeysTrace new file mode 100644 index 000000000..497e925f1 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterDiffKeys new file mode 100644 index 000000000..edf03c54a --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterDiffKeys @@ -0,0 +1,13 @@ +# ____ ____ ____ ____ ____ +# __|A ||D ||B ||E ||Z |__ +# +0 1 A +2 1 A +2 1 D +4 1 D +4 1 B +6 1 B +6 1 E +8 1 E +8 1 Z +10 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterDiffKeysExpected new file mode 100644 index 000000000..2d597200d --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterDiffKeysExpected @@ -0,0 +1,232 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 10 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        2   20.00  20.00  [1] A.m ()
+        2   20.00  40.00  [2] B.m ()
+        2   20.00  60.00  [3] D.m ()
+        2   20.00  80.00  [4] E.m ()
+        2   20.00 100.00  [5] Z.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             10 (toplevel)
+                 0.0%   excl                       0
+                20.0%    [1]      1/1              2 A.m ()
+                20.0%    [2]      1/1              2 B.m ()
+                20.0%    [3]      1/1              2 D.m ()
+                20.0%    [4]      1/1              2 E.m ()
+                20.0%    [5]      1/1              2 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[1]     20.0%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     20.0%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     20.0%                     1+0              2 D.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     20.0%                     1+0              2 E.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[5]     20.0%                     1+0              2 Z.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       10  100.00 100.00  60.00  60.00   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 6 ( 60.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         6                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 6 ( 60.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         6                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         2         2   100.0   100.0      1+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [5] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         2         2    20.0    20.0      1+0      [1] A.m ()
+
         2         2    20.0    40.0      1+0      [2] B.m ()
+
         2         2    20.0    60.0      1+0      [3] D.m ()
+
         2         2    20.0    80.0      1+0      [4] E.m ()
+
         2         2    20.0   100.0      1+0      [5] Z.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterDiffKeysTrace new file mode 100644 index 000000000..b9afef48f Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterSameKeys new file mode 100644 index 000000000..27b2bf80c --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterSameKeys @@ -0,0 +1,13 @@ +# ____ ____ ____ ____ ____ +# __|R ||R ||S ||S ||Z |__ +# +0 1 R +2 1 R +2 1 R +4 1 R +4 1 S +6 1 S +6 1 S +8 1 S +8 1 Z +10 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterSameKeysExpected new file mode 100644 index 000000000..df55cd463 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterSameKeysExpected @@ -0,0 +1,210 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 10 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        4   40.00  40.00  [1] R.m ()
+        4   40.00  80.00  [2] S.m ()
+        2   20.00 100.00  [3] Z.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             10 (toplevel)
+                 0.0%   excl                       0
+                40.0%    [1]      2/2              4 R.m ()
+                40.0%    [2]      2/2              4 S.m ()
+                20.0%    [3]      1/1              2 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[1]     40.0%                     2+0              4 R.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     40.0%                     2+0              4 S.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     20.0%                     1+0              2 Z.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       10  100.00 100.00  80.00   0.00  80.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 8 ( 80.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 8 ( 80.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         4         4   100.0   100.0      2+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         4         4    40.0    40.0      2+0      [1] R.m ()
+
         4         4    40.0    80.0      2+0      [2] S.m ()
+
         2         2    20.0   100.0      1+0      [3] Z.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterSameKeysTrace new file mode 100644 index 000000000..a52929a06 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadDiffFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterDiffKeys b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterDiffKeys new file mode 100644 index 000000000..c53c90df1 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterDiffKeys @@ -0,0 +1,12 @@ +# ____ +# ____ ____|B |____ ____ +# __|A ||C ||Z |__ +# +0 1 A +2 1 A +2 1 C +4 1 B +6 1 B +8 1 C +8 1 Z +10 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterDiffKeysExpected b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterDiffKeysExpected new file mode 100644 index 000000000..18ce892fd --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterDiffKeysExpected @@ -0,0 +1,214 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 10 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        4   40.00  40.00  [1] C.m ()
+        2   20.00  60.00  [2] A.m ()
+        2   20.00  80.00  [3] B.m ()
+        2   20.00 100.00  [4] Z.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             10 (toplevel)
+                 0.0%   excl                       0
+                60.0%    [1]      1/1              6 C.m ()
+                20.0%    [2]      1/1              2 A.m ()
+                20.0%    [4]      1/1              2 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      1/1              6 (toplevel)
+[1]     60.0%                     1+0              6 C.m ()
+                66.7%   excl                       4
+                33.3%    [3]      1/1              2 B.m ()
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[2]     20.0%                     1+0              2 A.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [1]      1/1              2 C.m ()
+[3]     20.0%                     1+0              2 B.m ()
+               100.0%   excl                       2
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[4]     20.0%                     1+0              2 Z.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       10  100.00 100.00  80.00   0.00   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 8 ( 80.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         4         6   100.0   100.0      1+0      [1] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [4] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         4         6    40.0    40.0      1+0      [1] C.m ()
+
         2         2    20.0    60.0      1+0      [2] A.m ()
+
         2         2    20.0    80.0      1+0      [3] B.m ()
+
         2         2    20.0   100.0      1+0      [4] Z.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterDiffKeysTrace b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterDiffKeysTrace new file mode 100644 index 000000000..23f418786 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterDiffKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterSameKeys b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterSameKeys new file mode 100644 index 000000000..bd645af3f --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterSameKeys @@ -0,0 +1,13 @@ +# ____ ____ ____ ____ ____ +# __|A ||A ||B ||B ||Z |__ +# +0 1 A +2 1 A +2 1 A +4 1 A +4 1 B +6 1 B +6 1 B +8 1 B +8 1 Z +10 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterSameKeysExpected b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterSameKeysExpected new file mode 100644 index 000000000..0e8f300ea --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterSameKeysExpected @@ -0,0 +1,203 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 10 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        4   40.00  40.00  [1] A.m ()
+        4   40.00  80.00  [2] B.m ()
+        2   20.00 100.00  [3] Z.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0             10 (toplevel)
+                 0.0%   excl                       0
+                40.0%    [1]      2/2              4 A.m ()
+                40.0%    [2]      2/2              4 B.m ()
+                20.0%    [3]      1/1              2 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[1]     40.0%                     2+0              4 A.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     40.0%                     2+0              4 B.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      1/1              2 (toplevel)
+[3]     20.0%                     1+0              2 Z.m ()
+               100.0%   excl                       2
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+       10  100.00 100.00  80.00   0.00   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 8 ( 80.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         8                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         4         4   100.0   100.0      2+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+
         2         2   100.0   100.0      1+0      [3] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         4         4    40.0    40.0      2+0      [1] A.m ()
+
         4         4    40.0    80.0      2+0      [2] B.m ()
+
         2         2    20.0   100.0      1+0      [3] Z.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterSameKeysTrace b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterSameKeysTrace new file mode 100644 index 000000000..01e95cd90 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingPartialOverlapSingleThreadSameFilterSameKeysTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingSoloCrossThread b/tools/dmtracedump/tests/filters/testWaitingSoloCrossThread new file mode 100644 index 000000000..c9dbd1a09 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingSoloCrossThread @@ -0,0 +1,12 @@ +# ____ ____ ____ +# __|C ||Z |__ +# +# ____ +# ________|Z |_____________ +# +0 1 C +0 2 Z +2 2 Z +4 1 C +4 1 Z +6 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingSoloCrossThreadExpected b/tools/dmtracedump/tests/filters/testWaitingSoloCrossThreadExpected new file mode 100644 index 000000000..409b17ebe --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingSoloCrossThreadExpected @@ -0,0 +1,192 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 8 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        4   50.00  50.00  [1] C.m ()
+        4   50.00 100.00  [2] Z.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0              8 (toplevel)
+                 0.0%   excl                       0
+                50.0%    [1]      1/1              4 C.m ()
+                50.0%    [2]      2/2              4 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      1/1              4 (toplevel)
+[1]     50.0%                     1+0              4 C.m ()
+               100.0%   excl                       4
+----------------------------------------------------
+               100.0%    [0]      2/2              4 (toplevel)
+[2]     50.0%                     2+0              4 Z.m ()
+               100.0%   excl                       4
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        6   75.00  75.00  66.67   0.00   0.00      1 main
+        2   25.00 100.00   0.00   0.00   0.00      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 6 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         6                   100.00                      66.67               main
+         0                     0.00                      33.33               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         4         4   100.0   100.0      1+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         4         4    50.0    50.0      1+0      [1] C.m ()
+
         4         4    50.0   100.0      2+0      [2] Z.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingSoloCrossThreadTrace b/tools/dmtracedump/tests/filters/testWaitingSoloCrossThreadTrace new file mode 100644 index 000000000..e73f0400a Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingSoloCrossThreadTrace differ diff --git a/tools/dmtracedump/tests/filters/testWaitingSoloSingleThread b/tools/dmtracedump/tests/filters/testWaitingSoloSingleThread new file mode 100644 index 000000000..3f0753e20 --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingSoloSingleThread @@ -0,0 +1,10 @@ +# _____ +# ____|Z |____ ____ +# __|C ||Z |__ +# +0 1 C +2 1 Z +4 1 Z +6 1 C +6 1 Z +8 1 Z diff --git a/tools/dmtracedump/tests/filters/testWaitingSoloSingleThreadExpected b/tools/dmtracedump/tests/filters/testWaitingSoloSingleThreadExpected new file mode 100644 index 000000000..8d22b637f --- /dev/null +++ b/tools/dmtracedump/tests/filters/testWaitingSoloSingleThreadExpected @@ -0,0 +1,194 @@ + + + + + + + + +

Table of Contents

+ + + +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+Total cycles: 8 + +

+Exclusive elapsed times for each method, not including time spent in +children, sorted by exclusive time. + +

+
+    Usecs  self %  sum %  Method
+        4   50.00  50.00  [1] C.m ()
+        4   50.00 100.00  [2] Z.m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Inclusive elapsed times for each method and its parents and children, +sorted by inclusive time. + +

+
+index  %/total %/self  index     calls         usecs name
+----------------------------------------------------
+[0]    100.0%                     0+0              8 (toplevel)
+                 0.0%   excl                       0
+                75.0%    [1]      1/1              6 C.m ()
+                25.0%    [2]      1/2              2 Z.m ()
+----------------------------------------------------
+               100.0%    [0]      1/1              6 (toplevel)
+[1]     75.0%                     1+0              6 C.m ()
+                66.7%   excl                       4
+                33.3%    [2]      1/2              2 Z.m ()
+----------------------------------------------------
+                50.0%    [0]      1/2              2 (toplevel)
+                50.0%    [1]      1/2              2 C.m ()
+[2]     50.0%                     2+0              4 Z.m ()
+               100.0%   excl                       4
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Elapsed times for each thread, sorted by elapsed time. +Also includes percentage of time spent during the execution of any filters. + +

+
+    Usecs   self %  sum %  FirstFilter %  SecondFilter %  RepeatedFilter %  tid   ThreadName
+        8  100.00 100.00  75.00   0.00   0.00      1 main
+        0    0.00 100.00    nan    nan    nan      2 foo
+        0    0.00 100.00    nan    nan    nan      3 bar
+        0    0.00 100.00    nan    nan    nan      4 blah
+

+ +Break-down of portion of time spent by each thread while waiting on a filter method. +

+
+Filter: FirstFilter
+Total waiting cycles: 6 ( 75.00% of total)
+Details: 
+
+ Waiting cycles    % of total waiting time   execution time while waiting    thread name
+         6                   100.00                     100.00               main
+         0                     0.00                       0.00               foo
+         0                     0.00                       0.00               bar
+         0                     0.00                       0.00               blah
+
+

+
+Filter: SecondFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+

+
+Filter: RepeatedFilter
+Total waiting cycles: 0 (  0.00% of total)
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each class, summed over all the methods +in the class. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Class
+ +
+
         4         6   100.0   100.0      1+0      [1] m ()
+
+ +
+
         4         4   100.0   100.0      2+0      [2] m ()
+
+ +
+[Top] +[Exclusive] +[Inclusive] +[Thread] +[Class] +[Method] +

+ +Exclusive elapsed time for each method, summed over all the classes +that contain a method with the same name. + +

+
    Cycles %/total Cumul.%  Calls+Recur  Method
+ +
+
         4         6    50.0    50.0      1+0      [1] C.m ()
+
         4         4    50.0   100.0      2+0      [2] Z.m ()
+
+ + + diff --git a/tools/dmtracedump/tests/filters/testWaitingSoloSingleThreadTrace b/tools/dmtracedump/tests/filters/testWaitingSoloSingleThreadTrace new file mode 100644 index 000000000..3a43c46a0 Binary files /dev/null and b/tools/dmtracedump/tests/filters/testWaitingSoloSingleThreadTrace differ