• Home
  • Raw
  • Download

Lines Matching full:n

14     "This tutorial aims to show some example of **data analysis and visualization**\n",
15 "from a set of trace events collected trace. These analysis are mainly supported\n",
27 "import logging\n",
28 "from conf import LisaLogging\n",
47 "# Events we are interested to collect from the trace\n",
48 "my_events = [\n",
49 " \"sched_switch\",\n",
50 " \"sched_wakeup\",\n",
51 " \"sched_contrib_scale_f\",\n",
52 " \"sched_load_avg_cpu\",\n",
53 " \"sched_load_avg_task\",\n",
54 " \"sched_tune_tasks_update\",\n",
55 " \"sched_boost_cpu\",\n",
56 " \"sched_boost_task\",\n",
57 " \"sched_energy_diff\",\n",
58 " \"sched_overutilized\",\n",
59 " \"cpu_frequency\",\n",
60 " \"cpu_capacity\"\n",
61 "]\n",
62 "\n",
63 "# Let's use an example trace\n",
75 "# Use TRAPpy support to convert a trace into a PANDAs DataFrame\n",
76 "import trappy\n",
77 "\n",
78 "ftrace = trappy.FTrace(\n",
79 " name=\"PandasExamples\",\n",
80 " path=trace_file,\n",
81 " scope='custom',\n",
82 " events=my_events,\n",
103 "<style>\n",
104 "/*\n",
105 "\n",
106 " * Copyright 2015-2016 ARM Limited\n",
107 "\n",
108 " *\n",
109 "\n",
110 " * Licensed under the Apache License, Version 2.0 (the \"License\");\n",
111 "\n",
112 " * you may not use this file except in compliance with the License.\n",
113 "\n",
114 " * You may obtain a copy of the License at\n",
115 "\n",
116 " *\n",
117 "\n",
118 " * http://www.apache.org/licenses/LICENSE-2.0\n",
119 "\n",
120 " *\n",
121 "\n",
122 " * Unless required by applicable law or agreed to in writing, software\n",
123 "\n",
124 " * distributed under the License is distributed on an \"AS IS\" BASIS,\n",
125 "\n",
126 " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
127 "\n",
128 " * See the License for the specific language governing permissions and\n",
129 "\n",
130 " * limitations under the License.\n",
131 "\n",
132 " */\n",
133 "\n",
134 "\n",
135 "\n",
136 ".d3-tip {\n",
137 "\n",
138 " line-height: 1;\n",
139 "\n",
140 " padding: 12px;\n",
141 "\n",
142 " background: rgba(0, 0, 0, 0.6);\n",
143 "\n",
144 " color: #fff;\n",
145 "\n",
146 " border-radius: 2px;\n",
147 "\n",
148 " position: absolute !important;\n",
149 "\n",
150 " z-index: 99999;\n",
151 "\n",
152 "}\n",
153 "\n",
154 "\n",
155 "\n",
156 ".d3-tip:after {\n",
157 "\n",
158 " box-sizing: border-box;\n",
159 "\n",
160 " pointer-events: none;\n",
161 "\n",
162 " display: inline;\n",
163 "\n",
164 " font-size: 10px;\n",
165 "\n",
166 " width: 100%;\n",
167 "\n",
168 " line-height: 1;\n",
169 "\n",
170 " color: rgba(0, 0, 0, 0.6);\n",
171 "\n",
172 " content: \"\\25BC\";\n",
173 "\n",
174 " position: absolute !important;\n",
175 "\n",
176 " z-index: 99999;\n",
177 "\n",
178 " text-align: center;\n",
179 "\n",
180 "}\n",
181 "\n",
182 "\n",
183 "\n",
184 ".d3-tip.n:after {\n",
185 "\n",
186 " margin: -1px 0 0 0;\n",
187 "\n",
188 " top: 100%;\n",
189 "\n",
190 " left: 0;\n",
191 "\n",
192 "}\n",
193 "\n",
194 "\n",
195 "\n",
196 ".contextRect {\n",
197 "\n",
198 " fill: lightgray;\n",
199 "\n",
200 " fill-opacity: 0.5;\n",
201 "\n",
202 " stroke: black;\n",
203 "\n",
204 " stroke-width: 1;\n",
205 "\n",
206 " stroke-opacity: 1;\n",
207 "\n",
208 " pointer-events: none;\n",
209 "\n",
210 " shape-rendering: crispEdges;\n",
211 "\n",
212 "}\n",
213 "\n",
214 "\n",
215 "\n",
216 ".chart {\n",
217 "\n",
218 " shape-rendering: crispEdges;\n",
219 "\n",
220 "}\n",
221 "\n",
222 "\n",
223 "\n",
224 ".mini text {\n",
225 "\n",
226 " font: 9px sans-serif;\n",
227 "\n",
228 "}\n",
229 "\n",
230 "\n",
231 "\n",
232 ".main text {\n",
233 "\n",
234 " font: 12px sans-serif;\n",
235 "\n",
236 "}\n",
237 "\n",
238 "\n",
239 "\n",
240 ".axis line, .axis path {\n",
241 "\n",
242 " stroke: black;\n",
243 "\n",
244 "}\n",
245 "\n",
246 "\n",
247 "\n",
248 ".miniItem {\n",
249 "\n",
250 " stroke-width: 8;\n",
251 "\n",
252 "}\n",
253 "\n",
254 "\n",
255 "\n",
256 ".brush .extent {\n",
257 "\n",
258 "\n",
259 "\n",
260 " stroke: #000;\n",
261 "\n",
262 " fill-opacity: .125;\n",
263 "\n",
264 " shape-rendering: crispEdges;\n",
265 "\n",
266 "}\n",
267 "\n",
268 "</style>\n",
269 "<div id=\"fig_d214ad0f1542466fae4421fb3494b551\" class=\"eventplot\">\n",
270 " <script>\n",
271 " var req = require.config( {\n",
272 "\n",
273 " paths: {\n",
274 "\n",
275 " \"EventPlot\": '/nbextensions/plotter_scripts/EventPlot/EventPlot',\n",
276 " \"d3-tip\": '/nbextensions/plotter_scripts/EventPlot/d3.tip.v0.6.3',\n",
277 " \"d3-plotter\": '/nbextensions/plotter_scripts/EventPlot/d3.min'\n",
278 " },\n",
279 " shim: {\n",
280 " \"d3-plotter\" : {\n",
281 " \"exports\" : \"d3\"\n",
282 " },\n",
283 " \"d3-tip\": [\"d3-plotter\"],\n",
284 " \"EventPlot\": {\n",
285 "\n",
286 " \"deps\": [\"d3-tip\", \"d3-plotter\" ],\n",
287 " \"exports\": \"EventPlot\"\n",
288 " }\n",
289 " }\n",
290 " });\n",
291 " req([\"require\", \"EventPlot\"], function() {\n",
292 … " EventPlot.generate('fig_d214ad0f1542466fae4421fb3494b551', '/nbextensions/');\n",
293 " });\n",
294 " </script>\n",
306 "# NOTE: The interactive trace visualization is available only if you run\n",
307 "# the workload to generate a new trace-file\n",
329 "total 461132\r\n",
330 "drwxrwxr-x 4 derkling derkling 4096 Mar 3 10:51 .\r\n",
331 "drwxrwxr-x 14 derkling derkling 4096 Mar 2 16:24 ..\r\n",
332 "-rw-rw-r-- 1 derkling derkling 9646 Mar 2 16:24 01_IPythonNotebooksUsage.ipynb\r\n",
333 "-rw-rw-r-- 1 derkling derkling 69766 Mar 2 16:59 02_TestEnvUsage.ipynb\r\n",
334 "-rw-rw-r-- 1 derkling derkling 49598 Mar 2 17:20 03_WlGenUsage.ipynb\r\n",
335 "-rw-rw-r-- 1 derkling derkling 18062 Mar 2 17:20 04_ExecutorUsage.ipynb\r\n",
336 "-rw-rw-r-- 1 derkling derkling 170388 Mar 3 10:51 05_TrappyUsage.ipynb\r\n",
337 "-rw-rw-r-- 1 derkling derkling 319096 Mar 3 10:46 06_TraceAnalysis.ipynb\r\n",
338 "drwxrwxr-x 2 derkling derkling 4096 Mar 3 10:36 example_results\r\n",
339 "drwxr-xr-x 2 derkling derkling 4096 Mar 3 08:56 .ipynb_checkpoints\r\n",
340 "-rw-rw-r-- 1 derkling derkling 241050436 Mar 2 17:23 trace.raw.txt\r\n",
341 "-rw-rw-r-- 1 derkling derkling 230468272 Mar 2 17:23 trace.txt\r\n"
346 "# Let's have a look at the generated file\n",
354 "Notice that the binary trace has been used to generate both textual\n",
369 "10:51:52 INFO : Example of (formatted) 'sched_switch' event:\n"
376 …>-20278 [001] 713.575552: sched_switch: trace-cmd:20278 [120] x ==> swapper/1:0 [120]\n",
377 "\n"
382 "logging.info(\"Example of (formatted) 'sched_switch' event:\")\n",
383 "with open('./example_results/trace.txt', 'r') as fh:\n",
384 " for line in fh:\n",
385 " if line.find('sched_switch') == -1:\n",
386 " continue\n",
387 " print line\n",
402 "10:51:52 INFO : Example of (raw) 'sched_switch' event:\n"
409 …ace-cmd prev_pid=20278 prev_prio=120 prev_state=64 next_comm=swapper/1 next_pid=0 next_prio=120\n",
410 "\n"
415 "logging.info(\"Example of (raw) 'sched_switch' event:\")\n",
416 "with open('./example_results/trace.raw.txt', 'r') as fh:\n",
417 " for line in fh:\n",
418 " if line.find('sched_switch') == -1:\n",
419 " continue\n",
420 " print line\n",
428 "Every event correspond to a \"table\" which is exposed as an attribute of the\n",
429 "TRAPpy::FTtrace object we created by parsing the trace.\n",
430 "\n",
445 "10:51:53 INFO : List of events identified in the trace:\n",
446 "10:51:53 INFO : sched_load_avg_task\n",
447 "10:51:53 INFO : cpu_frequency\n",
448 "10:51:53 INFO : cpu_capacity\n",
449 "10:51:53 INFO : sched_load_avg_cpu\n",
450 "10:51:53 INFO : sched_boost_cpu\n",
451 "10:51:53 INFO : sched_tune_tasks_update\n",
452 "10:51:53 INFO : sched_boost_task\n",
453 "10:51:53 INFO : sched_overutilized\n",
454 "10:51:53 INFO : sched_energy_diff\n",
455 "10:51:53 INFO : sched_switch\n",
456 "10:51:53 INFO : sched_contrib_scale_f\n",
457 "10:51:53 INFO : sched_wakeup\n"
462 "logging.info(\"List of events identified in the trace:\")\n",
463 "for event in ftrace.class_definitions.keys():\n",
479 "10:51:53 INFO : The 'sched_switch' events are collected into this DataFrame:\n"
485 "<div>\n",
486 "<table border=\"1\" class=\"dataframe\">\n",
487 " <thead>\n",
488 " <tr style=\"text-align: right;\">\n",
489 " <th></th>\n",
490 " <th>__comm</th>\n",
491 " <th>__cpu</th>\n",
492 " <th>__pid</th>\n",
493 " <th>next_comm</th>\n",
494 " <th>next_pid</th>\n",
495 " <th>next_prio</th>\n",
496 " <th>prev_comm</th>\n",
497 " <th>prev_pid</th>\n",
498 " <th>prev_prio</th>\n",
499 " <th>prev_state</th>\n",
500 " </tr>\n",
501 " <tr>\n",
502 " <th>Time</th>\n",
503 " <th></th>\n",
504 " <th></th>\n",
505 " <th></th>\n",
506 " <th></th>\n",
507 " <th></th>\n",
508 " <th></th>\n",
509 " <th></th>\n",
510 " <th></th>\n",
511 " <th></th>\n",
512 " <th></th>\n",
513 " </tr>\n",
514 " </thead>\n",
515 " <tbody>\n",
516 " <tr>\n",
517 " <th>0.000272</th>\n",
518 " <td>&lt;...&gt;</td>\n",
519 " <td>1</td>\n",
520 " <td>20278</td>\n",
521 " <td>swapper/1</td>\n",
522 " <td>0</td>\n",
523 " <td>120</td>\n",
524 " <td>trace-cmd</td>\n",
525 " <td>20278</td>\n",
526 " <td>120</td>\n",
527 " <td>64</td>\n",
528 " </tr>\n",
529 " <tr>\n",
530 " <th>0.000348</th>\n",
531 " <td>&lt;idle&gt;</td>\n",
532 " <td>0</td>\n",
533 " <td>0</td>\n",
534 " <td>sh</td>\n",
535 " <td>20277</td>\n",
536 " <td>120</td>\n",
537 " <td>swapper/0</td>\n",
538 " <td>0</td>\n",
539 " <td>120</td>\n",
540 " <td>0</td>\n",
541 " </tr>\n",
542 " <tr>\n",
543 " <th>0.001321</th>\n",
544 " <td>&lt;...&gt;</td>\n",
545 " <td>0</td>\n",
546 " <td>20277</td>\n",
547 " <td>sudo</td>\n",
548 " <td>20276</td>\n",
549 " <td>120</td>\n",
550 " <td>sh</td>\n",
551 " <td>20277</td>\n",
552 " <td>120</td>\n",
553 " <td>64</td>\n",
554 " </tr>\n",
555 " <tr>\n",
556 " <th>0.001357</th>\n",
557 " <td>&lt;idle&gt;</td>\n",
558 " <td>1</td>\n",
559 " <td>0</td>\n",
560 " <td>rcu_preempt</td>\n",
561 " <td>7</td>\n",
562 " <td>120</td>\n",
563 " <td>swapper/1</td>\n",
564 " <td>0</td>\n",
565 " <td>120</td>\n",
566 " <td>0</td>\n",
567 " </tr>\n",
568 " <tr>\n",
569 " <th>0.001458</th>\n",
570 " <td>rcu_preempt</td>\n",
571 " <td>1</td>\n",
572 " <td>7</td>\n",
573 " <td>swapper/1</td>\n",
574 " <td>0</td>\n",
575 " <td>120</td>\n",
576 " <td>rcu_preempt</td>\n",
577 " <td>7</td>\n",
578 " <td>120</td>\n",
579 " <td>1</td>\n",
580 " </tr>\n",
581 " <tr>\n",
582 " <th>0.005202</th>\n",
583 " <td>&lt;...&gt;</td>\n",
584 " <td>0</td>\n",
585 " <td>20276</td>\n",
586 " <td>ksdioirqd/mmc2</td>\n",
587 " <td>1364</td>\n",
588 " <td>98</td>\n",
589 " <td>sudo</td>\n",
590 " <td>20276</td>\n",
591 " <td>120</td>\n",
592 " <td>1024</td>\n",
593 " </tr>\n",
594 " <tr>\n",
595 " <th>0.005349</th>\n",
596 " <td>ksdioirqd/mmc2</td>\n",
597 " <td>0</td>\n",
598 " <td>1364</td>\n",
599 " <td>rsyslogd</td>\n",
600 " <td>394</td>\n",
601 " <td>120</td>\n",
602 " <td>ksdioirqd/mmc2</td>\n",
603 " <td>1364</td>\n",
604 " <td>98</td>\n",
605 " <td>1</td>\n",
606 " </tr>\n",
607 " <tr>\n",
608 " <th>0.005464</th>\n",
609 " <td>&lt;idle&gt;</td>\n",
610 " <td>1</td>\n",
611 " <td>0</td>\n",
612 " <td>ksoftirqd/1</td>\n",
613 " <td>14</td>\n",
614 " <td>120</td>\n",
615 " <td>swapper/1</td>\n",
616 " <td>0</td>\n",
617 " <td>120</td>\n",
618 " <td>0</td>\n",
619 " </tr>\n",
620 " <tr>\n",
621 " <th>0.005528</th>\n",
622 " <td>ksoftirqd/1</td>\n",
623 " <td>1</td>\n",
624 " <td>14</td>\n",
625 " <td>rcu_preempt</td>\n",
626 " <td>7</td>\n",
627 " <td>120</td>\n",
628 " <td>ksoftirqd/1</td>\n",
629 " <td>14</td>\n",
630 " <td>120</td>\n",
631 " <td>1</td>\n",
632 " </tr>\n",
633 " <tr>\n",
634 " <th>0.005612</th>\n",
635 " <td>rcu_preempt</td>\n",
636 " <td>1</td>\n",
637 " <td>7</td>\n",
638 " <td>swapper/1</td>\n",
639 " <td>0</td>\n",
640 " <td>120</td>\n",
641 " <td>rcu_preempt</td>\n",
642 " <td>7</td>\n",
643 " <td>120</td>\n",
644 " <td>1</td>\n",
645 " </tr>\n",
646 " <tr>\n",
647 " <th>0.005616</th>\n",
648 " <td>rsyslogd</td>\n",
649 " <td>0</td>\n",
650 " <td>394</td>\n",
651 " <td>rs:main Q:Reg</td>\n",
652 " <td>380</td>\n",
653 " <td>120</td>\n",
654 " <td>rsyslogd</td>\n",
655 " <td>394</td>\n",
656 " <td>120</td>\n",
657 " <td>1</td>\n",
658 " </tr>\n",
659 " <tr>\n",
660 " <th>0.006245</th>\n",
661 " <td>rs:main</td>\n",
662 " <td>0</td>\n",
663 " <td>380</td>\n",
664 " <td>sudo</td>\n",
665 " <td>20276</td>\n",
666 " <td>120</td>\n",
667 " <td>rs:main Q:Reg</td>\n",
668 " <td>380</td>\n",
669 " <td>120</td>\n",
670 " <td>1</td>\n",
671 " </tr>\n",
672 " <tr>\n",
673 " <th>0.007334</th>\n",
674 " <td>&lt;...&gt;</td>\n",
675 " <td>0</td>\n",
676 " <td>20276</td>\n",
677 " <td>rcu_sched</td>\n",
678 " <td>8</td>\n",
679 " <td>120</td>\n",
680 " <td>sudo</td>\n",
681 " <td>20276</td>\n",
682 " <td>120</td>\n",
683 " <td>64</td>\n",
684 " </tr>\n",
685 " <tr>\n",
686 " <th>0.007425</th>\n",
687 " <td>&lt;idle&gt;</td>\n",
688 " <td>1</td>\n",
689 " <td>0</td>\n",
690 " <td>bash</td>\n",
691 " <td>19394</td>\n",
692 " <td>120</td>\n",
693 " <td>swapper/1</td>\n",
694 " <td>0</td>\n",
695 " <td>120</td>\n",
696 " <td>0</td>\n",
697 " </tr>\n",
698 " <tr>\n",
699 " <th>0.007450</th>\n",
700 " <td>&lt;...&gt;</td>\n",
701 " <td>0</td>\n",
702 " <td>8</td>\n",
703 " <td>swapper/0</td>\n",
704 " <td>0</td>\n",
705 " <td>120</td>\n",
706 " <td>rcu_sched</td>\n",
707 " <td>8</td>\n",
708 " <td>120</td>\n",
709 " <td>1</td>\n",
710 " </tr>\n",
711 " <tr>\n",
712 " <th>0.008416</th>\n",
713 " <td>bash</td>\n",
714 " <td>1</td>\n",
715 " <td>19394</td>\n",
716 " <td>kworker/1:2</td>\n",
717 " <td>19472</td>\n",
718 " <td>120</td>\n",
719 " <td>bash</td>\n",
720 " <td>19394</td>\n",
721 " <td>120</td>\n",
722 " <td>1</td>\n",
723 " </tr>\n",
724 " <tr>\n",
725 " <th>0.008562</th>\n",
726 " <td>&lt;...&gt;</td>\n",
727 " <td>1</td>\n",
728 " <td>19472</td>\n",
729 " <td>sshd</td>\n",
730 " <td>15461</td>\n",
731 " <td>120</td>\n",
732 " <td>kworker/1:2</td>\n",
733 " <td>19472</td>\n",
734 " <td>120</td>\n",
735 " <td>1</td>\n",
736 " </tr>\n",
737 " <tr>\n",
738 " <th>0.009328</th>\n",
739 " <td>sshd</td>\n",
740 " <td>1</td>\n",
741 " <td>15461</td>\n",
742 " <td>rcu_preempt</td>\n",
743 " <td>7</td>\n",
744 " <td>120</td>\n",
745 " <td>sshd</td>\n",
746 " <td>15461</td>\n",
747 " <td>120</td>\n",
748 " <td>1</td>\n",
749 " </tr>\n",
750 " <tr>\n",
751 " <th>0.009437</th>\n",
752 " <td>rcu_preempt</td>\n",
753 " <td>1</td>\n",
754 " <td>7</td>\n",
755 " <td>swapper/1</td>\n",
756 " <td>0</td>\n",
757 " <td>120</td>\n",
758 " <td>rcu_preempt</td>\n",
759 " <td>7</td>\n",
760 " <td>120</td>\n",
761 " <td>1</td>\n",
762 " </tr>\n",
763 " <tr>\n",
764 " <th>0.009632</th>\n",
765 " <td>&lt;idle&gt;</td>\n",
766 " <td>0</td>\n",
767 " <td>0</td>\n",
768 " <td>rcu_sched</td>\n",
769 " <td>8</td>\n",
770 " <td>120</td>\n",
771 " <td>swapper/0</td>\n",
772 " <td>0</td>\n",
773 " <td>120</td>\n",
774 " <td>0</td>\n",
775 " </tr>\n",
776 " <tr>\n",
777 " <th>0.009731</th>\n",
778 " <td>&lt;...&gt;</td>\n",
779 " <td>0</td>\n",
780 " <td>8</td>\n",
781 " <td>swapper/0</td>\n",
782 " <td>0</td>\n",
783 " <td>120</td>\n",
784 " <td>rcu_sched</td>\n",
785 " <td>8</td>\n",
786 " <td>120</td>\n",
787 " <td>1</td>\n",
788 " </tr>\n",
789 " <tr>\n",
790 " <th>0.013650</th>\n",
791 " <td>&lt;idle&gt;</td>\n",
792 " <td>1</td>\n",
793 " <td>0</td>\n",
794 " <td>ksoftirqd/1</td>\n",
795 " <td>14</td>\n",
796 " <td>120</td>\n",
797 " <td>swapper/1</td>\n",
798 " <td>0</td>\n",
799 " <td>120</td>\n",
800 " <td>0</td>\n",
801 " </tr>\n",
802 " <tr>\n",
803 " <th>0.013727</th>\n",
804 " <td>ksoftirqd/1</td>\n",
805 " <td>1</td>\n",
806 " <td>14</td>\n",
807 " <td>rcu_preempt</td>\n",
808 " <td>7</td>\n",
809 " <td>120</td>\n",
810 " <td>ksoftirqd/1</td>\n",
811 " <td>14</td>\n",
812 " <td>120</td>\n",
813 " <td>1</td>\n",
814 " </tr>\n",
815 " <tr>\n",
816 " <th>0.013839</th>\n",
817 " <td>rcu_preempt</td>\n",
818 " <td>1</td>\n",
819 " <td>7</td>\n",
820 " <td>swapper/1</td>\n",
821 " <td>0</td>\n",
822 " <td>120</td>\n",
823 " <td>rcu_preempt</td>\n",
824 " <td>7</td>\n",
825 " <td>120</td>\n",
826 " <td>1</td>\n",
827 " </tr>\n",
828 " <tr>\n",
829 " <th>0.017585</th>\n",
830 " <td>&lt;idle&gt;</td>\n",
831 " <td>0</td>\n",
832 " <td>0</td>\n",
833 " <td>ksdioirqd/mmc2</td>\n",
834 " <td>1364</td>\n",
835 " <td>98</td>\n",
836 " <td>swapper/0</td>\n",
837 " <td>0</td>\n",
838 " <td>120</td>\n",
839 " <td>0</td>\n",
840 " </tr>\n",
841 " <tr>\n",
842 " <th>0.017587</th>\n",
843 " <td>&lt;idle&gt;</td>\n",
844 " <td>1</td>\n",
845 " <td>0</td>\n",
846 " <td>rcu_preempt</td>\n",
847 " <td>7</td>\n",
848 " <td>120</td>\n",
849 " <td>swapper/1</td>\n",
850 " <td>0</td>\n",
851 " <td>120</td>\n",
852 " <td>0</td>\n",
853 " </tr>\n",
854 " <tr>\n",
855 " <th>0.017681</th>\n",
856 " <td>rcu_preempt</td>\n",
857 " <td>1</td>\n",
858 " <td>7</td>\n",
859 " <td>swapper/1</td>\n",
860 " <td>0</td>\n",
861 " <td>120</td>\n",
862 " <td>rcu_preempt</td>\n",
863 " <td>7</td>\n",
864 " <td>120</td>\n",
865 " <td>1</td>\n",
866 " </tr>\n",
867 " <tr>\n",
868 " <th>0.017830</th>\n",
869 " <td>ksdioirqd/mmc2</td>\n",
870 " <td>0</td>\n",
871 " <td>1364</td>\n",
872 " <td>ksoftirqd/0</td>\n",
873 " <td>3</td>\n",
874 " <td>120</td>\n",
875 " <td>ksdioirqd/mmc2</td>\n",
876 " <td>1364</td>\n",
877 " <td>98</td>\n",
878 " <td>1</td>\n",
879 " </tr>\n",
880 " <tr>\n",
881 " <th>0.017886</th>\n",
882 " <td>ksoftirqd/0</td>\n",
883 " <td>0</td>\n",
884 " <td>3</td>\n",
885 " <td>rcu_sched</td>\n",
886 " <td>8</td>\n",
887 " <td>120</td>\n",
888 " <td>ksoftirqd/0</td>\n",
889 " <td>3</td>\n",
890 " <td>120</td>\n",
891 " <td>1</td>\n",
892 " </tr>\n",
893 " <tr>\n",
894 " <th>0.017968</th>\n",
895 " <td>&lt;...&gt;</td>\n",
896 " <td>0</td>\n",
897 " <td>8</td>\n",
898 " <td>swapper/0</td>\n",
899 " <td>0</td>\n",
900 " <td>120</td>\n",
901 " <td>rcu_sched</td>\n",
902 " <td>8</td>\n",
903 " <td>120</td>\n",
904 " <td>1</td>\n",
905 " </tr>\n",
906 " <tr>\n",
907 " <th>...</th>\n",
908 " <td>...</td>\n",
909 " <td>...</td>\n",
910 " <td>...</td>\n",
911 " <td>...</td>\n",
912 " <td>...</td>\n",
913 " <td>...</td>\n",
914 " <td>...</td>\n",
915 " <td>...</td>\n",
916 " <td>...</td>\n",
917 " <td>...</td>\n",
918 " </tr>\n",
919 " <tr>\n",
920 " <th>35.301101</th>\n",
921 " <td>sudo</td>\n",
922 " <td>1</td>\n",
923 " <td>20990</td>\n",
924 " <td>ksdioirqd/mmc2</td>\n",
925 " <td>1364</td>\n",
926 " <td>98</td>\n",
927 " <td>sudo</td>\n",
928 " <td>20990</td>\n",
929 " <td>120</td>\n",
930 " <td>0</td>\n",
931 " </tr>\n",
932 " <tr>\n",
933 " <th>35.301191</th>\n",
934 " <td>ksdioirqd/mmc2</td>\n",
935 " <td>1</td>\n",
936 " <td>1364</td>\n",
937 " <td>sudo</td>\n",
938 " <td>20990</td>\n",
939 " <td>120</td>\n",
940 " <td>ksdioirqd/mmc2</td>\n",
941 " <td>1364</td>\n",
942 " <td>98</td>\n",
943 " <td>2</td>\n",
944 " </tr>\n",
945 " <tr>\n",
946 " <th>35.301333</th>\n",
947 " <td>sudo</td>\n",
948 " <td>1</td>\n",
949 " <td>20990</td>\n",
950 " <td>ksdioirqd/mmc2</td>\n",
951 " <td>1364</td>\n",
952 " <td>98</td>\n",
953 " <td>sudo</td>\n",
954 " <td>20990</td>\n",
955 " <td>120</td>\n",
956 " <td>1024</td>\n",
957 " </tr>\n",
958 " <tr>\n",
959 " <th>35.301381</th>\n",
960 " <td>ksdioirqd/mmc2</td>\n",
961 " <td>1</td>\n",
962 " <td>1364</td>\n",
963 " <td>sudo</td>\n",
964 " <td>20990</td>\n",
965 " <td>120</td>\n",
966 " <td>ksdioirqd/mmc2</td>\n",
967 " <td>1364</td>\n",
968 " <td>98</td>\n",
969 " <td>1</td>\n",
970 " </tr>\n",
971 " <tr>\n",
972 " <th>35.301421</th>\n",
973 " <td>&lt;idle&gt;</td>\n",
974 " <td>0</td>\n",
975 " <td>0</td>\n",
976 " <td>rcu_preempt</td>\n",
977 " <td>7</td>\n",
978 " <td>120</td>\n",
979 " <td>swapper/0</td>\n",
980 " <td>0</td>\n",
981 " <td>120</td>\n",
982 " <td>0</td>\n",
983 " </tr>\n",
984 " <tr>\n",
985 " <th>35.301516</th>\n",
986 " <td>rcu_preempt</td>\n",
987 " <td>0</td>\n",
988 " <td>7</td>\n",
989 " <td>swapper/0</td>\n",
990 " <td>0</td>\n",
991 " <td>120</td>\n",
992 " <td>rcu_preempt</td>\n",
993 " <td>7</td>\n",
994 " <td>120</td>\n",
995 " <td>1</td>\n",
996 " </tr>\n",
997 " <tr>\n",
998 " <th>35.301782</th>\n",
999 " <td>sudo</td>\n",
1000 " <td>1</td>\n",
1001 " <td>20990</td>\n",
1002 " <td>rsyslogd</td>\n",
1003 " <td>394</td>\n",
1004 " <td>120</td>\n",
1005 " <td>sudo</td>\n",
1006 " <td>20990</td>\n",
1007 " <td>120</td>\n",
1008 " <td>1024</td>\n",
1009 " </tr>\n",
1010 " <tr>\n",
1011 " <th>35.302128</th>\n",
1012 " <td>rsyslogd</td>\n",
1013 " <td>1</td>\n",
1014 " <td>394</td>\n",
1015 " <td>sudo</td>\n",
1016 " <td>20990</td>\n",
1017 " <td>120</td>\n",
1018 " <td>rsyslogd</td>\n",
1019 " <td>394</td>\n",
1020 " <td>120</td>\n",
1021 " <td>1</td>\n",
1022 " </tr>\n",
1023 " <tr>\n",
1024 " <th>35.302198</th>\n",
1025 " <td>&lt;idle&gt;</td>\n",
1026 " <td>0</td>\n",
1027 " <td>0</td>\n",
1028 " <td>rs:main Q:Reg</td>\n",
1029 " <td>380</td>\n",
1030 " <td>120</td>\n",
1031 " <td>swapper/0</td>\n",
1032 " <td>0</td>\n",
1033 " <td>120</td>\n",
1034 " <td>0</td>\n",
1035 " </tr>\n",
1036 " <tr>\n",
1037 " <th>35.302846</th>\n",
1038 " <td>rs:main</td>\n",
1039 " <td>0</td>\n",
1040 " <td>380</td>\n",
1041 " <td>swapper/0</td>\n",
1042 " <td>0</td>\n",
1043 " <td>120</td>\n",
1044 " <td>rs:main Q:Reg</td>\n",
1045 " <td>380</td>\n",
1046 " <td>120</td>\n",
1047 " <td>1</td>\n",
1048 " </tr>\n",
1049 " <tr>\n",
1050 " <th>35.303877</th>\n",
1051 " <td>&lt;idle&gt;</td>\n",
1052 " <td>3</td>\n",
1053 " <td>0</td>\n",
1054 " <td>sudo</td>\n",
1055 " <td>20991</td>\n",
1056 " <td>120</td>\n",
1057 " <td>swapper/3</td>\n",
1058 " <td>0</td>\n",
1059 " <td>120</td>\n",
1060 " <td>0</td>\n",
1061 " </tr>\n",
1062 " <tr>\n",
1063 " <th>35.303987</th>\n",
1064 " <td>sudo</td>\n",
1065 " <td>1</td>\n",
1066 " <td>20990</td>\n",
1067 " <td>swapper/1</td>\n",
1068 " <td>0</td>\n",
1069 " <td>120</td>\n",
1070 " <td>sudo</td>\n",
1071 " <td>20990</td>\n",
1072 " <td>120</td>\n",
1073 " <td>1</td>\n",
1074 " </tr>\n",
1075 " <tr>\n",
1076 " <th>35.305325</th>\n",
1077 " <td>sh</td>\n",
1078 " <td>3</td>\n",
1079 " <td>20991</td>\n",
1080 " <td>migration/3</td>\n",
1081 " <td>23</td>\n",
1082 " <td>0</td>\n",
1083 " <td>sudo</td>\n",
1084 " <td>20991</td>\n",
1085 " <td>120</td>\n",
1086 " <td>1024</td>\n",
1087 " </tr>\n",
1088 " <tr>\n",
1089 " <th>35.305428</th>\n",
1090 " <td>migration/3</td>\n",
1091 " <td>3</td>\n",
1092 " <td>23</td>\n",
1093 " <td>swapper/3</td>\n",
1094 " <td>0</td>\n",
1095 " <td>120</td>\n",
1096 " <td>migration/3</td>\n",
1097 " <td>23</td>\n",
1098 " <td>0</td>\n",
1099 " <td>1</td>\n",
1100 " </tr>\n",
1101 " <tr>\n",
1102 " <th>35.305455</th>\n",
1103 " <td>&lt;idle&gt;</td>\n",
1104 " <td>1</td>\n",
1105 " <td>0</td>\n",
1106 " <td>sudo</td>\n",
1107 " <td>20991</td>\n",
1108 " <td>120</td>\n",
1109 " <td>swapper/1</td>\n",
1110 " <td>0</td>\n",
1111 " <td>120</td>\n",
1112 " <td>0</td>\n",
1113 " </tr>\n",
1114 " <tr>\n",
1115 " <th>35.309369</th>\n",
1116 " <td>&lt;idle&gt;</td>\n",
1117 " <td>0</td>\n",
1118 " <td>0</td>\n",
1119 " <td>rcu_preempt</td>\n",
1120 " <td>7</td>\n",
1121 " <td>120</td>\n",
1122 " <td>swapper/0</td>\n",
1123 " <td>0</td>\n",
1124 " <td>120</td>\n",
1125 " <td>0</td>\n",
1126 " </tr>\n",
1127 " <tr>\n",
1128 " <th>35.309480</th>\n",
1129 " <td>rcu_preempt</td>\n",
1130 " <td>0</td>\n",
1131 " <td>7</td>\n",
1132 " <td>swapper/0</td>\n",
1133 " <td>0</td>\n",
1134 " <td>120</td>\n",
1135 " <td>rcu_preempt</td>\n",
1136 " <td>7</td>\n",
1137 " <td>120</td>\n",
1138 " <td>1</td>\n",
1139 " </tr>\n",
1140 " <tr>\n",
1141 " <th>35.311031</th>\n",
1142 " <td>sh</td>\n",
1143 " <td>1</td>\n",
1144 " <td>20991</td>\n",
1145 " <td>sudo</td>\n",
1146 " <td>20990</td>\n",
1147 " <td>120</td>\n",
1148 " <td>sh</td>\n",
1149 " <td>20991</td>\n",
1150 " <td>120</td>\n",
1151 " <td>1</td>\n",
1152 " </tr>\n",
1153 " <tr>\n",
1154 " <th>35.311063</th>\n",
1155 " <td>&lt;idle&gt;</td>\n",
1156 " <td>3</td>\n",
1157 " <td>0</td>\n",
1158 " <td>sh</td>\n",
1159 " <td>20992</td>\n",
1160 " <td>120</td>\n",
1161 " <td>swapper/3</td>\n",
1162 " <td>0</td>\n",
1163 " <td>120</td>\n",
1164 " <td>0</td>\n",
1165 " </tr>\n",
1166 " <tr>\n",
1167 " <th>35.311164</th>\n",
1168 " <td>sudo</td>\n",
1169 " <td>1</td>\n",
1170 " <td>20990</td>\n",
1171 " <td>swapper/1</td>\n",
1172 " <td>0</td>\n",
1173 " <td>120</td>\n",
1174 " <td>sudo</td>\n",
1175 " <td>20990</td>\n",
1176 " <td>120</td>\n",
1177 " <td>1</td>\n",
1178 " </tr>\n",
1179 " <tr>\n",
1180 " <th>35.311548</th>\n",
1181 " <td>trace-cmd</td>\n",
1182 " <td>3</td>\n",
1183 " <td>20992</td>\n",
1184 " <td>migration/3</td>\n",
1185 " <td>23</td>\n",
1186 " <td>0</td>\n",
1187 " <td>sh</td>\n",
1188 " <td>20992</td>\n",
1189 " <td>120</td>\n",
1190 " <td>1024</td>\n",
1191 " </tr>\n",
1192 " <tr>\n",
1193 " <th>35.311645</th>\n",
1194 " <td>migration/3</td>\n",
1195 " <td>3</td>\n",
1196 " <td>23</td>\n",
1197 " <td>swapper/3</td>\n",
1198 " <td>0</td>\n",
1199 " <td>120</td>\n",
1200 " <td>migration/3</td>\n",
1201 " <td>23</td>\n",
1202 " <td>0</td>\n",
1203 " <td>1</td>\n",
1204 " </tr>\n",
1205 " <tr>\n",
1206 " <th>35.311839</th>\n",
1207 " <td>&lt;idle&gt;</td>\n",
1208 " <td>1</td>\n",
1209 " <td>0</td>\n",
1210 " <td>sh</td>\n",
1211 " <td>20992</td>\n",
1212 " <td>120</td>\n",
1213 " <td>swapper/1</td>\n",
1214 " <td>0</td>\n",
1215 " <td>120</td>\n",
1216 " <td>0</td>\n",
1217 " </tr>\n",
1218 " <tr>\n",
1219 " <th>35.313244</th>\n",
1220 " <td>trace-cmd</td>\n",
1221 " <td>1</td>\n",
1222 " <td>20992</td>\n",
1223 " <td>ksdioirqd/mmc2</td>\n",
1224 " <td>1364</td>\n",
1225 " <td>98</td>\n",
1226 " <td>trace-cmd</td>\n",
1227 " <td>20992</td>\n",
1228 " <td>120</td>\n",
1229 " <td>1024</td>\n",
1230 " </tr>\n",
1231 " <tr>\n",
1232 " <th>35.313342</th>\n",
1233 " <td>ksdioirqd/mmc2</td>\n",
1234 " <td>1</td>\n",
1235 " <td>1364</td>\n",
1236 " <td>ksoftirqd/1</td>\n",
1237 " <td>14</td>\n",
1238 " <td>120</td>\n",
1239 " <td>ksdioirqd/mmc2</td>\n",
1240 " <td>1364</td>\n",
1241 " <td>98</td>\n",
1242 " <td>2</td>\n",
1243 " </tr>\n",
1244 " <tr>\n",
1245 " <th>35.313390</th>\n",
1246 " <td>ksoftirqd/1</td>\n",
1247 " <td>1</td>\n",
1248 " <td>14</td>\n",
1249 " <td>ksdioirqd/mmc2</td>\n",
1250 " <td>1364</td>\n",
1251 " <td>98</td>\n",
1252 " <td>ksoftirqd/1</td>\n",
1253 " <td>14</td>\n",
1254 " <td>120</td>\n",
1255 " <td>1024</td>\n",
1256 " </tr>\n",
1257 " <tr>\n",
1258 " <th>35.313429</th>\n",
1259 " <td>&lt;idle&gt;</td>\n",
1260 " <td>0</td>\n",
1261 " <td>0</td>\n",
1262 " <td>rcu_preempt</td>\n",
1263 " <td>7</td>\n",
1264 " <td>120</td>\n",
1265 " <td>swapper/0</td>\n",
1266 " <td>0</td>\n",
1267 " <td>120</td>\n",
1268 " <td>0</td>\n",
1269 " </tr>\n",
1270 " <tr>\n",
1271 " <th>35.313437</th>\n",
1272 " <td>ksdioirqd/mmc2</td>\n",
1273 " <td>1</td>\n",
1274 " <td>1364</td>\n",
1275 " <td>ksoftirqd/1</td>\n",
1276 " <td>14</td>\n",
1277 " <td>120</td>\n",
1278 " <td>ksdioirqd/mmc2</td>\n",
1279 " <td>1364</td>\n",
1280 " <td>98</td>\n",
1281 " <td>1</td>\n",
1282 " </tr>\n",
1283 " <tr>\n",
1284 " <th>35.313485</th>\n",
1285 " <td>ksoftirqd/1</td>\n",
1286 " <td>1</td>\n",
1287 " <td>14</td>\n",
1288 " <td>trace-cmd</td>\n",
1289 " <td>20992</td>\n",
1290 " <td>120</td>\n",
1291 " <td>ksoftirqd/1</td>\n",
1292 " <td>14</td>\n",
1293 " <td>120</td>\n",
1294 " <td>1</td>\n",
1295 " </tr>\n",
1296 " <tr>\n",
1297 " <th>35.313536</th>\n",
1298 " <td>rcu_preempt</td>\n",
1299 " <td>0</td>\n",
1300 " <td>7</td>\n",
1301 " <td>swapper/0</td>\n",
1302 " <td>0</td>\n",
1303 " <td>120</td>\n",
1304 " <td>rcu_preempt</td>\n",
1305 " <td>7</td>\n",
1306 " <td>120</td>\n",
1307 " <td>1</td>\n",
1308 " </tr>\n",
1309 " </tbody>\n",
1310 "</table>\n",
1311 "<p>130884 rows × 10 columns</p>\n",
1315 " __comm __cpu __pid next_comm next_pid next_prio \\\n",
1316 "Time \n",
1317 "0.000272 <...> 1 20278 swapper/1 0 120 \n",
1318 "0.000348 <idle> 0 0 sh 20277 120 \n",
1319 "0.001321 <...> 0 20277 sudo 20276 120 \n",
1320 "0.001357 <idle> 1 0 rcu_preempt 7 120 \n",
1321 "0.001458 rcu_preempt 1 7 swapper/1 0 120 \n",
1322 "0.005202 <...> 0 20276 ksdioirqd/mmc2 1364 98 \n",
1323 "0.005349 ksdioirqd/mmc2 0 1364 rsyslogd 394 120 \n",
1324 "0.005464 <idle> 1 0 ksoftirqd/1 14 120 \n",
1325 "0.005528 ksoftirqd/1 1 14 rcu_preempt 7 120 \n",
1326 "0.005612 rcu_preempt 1 7 swapper/1 0 120 \n",
1327 "0.005616 rsyslogd 0 394 rs:main Q:Reg 380 120 \n",
1328 "0.006245 rs:main 0 380 sudo 20276 120 \n",
1329 "0.007334 <...> 0 20276 rcu_sched 8 120 \n",
1330 "0.007425 <idle> 1 0 bash 19394 120 \n",
1331 "0.007450 <...> 0 8 swapper/0 0 120 \n",
1332 "0.008416 bash 1 19394 kworker/1:2 19472 120 \n",
1333 "0.008562 <...> 1 19472 sshd 15461 120 \n",
1334 "0.009328 sshd 1 15461 rcu_preempt 7 120 \n",
1335 "0.009437 rcu_preempt 1 7 swapper/1 0 120 \n",
1336 "0.009632 <idle> 0 0 rcu_sched 8 120 \n",
1337 "0.009731 <...> 0 8 swapper/0 0 120 \n",
1338 "0.013650 <idle> 1 0 ksoftirqd/1 14 120 \n",
1339 "0.013727 ksoftirqd/1 1 14 rcu_preempt 7 120 \n",
1340 "0.013839 rcu_preempt 1 7 swapper/1 0 120 \n",
1341 "0.017585 <idle> 0 0 ksdioirqd/mmc2 1364 98 \n",
1342 "0.017587 <idle> 1 0 rcu_preempt 7 120 \n",
1343 "0.017681 rcu_preempt 1 7 swapper/1 0 120 \n",
1344 "0.017830 ksdioirqd/mmc2 0 1364 ksoftirqd/0 3 120 \n",
1345 "0.017886 ksoftirqd/0 0 3 rcu_sched 8 120 \n",
1346 "0.017968 <...> 0 8 swapper/0 0 120 \n",
1347 "... ... ... ... ... ... ... \n",
1348 "35.301101 sudo 1 20990 ksdioirqd/mmc2 1364 98 \n",
1349 "35.301191 ksdioirqd/mmc2 1 1364 sudo 20990 120 \n",
1350 "35.301333 sudo 1 20990 ksdioirqd/mmc2 1364 98 \n",
1351 "35.301381 ksdioirqd/mmc2 1 1364 sudo 20990 120 \n",
1352 "35.301421 <idle> 0 0 rcu_preempt 7 120 \n",
1353 "35.301516 rcu_preempt 0 7 swapper/0 0 120 \n",
1354 "35.301782 sudo 1 20990 rsyslogd 394 120 \n",
1355 "35.302128 rsyslogd 1 394 sudo 20990 120 \n",
1356 "35.302198 <idle> 0 0 rs:main Q:Reg 380 120 \n",
1357 "35.302846 rs:main 0 380 swapper/0 0 120 \n",
1358 "35.303877 <idle> 3 0 sudo 20991 120 \n",
1359 "35.303987 sudo 1 20990 swapper/1 0 120 \n",
1360 "35.305325 sh 3 20991 migration/3 23 0 \n",
1361 "35.305428 migration/3 3 23 swapper/3 0 120 \n",
1362 "35.305455 <idle> 1 0 sudo 20991 120 \n",
1363 "35.309369 <idle> 0 0 rcu_preempt 7 120 \n",
1364 "35.309480 rcu_preempt 0 7 swapper/0 0 120 \n",
1365 "35.311031 sh 1 20991 sudo 20990 120 \n",
1366 "35.311063 <idle> 3 0 sh 20992 120 \n",
1367 "35.311164 sudo 1 20990 swapper/1 0 120 \n",
1368 "35.311548 trace-cmd 3 20992 migration/3 23 0 \n",
1369 "35.311645 migration/3 3 23 swapper/3 0 120 \n",
1370 "35.311839 <idle> 1 0 sh 20992 120 \n",
1371 "35.313244 trace-cmd 1 20992 ksdioirqd/mmc2 1364 98 \n",
1372 "35.313342 ksdioirqd/mmc2 1 1364 ksoftirqd/1 14 120 \n",
1373 "35.313390 ksoftirqd/1 1 14 ksdioirqd/mmc2 1364 98 \n",
1374 "35.313429 <idle> 0 0 rcu_preempt 7 120 \n",
1375 "35.313437 ksdioirqd/mmc2 1 1364 ksoftirqd/1 14 120 \n",
1376 "35.313485 ksoftirqd/1 1 14 trace-cmd 20992 120 \n",
1377 "35.313536 rcu_preempt 0 7 swapper/0 0 120 \n",
1378 "\n",
1379 " prev_comm prev_pid prev_prio prev_state \n",
1380 "Time \n",
1381 "0.000272 trace-cmd 20278 120 64 \n",
1382 "0.000348 swapper/0 0 120 0 \n",
1383 "0.001321 sh 20277 120 64 \n",
1384 "0.001357 swapper/1 0 120 0 \n",
1385 "0.001458 rcu_preempt 7 120 1 \n",
1386 "0.005202 sudo 20276 120 1024 \n",
1387 "0.005349 ksdioirqd/mmc2 1364 98 1 \n",
1388 "0.005464 swapper/1 0 120 0 \n",
1389 "0.005528 ksoftirqd/1 14 120 1 \n",
1390 "0.005612 rcu_preempt 7 120 1 \n",
1391 "0.005616 rsyslogd 394 120 1 \n",
1392 "0.006245 rs:main Q:Reg 380 120 1 \n",
1393 "0.007334 sudo 20276 120 64 \n",
1394 "0.007425 swapper/1 0 120 0 \n",
1395 "0.007450 rcu_sched 8 120 1 \n",
1396 "0.008416 bash 19394 120 1 \n",
1397 "0.008562 kworker/1:2 19472 120 1 \n",
1398 "0.009328 sshd 15461 120 1 \n",
1399 "0.009437 rcu_preempt 7 120 1 \n",
1400 "0.009632 swapper/0 0 120 0 \n",
1401 "0.009731 rcu_sched 8 120 1 \n",
1402 "0.013650 swapper/1 0 120 0 \n",
1403 "0.013727 ksoftirqd/1 14 120 1 \n",
1404 "0.013839 rcu_preempt 7 120 1 \n",
1405 "0.017585 swapper/0 0 120 0 \n",
1406 "0.017587 swapper/1 0 120 0 \n",
1407 "0.017681 rcu_preempt 7 120 1 \n",
1408 "0.017830 ksdioirqd/mmc2 1364 98 1 \n",
1409 "0.017886 ksoftirqd/0 3 120 1 \n",
1410 "0.017968 rcu_sched 8 120 1 \n",
1411 "... ... ... ... ... \n",
1412 "35.301101 sudo 20990 120 0 \n",
1413 "35.301191 ksdioirqd/mmc2 1364 98 2 \n",
1414 "35.301333 sudo 20990 120 1024 \n",
1415 "35.301381 ksdioirqd/mmc2 1364 98 1 \n",
1416 "35.301421 swapper/0 0 120 0 \n",
1417 "35.301516 rcu_preempt 7 120 1 \n",
1418 "35.301782 sudo 20990 120 1024 \n",
1419 "35.302128 rsyslogd 394 120 1 \n",
1420 "35.302198 swapper/0 0 120 0 \n",
1421 "35.302846 rs:main Q:Reg 380 120 1 \n",
1422 "35.303877 swapper/3 0 120 0 \n",
1423 "35.303987 sudo 20990 120 1 \n",
1424 "35.305325 sudo 20991 120 1024 \n",
1425 "35.305428 migration/3 23 0 1 \n",
1426 "35.305455 swapper/1 0 120 0 \n",
1427 "35.309369 swapper/0 0 120 0 \n",
1428 "35.309480 rcu_preempt 7 120 1 \n",
1429 "35.311031 sh 20991 120 1 \n",
1430 "35.311063 swapper/3 0 120 0 \n",
1431 "35.311164 sudo 20990 120 1 \n",
1432 "35.311548 sh 20992 120 1024 \n",
1433 "35.311645 migration/3 23 0 1 \n",
1434 "35.311839 swapper/1 0 120 0 \n",
1435 "35.313244 trace-cmd 20992 120 1024 \n",
1436 "35.313342 ksdioirqd/mmc2 1364 98 2 \n",
1437 "35.313390 ksoftirqd/1 14 120 1024 \n",
1438 "35.313429 swapper/0 0 120 0 \n",
1439 "35.313437 ksdioirqd/mmc2 1364 98 1 \n",
1440 "35.313485 ksoftirqd/1 14 120 1 \n",
1441 "35.313536 rcu_preempt 7 120 1 \n",
1442 "\n",
1452 "# Let's get a reference to the PANDAs DataFrame corresponding to the\n",
1453 "# \"sched_switch\" events\n",
1454 "logging.info(\"The 'sched_switch' events are collected into this DataFrame:\")\n",
1455 "df = ftrace.sched_switch.data_frame\n",
1477 "10:51:53 INFO : This is the DataFrame for 'cpu_frequency' events:\n"
1483 "<div>\n",
1484 "<table border=\"1\" class=\"dataframe\">\n",
1485 " <thead>\n",
1486 " <tr style=\"text-align: right;\">\n",
1487 " <th></th>\n",
1488 " <th>__comm</th>\n",
1489 " <th>__cpu</th>\n",
1490 " <th>__pid</th>\n",
1491 " <th>cpu</th>\n",
1492 " <th>frequency</th>\n",
1493 " </tr>\n",
1494 " <tr>\n",
1495 " <th>Time</th>\n",
1496 " <th></th>\n",
1497 " <th></th>\n",
1498 " <th></th>\n",
1499 " <th></th>\n",
1500 " <th></th>\n",
1501 " </tr>\n",
1502 " </thead>\n",
1503 " <tbody>\n",
1504 " <tr>\n",
1505 " <th>0.661132</th>\n",
1506 " <td>kschedfreq:2</td>\n",
1507 " <td>2</td>\n",
1508 " <td>119</td>\n",
1509 " <td>2</td>\n",
1510 " <td>1807000</td>\n",
1511 " </tr>\n",
1512 " <tr>\n",
1513 " <th>0.661136</th>\n",
1514 " <td>kschedfreq:2</td>\n",
1515 " <td>2</td>\n",
1516 " <td>119</td>\n",
1517 " <td>3</td>\n",
1518 " <td>1807000</td>\n",
1519 " </tr>\n",
1520 " </tbody>\n",
1521 "</table>\n",
1525 " __comm __cpu __pid cpu frequency\n",
1526 "Time \n",
1527 "0.661132 kschedfreq:2 2 119 2 1807000\n",
1537 "# All events parsed in the trace have an associated DataFrame\n",
1538 "logging.info(\"This is the DataFrame for 'cpu_frequency' events:\")\n",
1539 "df = ftrace.cpu_frequency.data_frame\n",
1554 "On DataFrames is possible to execute a number of different operations.\n",
1555 "Most commonly we are interested in:\n",
1556 "- focus only on certain columns\n",
1557 "- filtering events based on different conditions\n",
1558 "- joining two or more DataFrames\n",
1579 "<div>\n",
1580 "<table border=\"1\" class=\"dataframe\">\n",
1581 " <thead>\n",
1582 " <tr style=\"text-align: right;\">\n",
1583 " <th></th>\n",
1584 " <th>__comm</th>\n",
1585 " <th>__cpu</th>\n",
1586 " <th>__pid</th>\n",
1587 " <th>next_comm</th>\n",
1588 " <th>next_pid</th>\n",
1589 " <th>next_prio</th>\n",
1590 " <th>prev_comm</th>\n",
1591 " <th>prev_pid</th>\n",
1592 " <th>prev_prio</th>\n",
1593 " <th>prev_state</th>\n",
1594 " </tr>\n",
1595 " <tr>\n",
1596 " <th>Time</th>\n",
1597 " <th></th>\n",
1598 " <th></th>\n",
1599 " <th></th>\n",
1600 " <th></th>\n",
1601 " <th></th>\n",
1602 " <th></th>\n",
1603 " <th></th>\n",
1604 " <th></th>\n",
1605 " <th></th>\n",
1606 " <th></th>\n",
1607 " </tr>\n",
1608 " </thead>\n",
1609 " <tbody>\n",
1610 " <tr>\n",
1611 " <th>0.000272</th>\n",
1612 " <td>&lt;...&gt;</td>\n",
1613 " <td>1</td>\n",
1614 " <td>20278</td>\n",
1615 " <td>swapper/1</td>\n",
1616 " <td>0</td>\n",
1617 " <td>120</td>\n",
1618 " <td>trace-cmd</td>\n",
1619 " <td>20278</td>\n",
1620 " <td>120</td>\n",
1621 " <td>64</td>\n",
1622 " </tr>\n",
1623 " <tr>\n",
1624 " <th>0.000348</th>\n",
1625 " <td>&lt;idle&gt;</td>\n",
1626 " <td>0</td>\n",
1627 " <td>0</td>\n",
1628 " <td>sh</td>\n",
1629 " <td>20277</td>\n",
1630 " <td>120</td>\n",
1631 " <td>swapper/0</td>\n",
1632 " <td>0</td>\n",
1633 " <td>120</td>\n",
1634 " <td>0</td>\n",
1635 " </tr>\n",
1636 " </tbody>\n",
1637 "</table>\n",
1641 " __comm __cpu __pid next_comm next_pid next_prio prev_comm \\\n",
1642 "Time \n",
1643 "0.000272 <...> 1 20278 swapper/1 0 120 trace-cmd \n",
1644 "0.000348 <idle> 0 0 sh 20277 120 swapper/0 \n",
1645 "\n",
1646 " prev_pid prev_prio prev_state \n",
1647 "Time \n",
1648 "0.000272 20278 120 64 \n",
1658 "df = ftrace.sched_switch.data_frame\n",
1672 "<div>\n",
1673 "<table border=\"1\" class=\"dataframe\">\n",
1674 " <thead>\n",
1675 " <tr style=\"text-align: right;\">\n",
1676 " <th></th>\n",
1677 " <th>next_comm</th>\n",
1678 " <th>next_pid</th>\n",
1679 " <th>next_prio</th>\n",
1680 " <th>prev_comm</th>\n",
1681 " <th>prev_pid</th>\n",
1682 " <th>prev_prio</th>\n",
1683 " <th>prev_state</th>\n",
1684 " </tr>\n",
1685 " <tr>\n",
1686 " <th>Time</th>\n",
1687 " <th></th>\n",
1688 " <th></th>\n",
1689 " <th></th>\n",
1690 " <th></th>\n",
1691 " <th></th>\n",
1692 " <th></th>\n",
1693 " <th></th>\n",
1694 " </tr>\n",
1695 " </thead>\n",
1696 " <tbody>\n",
1697 " <tr>\n",
1698 " <th>0.000272</th>\n",
1699 " <td>swapper/1</td>\n",
1700 " <td>0</td>\n",
1701 " <td>120</td>\n",
1702 " <td>trace-cmd</td>\n",
1703 " <td>20278</td>\n",
1704 " <td>120</td>\n",
1705 " <td>64</td>\n",
1706 " </tr>\n",
1707 " <tr>\n",
1708 " <th>0.000348</th>\n",
1709 " <td>sh</td>\n",
1710 " <td>20277</td>\n",
1711 " <td>120</td>\n",
1712 " <td>swapper/0</td>\n",
1713 " <td>0</td>\n",
1714 " <td>120</td>\n",
1715 " <td>0</td>\n",
1716 " </tr>\n",
1717 " </tbody>\n",
1718 "</table>\n",
1722 " next_comm next_pid next_prio prev_comm prev_pid prev_prio \\\n",
1723 "Time \n",
1724 "0.000272 swapper/1 0 120 trace-cmd 20278 120 \n",
1725 "0.000348 sh 20277 120 swapper/0 0 120 \n",
1726 "\n",
1727 " prev_state \n",
1728 "Time \n",
1729 "0.000272 64 \n",
1739 "# The \"ix\" operator allow to select ranges of [rows:columns]\n",
1740 "df = df.ix[:,'next_comm':'prev_state']\n",
1756 "10:52:30 INFO : Found 130884 sched_switch events: \n"
1762 "<div>\n",
1763 "<table border=\"1\" class=\"dataframe\">\n",
1764 " <thead>\n",
1765 " <tr style=\"text-align: right;\">\n",
1766 " <th></th>\n",
1767 " <th>next_pid</th>\n",
1768 " <th>next_comm</th>\n",
1769 " </tr>\n",
1770 " <tr>\n",
1771 " <th>Time</th>\n",
1772 " <th></th>\n",
1773 " <th></th>\n",
1774 " </tr>\n",
1775 " </thead>\n",
1776 " <tbody>\n",
1777 " <tr>\n",
1778 " <th>0.000272</th>\n",
1779 " <td>0</td>\n",
1780 " <td>swapper/1</td>\n",
1781 " </tr>\n",
1782 " <tr>\n",
1783 " <th>0.000348</th>\n",
1784 " <td>20277</td>\n",
1785 " <td>sh</td>\n",
1786 " </tr>\n",
1787 " </tbody>\n",
1788 "</table>\n",
1792 " next_pid next_comm\n",
1793 "Time \n",
1794 "0.000272 0 swapper/1\n",
1804 "# We can also filter by listing the columns we are interested into\n",
1805 "tasks = df[['next_pid', 'next_comm']]\n",
1806 "logging.info(\"Found %d sched_switch events: \", len(tasks))\n",
1822 "10:52:33 INFO : The trace has 855 unique PIDs\n"
1828 "{0: 'swapper/2',\n",
1829 " 1: 'init',\n",
1830 " 2: 'kthreadd',\n",
1831 " 3: 'ksoftirqd/0',\n",
1832 " 6: 'kworker/u8:0',\n",
1833 " 7: 'rcu_preempt',\n",
1834 " 8: 'rcu_sched',\n",
1835 " 10: 'migration/0',\n",
1836 " 11: 'watchdog/0',\n",
1837 " 12: 'watchdog/1',\n",
1838 " 13: 'migration/1',\n",
1839 " 14: 'ksoftirqd/1',\n",
1840 " 17: 'watchdog/2',\n",
1841 " 18: 'migration/2',\n",
1842 " 19: 'ksoftirqd/2',\n",
1843 " 22: 'watchdog/3',\n",
1844 " 23: 'migration/3',\n",
1845 " 24: 'ksoftirqd/3',\n",
1846 " 31: 'khungtaskd',\n",
1847 " 66: 'fsnotify_mark',\n",
1848 " 83: 'spi32766',\n",
1849 " 88: 'kworker/1:1',\n",
1850 " 89: 'kworker/0:1',\n",
1851 " 110: 'kworker/u8:3',\n",
1852 " 114: 'kworker/0:2',\n",
1853 " 118: 'kschedfreq:0',\n",
1854 " 119: 'kschedfreq:2',\n",
1855 " 122: 'mmcqd/0',\n",
1856 " 123: 'mmcqd/0boot0',\n",
1857 " 124: 'mmcqd/0boot1',\n",
1858 " 125: 'mmcqd/0rpmb',\n",
1859 " 128: 'pvr_defer_free',\n",
1860 " 129: 'pvr_device_wdg',\n",
1861 " 134: 'kworker/3:2',\n",
1862 " 136: 'kworker/0:1H',\n",
1863 " 138: 'kworker/1:1H',\n",
1864 " 166: 'udevd',\n",
1865 " 209: 'jbd2/mmcblk0p1-',\n",
1866 " 239: 'loop0',\n",
1867 " 260: 'jbd2/dm-1-8',\n",
1868 " 264: 'kworker/2:1H',\n",
1869 " 286: 'kworker/3:1H',\n",
1870 " 369: 'rsyslogd',\n",
1871 " 380: 'rs:main Q:Reg',\n",
1872 " 394: 'rsyslogd',\n",
1873 " 395: 'rsyslogd',\n",
1874 " 398: 'dbus-daemon',\n",
1875 " 489: 'wpa_supplicant',\n",
1876 " 492: 'daisydog',\n",
1877 " 606: 'tcsd',\n",
1878 " 615: 'chapsd',\n",
1879 " 648: 'tcsd',\n",
1880 " 649: 'powerd',\n",
1881 " 650: 'permission_brok',\n",
1882 " 656: 'inotify_reader',\n",
1883 " 657: 'cryptohomed',\n",
1884 " 658: 'tcsd',\n",
1885 " 679: 'shill',\n",
1886 " 843: 'dhcpcd',\n",
1887 " 1150: 'mtpd',\n",
1888 " 1179: 'metrics_daemon',\n",
1889 " 1184: 'mtpd',\n",
1890 " 1190: 'cras',\n",
1891 " 1197: 'bluetoothd',\n",
1892 " 1232: 'disks',\n",
1893 " 1252: 'MountThread',\n",
1894 " 1261: 'sshd',\n",
1895 " 1264: 'update_engine',\n",
1896 " 1364: 'ksdioirqd/mmc2',\n",
1897 " 2108: 'warn_collector',\n",
1898 " 2252: 'netfilter-queue',\n",
1899 " 2266: 'tlsdated',\n",
1900 " 2267: 'logger',\n",
1901 " 2298: 'kworker/u9:4',\n",
1902 " 15461: 'sshd',\n",
1903 " 19394: 'bash',\n",
1904 " 19469: 'kworker/2:3',\n",
1905 " 19472: 'kworker/1:2',\n",
1906 " 19861: 'kworker/u8:4',\n",
1907 " 19897: 'session_manager',\n",
1908 " 19918: 'debugd',\n",
1909 " 19933: 'chrome',\n",
1910 " 19936: 'sandbox_ipc_thr',\n",
1911 " 19938: 'chrome',\n",
1912 " 19944: 'nacl_helper_boo',\n",
1913 " 19946: 'nacl_helper_non',\n",
1914 " 19949: 'chrome',\n",
1915 " 19950: 'chrome',\n",
1916 " 19963: 'D-Bus thread',\n",
1917 " 19964: 'WorkerPool/1996',\n",
1918 " 19965: 'WorkerPool/1996',\n",
1919 " 19966: 'CrShutdownDetec',\n",
1920 " 19967: 'BrowserBlocking',\n",
1921 " 19968: 'Chrome_DBThread',\n",
1922 " 19969: 'Chrome_FileThre',\n",
1923 " 19970: 'Chrome_FileUser',\n",
1924 " 19971: 'Chrome_ProcessL',\n",
1925 " 19972: 'Chrome_CacheThr',\n",
1926 " 19973: 'Chrome_IOThread',\n",
1927 " 19974: 'IndexedDB',\n",
1928 " 19975: 'CompositorTileW',\n",
1929 " 19976: 'AudioThread',\n",
1930 " 19979: 'BrowserWatchdog',\n",
1931 " 19987: 'handle-watcher-',\n",
1932 " 19988: 'gpu-process_cra',\n",
1933 " 19990: 'chrome',\n",
1934 " 19994: 'CachePoolWorker',\n",
1935 " 19995: 'BrowserBlocking',\n",
1936 " 19997: 'evdev',\n",
1937 " 20013: 'inotify_reader',\n",
1938 " 20014: 'Chrome_HistoryT',\n",
1939 " 20015: 'BrowserBlocking',\n",
1940 " 20016: 'renderer_crash_',\n",
1941 " 20017: 'chrome',\n",
1942 " 20019: 'chrome',\n",
1943 " 20020: 'Watchdog',\n",
1944 " 20022: 'Chrome_ChildIOT',\n",
1945 " 20023: 'Compositor',\n",
1946 " 20024: 'CompositorTileW',\n",
1947 " 20025: 'CompositorTileW',\n",
1948 " 20026: 'chrome',\n",
1949 " 20027: 'UsbEventHandler',\n",
1950 " 20030: 'handle-watcher-',\n",
1951 " 20032: 'Chrome_ChildIOT',\n",
1952 " 20034: 'DrmThread',\n",
1953 " 20035: 'handle-watcher-',\n",
1954 " 20041: 'HTMLParserThrea',\n",
1955 " 20043: 'WorkerPool/9',\n",
1956 " 20046: 'WorkerPool/12',\n",
1957 " 20052: 'chrome',\n",
1958 " 20054: 'Chrome_ChildIOT',\n",
1959 " 20055: 'Compositor',\n",
1960 " 20056: 'CompositorTileW',\n",
1961 " 20057: 'CompositorTileW',\n",
1962 " 20058: 'handle-watcher-',\n",
1963 " 20060: 'HTMLParserThrea',\n",
1964 " 20062: 'WorkerPool/9',\n",
1965 " 20064: 'WorkerPool/11',\n",
1966 " 20066: 'WorkerPool/12',\n",
1967 " 20067: 'WorkerPool/2006',\n",
1968 " 20088: 'kworker/u9:0',\n",
1969 " 20138: 'watch',\n",
1970 " 20276: 'sudo',\n",
1971 " 20277: 'sh',\n",
1972 " 20282: 'sudo',\n",
1973 " 20283: 'sh',\n",
1974 " 20284: 'watch',\n",
1975 " 20285: 'sh',\n",
1976 " 20286: 'sh',\n",
1977 " 20287: 'sudo',\n",
1978 " 20288: 'sh',\n",
1979 " 20289: 'shutils',\n",
1980 " 20290: 'cat',\n",
1981 " 20291: 'watch',\n",
1982 " 20292: 'sh',\n",
1983 " 20293: 'sh',\n",
1984 " 20294: 'sshd',\n",
1985 " 20295: 'sshd',\n",
1986 " 20296: 'sshd',\n",
1987 " 20297: 'sshd',\n",
1988 " 20298: 'sshd',\n",
1989 " 20299: 'sshd',\n",
1990 " 20300: 'bash',\n",
1991 " 20301: 'bash',\n",
1992 " 20302: 'chrome',\n",
1993 " 20303: 'netstat',\n",
1994 " 20304: 'watch',\n",
1995 " 20305: 'sh',\n",
1996 " 20306: 'netstat',\n",
1997 " 20307: 'sh',\n",
1998 " 20308: 'netstat',\n",
1999 " 20309: 'stop',\n",
2000 " 20310: 'rm',\n",
2001 " 20311: 'job-filter',\n",
2002 " 20312: 'job-filter',\n",
2003 " 20313: 'job-filter',\n",
2004 " 20314: 'sh',\n",
2005 " 20315: 'shill_logout_us',\n",
2006 " 20316: 'sh',\n",
2007 " 20317: 'basename',\n",
2008 " 20318: 'mkdir',\n",
2009 " 20319: 'rm',\n",
2010 " 20320: 'dbus-send',\n",
2011 " 20321: 'rm',\n",
2012 " 20322: 'rm',\n",
2013 " 20323: 'kworker/0:0',\n",
2014 " 20324: 'Shutdown watchd',\n",
2015 " 20325: 'Chrome_ProcessL',\n",
2016 " 20326: 'kworker/u8:1',\n",
2017 " 20327: 'sh',\n",
2018 " 20328: 'bootstat',\n",
2019 " 20329: 'cryptohome',\n",
2020 " 20330: 'sh',\n",
2021 " 20331: 'lsof',\n",
2022 " 20332: 'sort',\n",
2023 " 20333: 'lsof',\n",
2024 " 20334: 'watch',\n",
2025 " 20335: 'sh',\n",
2026 " 20336: 'cat',\n",
2027 " 20337: 'udevd',\n",
2028 " 20338: 'sudo',\n",
2029 " 20339: 'kill',\n",
2030 " 20340: 'ps',\n",
2031 " 20341: 'logger',\n",
2032 " 20342: 'bootstat',\n",
2033 " 20343: 'pkill',\n",
2034 " 20344: 'pgrep',\n",
2035 " 20345: 'sh',\n",
2036 " 20346: 'cryptohome',\n",
2037 " 20347: 'bootstat',\n",
2038 " 20348: 'sshd',\n",
2039 " 20349: 'rm',\n",
2040 " 20350: 'status',\n",
2041 " 20351: 'start',\n",
2042 " 20352: 'job-filter',\n",
2043 " 20353: 'sh',\n",
2044 " 20354: 'job-filter',\n",
2045 " 20355: 'job-filter',\n",
2046 " 20356: 'pvrsrvctl',\n",
2047 " 20357: 'sh',\n",
2048 " 20358: 'sh',\n",
2049 " 20359: 'touch',\n",
2050 " 20360: 'bootstat',\n",
2051 " 20361: 'chmod',\n",
2052 " 20362: 'crossystem',\n",
2053 " 20363: 'dump_vpd_log',\n",
2054 " 20364: 'mkdir',\n",
2055 " 20365: 'mktemp',\n",
2056 " 20366: 'mkdir',\n",
2057 " 20367: 'bootstat',\n",
2058 " 20368: 'chown',\n",
2059 " 20369: 'chmod',\n",
2060 " 20370: 'lockbox-cache',\n",
2061 " 20371: 'chmod',\n",
2062 " 20372: 'mktemp',\n",
2063 " 20373: 'mktemp',\n",
2064 " 20374: 'mktemp',\n",
2065 " 20375: 'getopt',\n",
2066 " 20376: 'getopt',\n",
2067 " 20377: 'dump_vpd_log',\n",
2068 " 20378: 'dump_vpd_log',\n",
2069 " 20379: 'dump_vpd_log',\n",
2070 " 20380: 'dump_vpd_log',\n",
2071 " 20381: 'grep',\n",
2072 " 20382: 'dump_vpd_log',\n",
2073 " 20383: 'grep',\n",
2074 " 20384: 'dump_vpd_log',\n",
2075 " 20385: 'grep',\n",
2076 " 20386: 'watch',\n",
2077 " 20387: 'sh',\n",
2078 " 20388: 'cat',\n",
2079 " 20389: 'dump_vpd_log',\n",
2080 " 20390: 'grep',\n",
2081 " 20391: 'dump_vpd_log',\n",
2082 " 20392: 'grep',\n",
2083 " 20393: 'dump_vpd_log',\n",
2084 " 20394: 'grep',\n",
2085 " 20395: 'dump_vpd_log',\n",
2086 " 20396: 'grep',\n",
2087 " 20397: 'dump_vpd_log',\n",
2088 " 20398: 'grep',\n",
2089 " 20399: 'dump_vpd_log',\n",
2090 " 20400: 'grep',\n",
2091 " 20401: 'dump_vpd_log',\n",
2092 " 20402: 'grep',\n",
2093 " 20403: 'dump_vpd_log',\n",
2094 " 20404: 'grep',\n",
2095 " 20405: 'dump_vpd_log',\n",
2096 " 20406: 'grep',\n",
2097 " 20407: 'dump_vpd_log',\n",
2098 " 20408: 'grep',\n",
2099 " 20409: 'dump_vpd_log',\n",
2100 " 20410: 'dump_vpd_log',\n",
2101 " 20411: 'dump_vpd_log',\n",
2102 " 20412: 'dump_vpd_log',\n",
2103 " 20413: 'dump_vpd_log',\n",
2104 " 20414: 'dump_vpd_log',\n",
2105 " 20415: 'dump_vpd_log',\n",
2106 " 20416: 'dump_vpd_log',\n",
2107 " 20417: 'dump_vpd_log',\n",
2108 " 20418: 'dump_vpd_log',\n",
2109 " 20419: 'dump_vpd_log',\n",
2110 " 20420: 'dump_vpd_log',\n",
2111 " 20421: 'dump_vpd_log',\n",
2112 " 20422: 'dump_vpd_log',\n",
2113 " 20423: 'dump_vpd_log',\n",
2114 " 20424: 'sed',\n",
2115 " 20425: 'dump_vpd_log',\n",
2116 " 20426: 'dump_vpd_log',\n",
2117 " 20427: 'dump_vpd_log',\n",
2118 " 20428: 'dump_vpd_log',\n",
2119 " 20429: 'dump_vpd_log',\n",
2120 " 20430: 'dump_vpd_log',\n",
2121 " 20431: 'dump_vpd_log',\n",
2122 " 20432: 'getopt',\n",
2123 " 20433: 'expr',\n",
2124 " 20434: 'expr',\n",
2125 " 20435: 'dump_vpd_log',\n",
2126 " 20436: 'grep',\n",
2127 " 20437: 'dump_vpd_log',\n",
2128 " 20438: 'expr',\n",
2129 " 20439: 'dump_vpd_log',\n",
2130 " 20440: 'grep',\n",
2131 " 20441: 'dump_vpd_log',\n",
2132 " 20442: 'rm',\n",
2133 " 20443: 'rm',\n",
2134 " 20444: 'rm',\n",
2135 " 20445: 'dirname',\n",
2136 " 20446: 'dirname',\n",
2137 " 20447: 'mkdir',\n",
2138 " 20448: 'dump_vpd_log',\n",
2139 " 20449: 'sed',\n",
2140 " 20450: 'rm',\n",
2141 " 20451: 'sh',\n",
2142 " 20452: 'mkdir',\n",
2143 " 20453: 'date',\n",
2144 " 20454: 'ln',\n",
2145 " 20455: 'chown',\n",
2146 " 20456: 'session_manager',\n",
2147 " 20457: 'job-filter',\n",
2148 " 20458: 'ps',\n",
2149 " 20459: 'sh',\n",
2150 " 20460: 'chgrp',\n",
2151 " 20461: 'chmod',\n",
2152 " 20462: 'chgrp',\n",
2153 " 20463: 'chmod',\n",
2154 " 20464: 'chgrp',\n",
2155 " 20465: 'chmod',\n",
2156 " 20466: 'chgrp',\n",
2157 " 20467: 'chmod',\n",
2158 " 20468: 'chgrp',\n",
2159 " 20469: 'chmod',\n",
2160 " 20470: 'chgrp',\n",
2161 " 20471: 'chmod',\n",
2162 " 20472: 'session_manager',\n",
2163 " 20473: 'cp',\n",
2164 " 20474: 'is_developer_en',\n",
2165 " 20475: 'crossystem',\n",
2166 " 20476: 'debugd',\n",
2167 " 20477: 'chrome',\n",
2168 " 20478: 'minijail0',\n",
2169 " 20479: 'is_developer_en',\n",
2170 " 20480: 'crossystem',\n",
2171 " 20481: 'sandbox_ipc_thr',\n",
2172 " 20482: 'chrome',\n",
2173 " 20483: 'ps',\n",
2174 " 20484: 'chrome',\n",
2175 " 20485: 'cryptohome',\n",
2176 " 20486: 'nacl_helper_boo',\n",
2177 " 20487: 'nacl_helper_boo',\n",
2178 " 20488: 'nacl_helper_non',\n",
2179 " 20489: 'nacl_helper_non',\n",
2180 " 20490: 'chrome',\n",
2181 " 20491: 'chrome',\n",
2182 " 20492: 'chrome',\n",
2183 " 20493: 'watch',\n",
2184 " 20494: 'sh',\n",
2185 " 20495: 'cat',\n",
2186 " 20496: 'wget',\n",
2187 " 20497: 'sleep',\n",
2188 " 20498: 'dbus-send',\n",
2189 " 20499: 'kworker/1:0',\n",
2190 " 20500: 'sleep',\n",
2191 " 20501: 'wget',\n",
2192 " 20502: 'wget',\n",
2193 " 20503: 'wget',\n",
2194 " 20504: 'watch',\n",
2195 " 20505: 'sh',\n",
2196 " 20506: 'sh',\n",
2197 " 20507: 'wget',\n",
2198 " 20508: 'wget',\n",
2199 " 20509: 'wget',\n",
2200 " 20510: 'wget',\n",
2201 " 20511: 'wget',\n",
2202 " 20512: 'wget',\n",
2203 " 20513: 'wget',\n",
2204 " 20514: 'watch',\n",
2205 " 20515: 'sh',\n",
2206 " 20516: 'cat',\n",
2207 " 20517: 'wget',\n",
2208 " 20518: 'wget',\n",
2209 " 20519: 'wget',\n",
2210 " 20520: 'wget',\n",
2211 " 20521: 'watch',\n",
2212 " 20522: 'sh',\n",
2213 " 20523: 'cat',\n",
2214 " 20524: 'wget',\n",
2215 " 20525: 'wget',\n",
2216 " 20526: 'wget',\n",
2217 " 20527: 'chrome',\n",
2218 " 20528: 'watch',\n",
2219 " 20529: 'sh',\n",
2220 " 20530: 'sh',\n",
2221 " 20531: 'sandbox_ipc_thr',\n",
2222 " 20532: 'chrome',\n",
2223 " 20533: 'chrome',\n",
2224 " 20534: 'wget',\n",
2225 " 20535: 'nacl_helper_boo',\n",
2226 " 20536: 'nacl_helper_boo',\n",
2227 " 20537: 'nacl_helper_non',\n",
2228 " 20538: 'nacl_helper_non',\n",
2229 " 20539: 'chrome',\n",
2230 " 20540: 'chrome',\n",
2231 " 20541: 'chrome',\n",
2232 " 20542: 'D-Bus thread',\n",
2233 " 20543: 'WorkerPool/2054',\n",
2234 " 20544: 'WorkerPool/2054',\n",
2235 " 20545: 'CrShutdownDetec',\n",
2236 " 20546: 'BrowserBlocking',\n",
2237 " 20547: 'Chrome_DBThread',\n",
2238 " 20548: 'Chrome_FileThre',\n",
2239 " 20549: 'Chrome_FileUser',\n",
2240 " 20550: 'Chrome_ProcessL',\n",
2241 " 20551: 'Chrome_CacheThr',\n",
2242 " 20552: 'Chrome_IOThread',\n",
2243 " 20553: 'IndexedDB',\n",
2244 " 20554: 'CompositorTileW',\n",
2245 " 20555: 'AudioThread',\n",
2246 " 20556: 'crossystem',\n",
2247 " 20557: 'handle-watcher-',\n",
2248 " 20558: 'BrowserWatchdog',\n",
2249 " 20559: 'gpu-process_cra',\n",
2250 " 20560: 'chrome',\n",
2251 " 20561: 'crossystem',\n",
2252 " 20562: 'crossystem',\n",
2253 " 20563: 'CachePoolWorker',\n",
2254 " 20564: 'crossystem',\n",
2255 " 20565: 'crossystem',\n",
2256 " 20566: 'crossystem',\n",
2257 " 20567: 'mosys',\n",
2258 " 20568: 'crossystem',\n",
2259 " 20569: 'mosys',\n",
2260 " 20570: 'crossystem',\n",
2261 " 20571: 'mosys',\n",
2262 " 20572: 'crossystem',\n",
2263 " 20573: 'crossystem',\n",
2264 " 20574: 'crossystem',\n",
2265 " 20575: 'crossystem',\n",
2266 " 20576: 'wget',\n",
2267 " 20577: 'crossystem',\n",
2268 " 20578: 'crossystem',\n",
2269 " 20579: 'crossystem',\n",
2270 " 20580: 'crossystem',\n",
2271 " 20581: 'crossystem',\n",
2272 " 20582: 'mosys',\n",
2273 " 20583: 'mosys',\n",
2274 " 20584: 'mosys',\n",
2275 " 20585: 'mosys',\n",
2276 " 20586: 'mosys',\n",
2277 " 20587: 'mosys',\n",
2278 " 20588: 'mosys',\n",
2279 " 20589: 'mosys',\n",
2280 " 20590: 'mosys',\n",
2281 " 20591: 'inotify_reader',\n",
2282 " 20592: 'chrome',\n",
2283 " 20593: 'chrome',\n",
2284 " 20594: 'Watchdog',\n",
2285 " 20595: 'evdev',\n",
2286 " 20596: 'Chrome_ChildIOT',\n",
2287 " 20597: 'DrmThread',\n",
2288 " 20598: 'handle-watcher-',\n",
2289 " 20599: 'BrowserBlocking',\n",
2290 " 20600: 'Chrome_HistoryT',\n",
2291 " 20601: 'BrowserBlocking',\n",
2292 " 20602: 'Startup watchdo',\n",
2293 " 20603: 'Chrome_DevTools',\n",
2294 " 20604: 'WorkerPool/2060',\n",
2295 " 20605: 'wget',\n",
2296 " 20606: 'watch',\n",
2297 " 20607: 'sh',\n",
2298 " 20608: 'cat',\n",
2299 " 20609: 'WorkerPool/2060',\n",
2300 " 20610: 'WorkerPool/2061',\n",
2301 " 20611: 'WorkerPool/2061',\n",
2302 " 20612: 'chrome',\n",
2303 " 20613: 'chrome',\n",
2304 " 20614: 'renderer_crash_',\n",
2305 " 20615: 'chrome',\n",
2306 " 20616: 'Chrome_ChildIOT',\n",
2307 " 20617: 'Compositor',\n",
2308 " 20618: 'CompositorTileW',\n",
2309 " 20619: 'CompositorTileW',\n",
2310 " 20620: 'chrome',\n",
2311 " 20621: 'UsbEventHandler',\n",
2312 " 20622: 'handle-watcher-',\n",
2313 " 20623: 'HTMLParserThrea',\n",
2314 " 20624: 'WorkerPool/8',\n",
2315 " 20625: 'watch',\n",
2316 " 20626: 'sh',\n",
2317 " 20627: 'cat',\n",
2318 " 20628: 'WorkerPool/9',\n",
2319 " 20629: 'WorkerPool/10',\n",
2320 " 20630: 'WorkerPool/11',\n",
2321 " 20631: 'watch',\n",
2322 " 20632: 'sh',\n",
2323 " 20633: 'cat',\n",
2324 " 20634: 'cryptohome-path',\n",
2325 " 20635: 'chrome',\n",
2326 " 20636: 'tcsd',\n",
2327 " 20637: 'df',\n",
2328 " 20638: 'WorkerPool/12',\n",
2329 " 20639: 'watch',\n",
2330 " 20640: 'sh',\n",
2331 " 20641: 'cat',\n",
2332 " 20642: 'cryptohome-path',\n",
2333 " 20643: 'df',\n",
2334 " 20644: 'cryptohome-path',\n",
2335 " 20645: 'df',\n",
2336 " 20646: 'cryptohome-path',\n",
2337 " 20647: 'df',\n",
2338 " 20648: 'udevd',\n",
2339 " 20649: 'sshd',\n",
2340 " 20650: 'df',\n",
2341 " 20651: 'sh',\n",
2342 " 20652: 'chapsd',\n",
2343 " 20653: 'crossystem',\n",
2344 " 20654: 'rm',\n",
2345 " 20655: 'job-filter',\n",
2346 " 20656: 'init',\n",
2347 " 20657: 'sh',\n",
2348 " 20658: 'shill_login_use',\n",
2349 " 20659: 'touch',\n",
2350 " 20660: 'basename',\n",
2351 " 20661: 'cryptohome-path',\n",
2352 " 20662: 'basename',\n",
2353 " 20663: 'cryptohome-path',\n",
2354 " 20664: 'mkdir',\n",
2355 " 20665: 'mkdir',\n",
2356 " 20666: 'chrome',\n",
2357 " 20667: 'ln',\n",
2358 " 20668: 'mkdir',\n",
2359 " 20669: 'ln',\n",
2360 " 20670: 'dbus-send',\n",
2361 " 20671: 'dbus-send',\n",
2362 " 20672: 'keygen',\n",
2363 " 20673: 'watch',\n",
2364 " 20674: 'sh',\n",
2365 " 20675: 'cryptohome-path',\n",
2366 " 20676: 'sh',\n",
2367 " 20677: 'Chrome_HistoryT',\n",
2368 " 20678: 'df',\n",
2369 " 20679: 'chrome',\n",
2370 " 20680: 'Chrome_ChildIOT',\n",
2371 " 20681: 'Compositor',\n",
2372 " 20682: 'CompositorTileW',\n",
2373 " 20683: 'CompositorTileW',\n",
2374 " 20684: 'handle-watcher-',\n",
2375 " 20685: 'chrome',\n",
2376 " 20686: 'extension_crash',\n",
2377 " 20687: 'chrome',\n",
2378 " 20688: 'Chrome_ChildIOT',\n",
2379 " 20689: 'Compositor',\n",
2380 " 20690: 'CompositorTileW',\n",
2381 " 20691: 'CompositorTileW',\n",
2382 " 20692: 'handle-watcher-',\n",
2383 " 20693: 'kworker/u9:1',\n",
2384 " 20694: 'HTMLParserThrea',\n",
2385 " 20695: 'HTMLParserThrea',\n",
2386 " 20696: 'watch',\n",
2387 " 20697: 'sh',\n",
2388 " 20698: 'sh',\n",
2389 " 20699: 'WorkerPool/8',\n",
2390 " 20700: 'WorkerPool/9',\n",
2391 " 20701: 'WorkerPool/10',\n",
2392 " 20702: 'WorkerPool/11',\n",
2393 " 20703: 'WorkerPool/12',\n",
2394 " 20704: 'WorkerPool/13',\n",
2395 " 20705: 'chrome',\n",
2396 " 20706: 'Chrome_ChildIOT',\n",
2397 " 20707: 'Compositor',\n",
2398 " 20708: 'CompositorTileW',\n",
2399 " 20709: 'CompositorTileW',\n",
2400 " 20710: 'chrome',\n",
2401 " 20711: 'handle-watcher-',\n",
2402 " 20712: 'HTMLParserThrea',\n",
2403 " 20713: 'chrome',\n",
2404 " 20714: 'WorkerPool/8',\n",
2405 " 20715: 'watch',\n",
2406 " 20716: 'sh',\n",
2407 " 20717: 'cat',\n",
2408 " 20718: 'watch',\n",
2409 " 20719: 'sh',\n",
2410 " 20720: 'cat',\n",
2411 " 20721: 'ScriptStreamerT',\n",
2412 " 20722: 'WorkerPool/10',\n",
2413 " 20723: 'WorkerPool/11',\n",
2414 " 20724: 'watch',\n",
2415 " 20725: 'sh',\n",
2416 " 20726: 'cat',\n",
2417 " 20727: 'watch',\n",
2418 " 20728: 'sh',\n",
2419 " 20729: 'cat',\n",
2420 " 20730: 'chrome',\n",
2421 " 20731: 'chrome',\n",
2422 " 20732: 'Chrome_ChildIOT',\n",
2423 " 20733: 'Compositor',\n",
2424 " 20734: 'CompositorTileW',\n",
2425 " 20735: 'CompositorTileW',\n",
2426 " 20736: 'handle-watcher-',\n",
2427 " 20737: 'chrome',\n",
2428 " 20738: 'HTMLParserThrea',\n",
2429 " 20739: 'watch',\n",
2430 " 20740: 'sh',\n",
2431 " 20741: 'cat',\n",
2432 " 20742: 'watch',\n",
2433 " 20743: 'sh',\n",
2434 " 20744: 'cat',\n",
2435 " 20745: 'watch',\n",
2436 " 20746: 'sh',\n",
2437 " 20747: 'cat',\n",
2438 " 20748: 'mosys',\n",
2439 " 20749: 'sh',\n",
2440 " 20750: 'which',\n",
2441 " 20751: 'flashrom',\n",
2442 " 20752: 'sh',\n",
2443 " 20753: 'sh',\n",
2444 " 20754: 'watch',\n",
2445 " 20755: 'sh',\n",
2446 " 20756: 'cat',\n",
2447 " 20757: 'WorkerPool/12',\n",
2448 " 20758: 'watch',\n",
2449 " 20759: 'sh',\n",
2450 " 20760: 'cat',\n",
2451 " 20761: 'watch',\n",
2452 " 20762: 'sh',\n",
2453 " 20763: 'cat',\n",
2454 " 20764: 'watch',\n",
2455 " 20765: 'sh',\n",
2456 " 20766: 'cat',\n",
2457 " 20767: 'watch',\n",
2458 " 20768: 'sh',\n",
2459 " 20769: 'cat',\n",
2460 " 20770: 'watch',\n",
2461 " 20771: 'sh',\n",
2462 " 20772: 'sh',\n",
2463 " 20773: 'ps',\n",
2464 " 20774: 'watch',\n",
2465 " 20775: 'sh',\n",
2466 " 20776: 'sh',\n",
2467 " 20777: 'status',\n",
2468 " 20778: 'restart',\n",
2469 " 20779: 'job-filter',\n",
2470 " 20780: 'init',\n",
2471 " 20781: 'init',\n",
2472 " 20782: 'sh',\n",
2473 " 20783: 'shill_logout_us',\n",
2474 " 20784: 'basename',\n",
2475 " 20785: 'sh',\n",
2476 " 20786: 'mkdir',\n",
2477 " 20787: 'dbus-send',\n",
2478 " 20788: 'rm',\n",
2479 " 20789: 'rm',\n",
2480 " 20790: 'rm',\n",
2481 " 20791: 'Shutdown watchd',\n",
2482 " 20792: 'chrome',\n",
2483 " 20793: 'Chrome_ProcessL',\n",
2484 " 20794: 'kworker/0:3',\n",
2485 " 20795: 'watch',\n",
2486 " 20796: 'sh',\n",
2487 " 20797: 'sh',\n",
2488 " 20798: 'sh',\n",
2489 " 20799: 'bootstat',\n",
2490 " 20800: 'cryptohome',\n",
2491 " 20801: 'chapsd',\n",
2492 " 20802: 'sh',\n",
2493 " 20803: 'lsof',\n",
2494 " 20804: 'sort',\n",
2495 " 20805: 'lsof',\n",
2496 " 20806: 'sudo',\n",
2497 " 20807: 'kill',\n",
2498 " 20808: 'ps',\n",
2499 " 20809: 'logger',\n",
2500 " 20810: 'udevd',\n",
2501 " 20811: 'bootstat',\n",
2502 " 20812: 'pkill',\n",
2503 " 20813: 'pgrep',\n",
2504 " 20814: 'bootstat',\n",
2505 " 20815: 'cryptohome',\n",
2506 " 20816: 'bootstat',\n",
2507 " 20817: 'job-filter',\n",
2508 " 20818: 'job-filter',\n",
2509 " 20819: 'sh',\n",
2510 " 20820: 'sh',\n",
2511 " 20821: 'init',\n",
2512 " 20822: 'sh',\n",
2513 " 20823: 'sh',\n",
2514 " 20824: 'sh',\n",
2515 " 20825: 'chmod',\n",
2516 " 20826: 'bootstat',\n",
2517 " 20827: 'sh',\n",
2518 " 20828: 'dump_vpd_log',\n",
2519 " 20829: 'mktemp',\n",
2520 " 20830: 'mkdir',\n",
2521 " 20831: 'dump_vpd_log',\n",
2522 " 20832: 'chown',\n",
2523 " 20833: 'bootstat',\n",
2524 " 20834: 'chmod',\n",
2525 " 20835: 'lockbox-cache',\n",
2526 " 20836: 'chmod',\n",
2527 " 20837: 'mktemp',\n",
2528 " 20838: 'dump_vpd_log',\n",
2529 " 20839: 'mktemp',\n",
2530 " 20840: 'dump_vpd_log',\n",
2531 " 20841: 'getopt',\n",
2532 " 20842: 'dump_vpd_log',\n",
2533 " 20843: 'dump_vpd_log',\n",
2534 " 20844: 'awk',\n",
2535 " 20845: 'dump_vpd_log',\n",
2536 " 20846: 'grep',\n",
2537 " 20847: 'dump_vpd_log',\n",
2538 " 20848: 'grep',\n",
2539 " 20849: 'dump_vpd_log',\n",
2540 " 20850: 'dump_vpd_log',\n",
2541 " 20851: 'dump_vpd_log',\n",
2542 " 20852: 'grep',\n",
2543 " 20853: 'watch',\n",
2544 " 20854: 'sh',\n",
2545 " 20855: 'dump_vpd_log',\n",
2546 " 20856: 'grep',\n",
2547 " 20857: 'sh',\n",
2548 " 20858: 'dump_vpd_log',\n",
2549 " 20859: 'grep',\n",
2550 " 20860: 'dump_vpd_log',\n",
2551 " 20861: 'grep',\n",
2552 " 20862: 'dump_vpd_log',\n",
2553 " 20863: 'grep',\n",
2554 " 20864: 'dump_vpd_log',\n",
2555 " 20865: 'grep',\n",
2556 " 20866: 'dump_vpd_log',\n",
2557 " 20867: 'grep',\n",
2558 " 20868: 'dump_vpd_log',\n",
2559 " 20869: 'grep',\n",
2560 " 20870: 'dump_vpd_log',\n",
2561 " 20871: 'grep',\n",
2562 " 20872: 'dump_vpd_log',\n",
2563 " 20873: 'grep',\n",
2564 " 20874: 'dump_vpd_log',\n",
2565 " 20875: 'dump_vpd_log',\n",
2566 " 20876: 'dump_vpd_log',\n",
2567 " 20877: 'dump_vpd_log',\n",
2568 " 20878: 'dump_vpd_log',\n",
2569 " 20879: 'dump_vpd_log',\n",
2570 " 20880: 'dump_vpd_log',\n",
2571 " 20881: 'dump_vpd_log',\n",
2572 " 20882: 'dump_vpd_log',\n",
2573 " 20883: 'dump_vpd_log',\n",
2574 " 20884: 'dump_vpd_log',\n",
2575 " 20885: 'dump_vpd_log',\n",
2576 " 20886: 'dump_vpd_log',\n",
2577 " 20887: 'dump_vpd_log',\n",
2578 " 20888: 'dump_vpd_log',\n",
2579 " 20889: 'dump_vpd_log',\n",
2580 " 20890: 'dump_vpd_log',\n",
2581 " 20891: 'dump_vpd_log',\n",
2582 " 20892: 'dump_vpd_log',\n",
2583 " 20893: 'dump_vpd_log',\n",
2584 " 20894: 'dump_vpd_log',\n",
2585 " 20895: 'dump_vpd_log',\n",
2586 " 20896: 'dump_vpd_log',\n",
2587 " 20897: 'getopt',\n",
2588 " 20898: 'expr',\n",
2589 " 20899: 'expr',\n",
2590 " 20900: 'dump_vpd_log',\n",
2591 " 20901: 'grep',\n",
2592 " 20902: 'dump_vpd_log',\n",
2593 " 20903: 'expr',\n",
2594 " 20904: 'dump_vpd_log',\n",
2595 " 20905: 'grep',\n",
2596 " 20906: 'dump_vpd_log',\n",
2597 " 20907: 'rm',\n",
2598 " 20908: 'rm',\n",
2599 " 20909: 'rm',\n",
2600 " 20910: 'dirname',\n",
2601 " 20911: 'dirname',\n",
2602 " 20912: 'mkdir',\n",
2603 " 20913: 'dump_vpd_log',\n",
2604 " 20914: 'sed',\n",
2605 " 20915: 'rm',\n",
2606 " 20916: 'sh',\n",
2607 " 20917: 'mkdir',\n",
2608 " 20918: 'date',\n",
2609 " 20919: 'ln',\n",
2610 " 20920: 'chown',\n",
2611 " 20921: 'session_manager',\n",
2612 " 20922: 'job-filter',\n",
2613 " 20923: 'sshd',\n",
2614 " 20924: 'sh',\n",
2615 " 20925: 'chgrp',\n",
2616 " 20926: 'sh',\n",
2617 " 20927: 'sh',\n",
2618 " 20928: 'sh',\n",
2619 " 20929: 'sh',\n",
2620 " 20930: 'sh',\n",
2621 " 20931: 'sshd',\n",
2622 " 20932: 'sh',\n",
2623 " 20933: 'crossystem',\n",
2624 " 20934: 'chmod',\n",
2625 " 20935: 'sh',\n",
2626 " 20936: 'chmod',\n",
2627 " 20937: 'is_developer_en',\n",
2628 " 20938: 'sh',\n",
2629 " 20939: 'crossystem',\n",
2630 " 20940: 'chmod',\n",
2631 " 20941: 'watch',\n",
2632 " 20942: 'sh',\n",
2633 " 20943: 'sh',\n",
2634 " 20944: 'cp',\n",
2635 " 20945: 'debugd',\n",
2636 " 20946: 'mosys',\n",
2637 " 20947: 'sh',\n",
2638 " 20948: 'which',\n",
2639 " 20949: 'flashrom',\n",
2640 " 20950: 'sh',\n",
2641 " 20951: 'crossystem',\n",
2642 " 20952: 'sshd',\n",
2643 " 20953: 'sshd',\n",
2644 " 20954: 'sshd',\n",
2645 " 20955: 'sshd',\n",
2646 " 20956: 'cryptohome-path',\n",
2647 " 20957: 'minijail0',\n",
2648 " 20958: 'is_developer_en',\n",
2649 " 20959: 'is_developer_en',\n",
2650 " 20960: 'chrome',\n",
2651 " 20961: 'sshd',\n",
2652 " 20962: 'sshd',\n",
2653 " 20963: 'sandbox_ipc_thr',\n",
2654 " 20964: 'chrome',\n",
2655 " 20965: 'chrome',\n",
2656 " 20966: 'sshd',\n",
2657 " 20967: 'sshd',\n",
2658 " 20968: 'sshd',\n",
2659 " 20969: 'sshd',\n",
2660 " 20970: 'bash',\n",
2661 " 20971: 'nacl_helper_boo',\n",
2662 " 20972: 'nacl_helper_boo',\n",
2663 " 20973: 'nacl_helper_non',\n",
2664 " 20974: 'nacl_helper_non',\n",
2665 " 20975: 'chrome',\n",
2666 " 20976: 'chrome',\n",
2667 " 20977: 'chrome',\n",
2668 " 20978: 'sudo',\n",
2669 " 20979: 'sh',\n",
2670 " 20980: 'shutils',\n",
2671 " 20981: 'cat',\n",
2672 " 20982: 'watch',\n",
2673 " 20983: 'sh',\n",
2674 " 20984: 'sh',\n",
2675 " 20985: 'sudo',\n",
2676 " 20986: 'sudo',\n",
2677 " 20987: 'watch',\n",
2678 " 20988: 'sh',\n",
2679 " 20989: 'sh',\n",
2680 " 20990: 'sudo',\n",
2681 " 20991: 'sudo',\n",
2691 "# Create a map of {PID: TaskName}\n",
2692 "pid_to_task = {int(task[0]): task[1] for task in tasks.drop_duplicates().values}\n",
2693 "logging.info(\"The trace has %s unique PIDs\", len(pid_to_task))\n",
2715 "<div>\n",
2716 "<table border=\"1\" class=\"dataframe\">\n",
2717 " <thead>\n",
2718 " <tr style=\"text-align: right;\">\n",
2719 " <th></th>\n",
2720 " <th></th>\n",
2721 " <th>next_comm</th>\n",
2722 " <th>prev_comm</th>\n",
2723 " </tr>\n",
2724 " <tr>\n",
2725 " <th>next_pid</th>\n",
2726 " <th></th>\n",
2727 " <th></th>\n",
2728 " <th></th>\n",
2729 " </tr>\n",
2730 " </thead>\n",
2731 " <tbody>\n",
2732 " <tr>\n",
2733 " <th rowspan=\"4\" valign=\"top\">0</th>\n",
2734 " <th>count</th>\n",
2735 " <td>20400</td>\n",
2736 " <td>20400</td>\n",
2737 " </tr>\n",
2738 " <tr>\n",
2739 " <th>unique</th>\n",
2740 " <td>4</td>\n",
2741 " <td>158</td>\n",
2742 " </tr>\n",
2743 " <tr>\n",
2744 " <th>top</th>\n",
2745 " <td>swapper/1</td>\n",
2746 " <td>chrome</td>\n",
2747 " </tr>\n",
2748 " <tr>\n",
2749 " <th>freq</th>\n",
2750 " <td>8442</td>\n",
2751 " <td>5964</td>\n",
2752 " </tr>\n",
2753 " <tr>\n",
2754 " <th>1</th>\n",
2755 " <th>count</th>\n",
2756 " <td>372</td>\n",
2757 " <td>372</td>\n",
2758 " </tr>\n",
2759 " </tbody>\n",
2760 "</table>\n",
2764 " next_comm prev_comm\n",
2765 "next_pid \n",
2766 "0 count 20400 20400\n",
2767 " unique 4 158\n",
2768 " top swapper/1 chrome\n",
2769 " freq 8442 5964\n",
2779 "# Group events by \"PID\" and compute \n",
2780 "most_switching = df.groupby('next_pid').describe(include=['object'])\n",
2794 "<div>\n",
2795 "<table border=\"1\" class=\"dataframe\">\n",
2796 " <thead>\n",
2797 " <tr>\n",
2798 " <th></th>\n",
2799 " <th colspan=\"4\" halign=\"left\">next_comm</th>\n",
2800 " <th colspan=\"4\" halign=\"left\">prev_comm</th>\n",
2801 " </tr>\n",
2802 " <tr>\n",
2803 " <th></th>\n",
2804 " <th>count</th>\n",
2805 " <th>unique</th>\n",
2806 " <th>top</th>\n",
2807 " <th>freq</th>\n",
2808 " <th>count</th>\n",
2809 " <th>unique</th>\n",
2810 " <th>top</th>\n",
2811 " <th>freq</th>\n",
2812 " </tr>\n",
2813 " <tr>\n",
2814 " <th>next_pid</th>\n",
2815 " <th></th>\n",
2816 " <th></th>\n",
2817 " <th></th>\n",
2818 " <th></th>\n",
2819 " <th></th>\n",
2820 " <th></th>\n",
2821 " <th></th>\n",
2822 " <th></th>\n",
2823 " </tr>\n",
2824 " </thead>\n",
2825 " <tbody>\n",
2826 " <tr>\n",
2827 " <th>0</th>\n",
2828 " <td>20400</td>\n",
2829 " <td>4</td>\n",
2830 " <td>swapper/1</td>\n",
2831 " <td>8442</td>\n",
2832 " <td>20400</td>\n",
2833 " <td>158</td>\n",
2834 " <td>chrome</td>\n",
2835 " <td>5964</td>\n",
2836 " </tr>\n",
2837 " <tr>\n",
2838 " <th>1</th>\n",
2839 " <td>372</td>\n",
2840 " <td>1</td>\n",
2841 " <td>init</td>\n",
2842 " <td>372</td>\n",
2843 " <td>372</td>\n",
2844 " <td>33</td>\n",
2845 " <td>dbus-daemon</td>\n",
2846 " <td>90</td>\n",
2847 " </tr>\n",
2848 " <tr>\n",
2849 " <th>2</th>\n",
2850 " <td>5</td>\n",
2851 " <td>1</td>\n",
2852 " <td>kthreadd</td>\n",
2853 " <td>5</td>\n",
2854 " <td>5</td>\n",
2855 " <td>5</td>\n",
2856 " <td>swapper/1</td>\n",
2857 " <td>1</td>\n",
2858 " </tr>\n",
2859 " <tr>\n",
2860 " <th>3</th>\n",
2861 " <td>761</td>\n",
2862 " <td>1</td>\n",
2863 " <td>ksoftirqd/0</td>\n",
2864 " <td>761</td>\n",
2865 " <td>761</td>\n",
2866 " <td>36</td>\n",
2867 " <td>rcu_preempt</td>\n",
2868 " <td>246</td>\n",
2869 " </tr>\n",
2870 " <tr>\n",
2871 " <th>6</th>\n",
2872 " <td>2275</td>\n",
2873 " <td>1</td>\n",
2874 " <td>kworker/u8:0</td>\n",
2875 " <td>2275</td>\n",
2876 " <td>2275</td>\n",
2877 " <td>64</td>\n",
2878 " <td>chrome</td>\n",
2879 " <td>475</td>\n",
2880 " </tr>\n",
2881 " </tbody>\n",
2882 "</table>\n",
2886 " next_comm prev_comm \\\n",
2887 " count unique top freq count unique top \n",
2888 "next_pid \n",
2889 "0 20400 4 swapper/1 8442 20400 158 chrome \n",
2890 "1 372 1 init 372 372 33 dbus-daemon \n",
2891 "2 5 1 kthreadd 5 5 5 swapper/1 \n",
2892 "3 761 1 ksoftirqd/0 761 761 36 rcu_preempt \n",
2893 "6 2275 1 kworker/u8:0 2275 2275 64 chrome \n",
2894 "\n",
2895 " \n",
2896 " freq \n",
2897 "next_pid \n",
2898 "0 5964 \n",
2899 "1 90 \n",
2900 "2 1 \n",
2901 "3 246 \n",
2911 "most_switching = most_switching.unstack()\n",
2925 "<div>\n",
2926 "<table border=\"1\" class=\"dataframe\">\n",
2927 " <thead>\n",
2928 " <tr style=\"text-align: right;\">\n",
2929 " <th></th>\n",
2930 " <th>count</th>\n",
2931 " <th>unique</th>\n",
2932 " <th>top</th>\n",
2933 " <th>freq</th>\n",
2934 " </tr>\n",
2935 " <tr>\n",
2936 " <th>next_pid</th>\n",
2937 " <th></th>\n",
2938 " <th></th>\n",
2939 " <th></th>\n",
2940 " <th></th>\n",
2941 " </tr>\n",
2942 " </thead>\n",
2943 " <tbody>\n",
2944 " <tr>\n",
2945 " <th>0</th>\n",
2946 " <td>20400</td>\n",
2947 " <td>4</td>\n",
2948 " <td>swapper/1</td>\n",
2949 " <td>8442</td>\n",
2950 " </tr>\n",
2951 " <tr>\n",
2952 " <th>20552</th>\n",
2953 " <td>9224</td>\n",
2954 " <td>2</td>\n",
2955 " <td>Chrome_IOThread</td>\n",
2956 " <td>9223</td>\n",
2957 " </tr>\n",
2958 " <tr>\n",
2959 " <th>20527</th>\n",
2960 " <td>8309</td>\n",
2961 " <td>2</td>\n",
2962 " <td>chrome</td>\n",
2963 " <td>8307</td>\n",
2964 " </tr>\n",
2965 " <tr>\n",
2966 " <th>20560</th>\n",
2967 " <td>6898</td>\n",
2968 " <td>3</td>\n",
2969 " <td>chrome</td>\n",
2970 " <td>6797</td>\n",
2971 " </tr>\n",
2972 " <tr>\n",
2973 " <th>7</th>\n",
2974 " <td>5516</td>\n",
2975 " <td>1</td>\n",
2976 " <td>rcu_preempt</td>\n",
2977 " <td>5516</td>\n",
2978 " </tr>\n",
2979 " </tbody>\n",
2980 "</table>\n",
2984 " count unique top freq\n",
2985 "next_pid \n",
2986 "0 20400 4 swapper/1 8442\n",
2987 "20552 9224 2 Chrome_IOThread 9223\n",
2988 "20527 8309 2 chrome 8307\n",
2989 "20560 6898 3 chrome 6797\n",
2999 "most_switching = most_switching['next_comm']\\\n",
3000 " .sort_values(by=['count'], ascending=False)\n",
3015 "07:08:50 INFO : The second most swithing task is: [20552:Chrome_IOThread]\n"
3020 "most_switching_pid = most_switching.index[1]\n",
3021 "most_switching_task = most_switching.values[1][2]\n",
3022 "task_name = \"{}:{}\".format(most_switching_pid, most_switching_task)\n",
3044 "06:45:37 INFO : Total events: 220234\n"
3050 "<div>\n",
3051 "<table border=\"1\" class=\"dataframe\">\n",
3052 " <thead>\n",
3053 " <tr style=\"text-align: right;\">\n",
3054 " <th></th>\n",
3055 " <th>comm</th>\n",
3056 " <th>cpu</th>\n",
3057 " <th>load_avg</th>\n",
3058 " <th>load_sum</th>\n",
3059 " <th>period_contrib</th>\n",
3060 " <th>pid</th>\n",
3061 " <th>util_avg</th>\n",
3062 " <th>util_sum</th>\n",
3063 " </tr>\n",
3064 " <tr>\n",
3065 " <th>Time</th>\n",
3066 " <th></th>\n",
3067 " <th></th>\n",
3068 " <th></th>\n",
3069 " <th></th>\n",
3070 " <th></th>\n",
3071 " <th></th>\n",
3072 " <th></th>\n",
3073 " <th></th>\n",
3074 " </tr>\n",
3075 " </thead>\n",
3076 " <tbody>\n",
3077 " <tr>\n",
3078 " <th>0.000014</th>\n",
3079 " <td>trace-cmd</td>\n",
3080 " <td>1</td>\n",
3081 " <td>58</td>\n",
3082 " <td>2811439</td>\n",
3083 " <td>916</td>\n",
3084 " <td>20278</td>\n",
3085 " <td>33</td>\n",
3086 " <td>1601714</td>\n",
3087 " </tr>\n",
3088 " <tr>\n",
3089 " <th>0.000229</th>\n",
3090 " <td>trace-cmd</td>\n",
3091 " <td>1</td>\n",
3092 " <td>59</td>\n",
3093 " <td>2820191</td>\n",
3094 " <td>111</td>\n",
3095 " <td>20278</td>\n",
3096 " <td>33</td>\n",
3097 " <td>1612418</td>\n",
3098 " </tr>\n",
3099 " <tr>\n",
3100 " <th>0.000334</th>\n",
3101 " <td>sh</td>\n",
3102 " <td>0</td>\n",
3103 " <td>0</td>\n",
3104 " <td>0</td>\n",
3105 " <td>957</td>\n",
3106 " <td>20277</td>\n",
3107 " <td>0</td>\n",
3108 " <td>0</td>\n",
3109 " </tr>\n",
3110 " <tr>\n",
3111 " <th>0.000982</th>\n",
3112 " <td>sh</td>\n",
3113 " <td>0</td>\n",
3114 " <td>5</td>\n",
3115 " <td>285169</td>\n",
3116 " <td>710</td>\n",
3117 " <td>20277</td>\n",
3118 " <td>3</td>\n",
3119 " <td>164585</td>\n",
3120 " </tr>\n",
3121 " <tr>\n",
3122 " <th>0.001178</th>\n",
3123 " <td>sh</td>\n",
3124 " <td>0</td>\n",
3125 " <td>5</td>\n",
3126 " <td>355825</td>\n",
3127 " <td>903</td>\n",
3128 " <td>20277</td>\n",
3129 " <td>3</td>\n",
3130 " <td>205364</td>\n",
3131 " </tr>\n",
3132 " </tbody>\n",
3133 "</table>\n",
3137 " comm cpu load_avg load_sum period_contrib pid util_avg \\\n",
3138 "Time \n",
3139 "0.000014 trace-cmd 1 58 2811439 916 20278 33 \n",
3140 "0.000229 trace-cmd 1 59 2820191 111 20278 33 \n",
3141 "0.000334 sh 0 0 0 957 20277 0 \n",
3142 "0.000982 sh 0 5 285169 710 20277 3 \n",
3143 "0.001178 sh 0 5 355825 903 20277 3 \n",
3144 "\n",
3145 " util_sum \n",
3146 "Time \n",
3147 "0.000014 1601714 \n",
3148 "0.000229 1612418 \n",
3149 "0.000334 0 \n",
3150 "0.000982 164585 \n",
3160 "# Lets use the previous information to filter values of another DataFrame\n",
3161 "# Here we use the events reporting the task utilization signal\n",
3162 "df = ftrace.sched_load_avg_task.data_frame.ix[:,'comm':'util_sum']\n",
3163 "logging.info(\"Total events: %d\", len(df))\n",
3178 "06:45:37 INFO : Selected events: 19129\n"
3184 "<div>\n",
3185 "<table border=\"1\" class=\"dataframe\">\n",
3186 " <thead>\n",
3187 " <tr style=\"text-align: right;\">\n",
3188 " <th></th>\n",
3189 " <th>comm</th>\n",
3190 " <th>cpu</th>\n",
3191 " <th>load_avg</th>\n",
3192 " <th>load_sum</th>\n",
3193 " <th>period_contrib</th>\n",
3194 " <th>pid</th>\n",
3195 " <th>util_avg</th>\n",
3196 " <th>util_sum</th>\n",
3197 " </tr>\n",
3198 " <tr>\n",
3199 " <th>Time</th>\n",
3200 " <th></th>\n",
3201 " <th></th>\n",
3202 " <th></th>\n",
3203 " <th></th>\n",
3204 " <th></th>\n",
3205 " <th></th>\n",
3206 " <th></th>\n",
3207 " <th></th>\n",
3208 " </tr>\n",
3209 " </thead>\n",
3210 " <tbody>\n",
3211 " <tr>\n",
3212 " <th>10.277545</th>\n",
3213 " <td>chrome</td>\n",
3214 " <td>3</td>\n",
3215 " <td>5</td>\n",
3216 " <td>279939</td>\n",
3217 " <td>876</td>\n",
3218 " <td>20552</td>\n",
3219 " <td>0</td>\n",
3220 " <td>0</td>\n",
3221 " </tr>\n",
3222 " <tr>\n",
3223 " <th>10.278066</th>\n",
3224 " <td>Chrome_IOThread</td>\n",
3225 " <td>3</td>\n",
3226 " <td>8</td>\n",
3227 " <td>421520</td>\n",
3228 " <td>374</td>\n",
3229 " <td>20552</td>\n",
3230 " <td>3</td>\n",
3231 " <td>147580</td>\n",
3232 " </tr>\n",
3233 " <tr>\n",
3234 " <th>10.278226</th>\n",
3235 " <td>Chrome_IOThread</td>\n",
3236 " <td>3</td>\n",
3237 " <td>8</td>\n",
3238 " <td>421520</td>\n",
3239 " <td>501</td>\n",
3240 " <td>20552</td>\n",
3241 " <td>3</td>\n",
3242 " <td>147580</td>\n",
3243 " </tr>\n",
3244 " <tr>\n",
3245 " <th>10.279379</th>\n",
3246 " <td>Chrome_IOThread</td>\n",
3247 " <td>3</td>\n",
3248 " <td>15</td>\n",
3249 " <td>739012</td>\n",
3250 " <td>629</td>\n",
3251 " <td>20552</td>\n",
3252 " <td>9</td>\n",
3253 " <td>470942</td>\n",
3254 " </tr>\n",
3255 " <tr>\n",
3256 " <th>10.279542</th>\n",
3257 " <td>Chrome_IOThread</td>\n",
3258 " <td>3</td>\n",
3259 " <td>15</td>\n",
3260 " <td>739012</td>\n",
3261 " <td>765</td>\n",
3262 " <td>20552</td>\n",
3263 " <td>9</td>\n",
3264 " <td>470942</td>\n",
3265 " </tr>\n",
3266 " </tbody>\n",
3267 "</table>\n",
3271 " comm cpu load_avg load_sum period_contrib pid \\\n",
3272 "Time \n",
3273 "10.277545 chrome 3 5 279939 876 20552 \n",
3274 "10.278066 Chrome_IOThread 3 8 421520 374 20552 \n",
3275 "10.278226 Chrome_IOThread 3 8 421520 501 20552 \n",
3276 "10.279379 Chrome_IOThread 3 15 739012 629 20552 \n",
3277 "10.279542 Chrome_IOThread 3 15 739012 765 20552 \n",
3278 "\n",
3279 " util_avg util_sum \n",
3280 "Time \n",
3281 "10.277545 0 0 \n",
3282 "10.278066 3 147580 \n",
3283 "10.278226 3 147580 \n",
3284 "10.279379 9 470942 \n",
3294 "# Select only events for the task of interest\n",
3295 "select = (df.pid == most_switching_pid)\n",
3296 "\n",
3297 "task_events = df[select]\n",
3298 "logging.info(\"Selected events: %d\", len(task_events))\n",
3313 "06:47:30 INFO : Selected events: 2007\n"
3319 "<div>\n",
3320 "<table border=\"1\" class=\"dataframe\">\n",
3321 " <thead>\n",
3322 " <tr style=\"text-align: right;\">\n",
3323 " <th></th>\n",
3324 " <th>comm</th>\n",
3325 " <th>cpu</th>\n",
3326 " <th>load_avg</th>\n",
3327 " <th>load_sum</th>\n",
3328 " <th>period_contrib</th>\n",
3329 " <th>pid</th>\n",
3330 " <th>util_avg</th>\n",
3331 " <th>util_sum</th>\n",
3332 " </tr>\n",
3333 " <tr>\n",
3334 " <th>Time</th>\n",
3335 " <th></th>\n",
3336 " <th></th>\n",
3337 " <th></th>\n",
3338 " <th></th>\n",
3339 " <th></th>\n",
3340 " <th></th>\n",
3341 " <th></th>\n",
3342 " <th></th>\n",
3343 " </tr>\n",
3344 " </thead>\n",
3345 " <tbody>\n",
3346 " <tr>\n",
3347 " <th>17.112905</th>\n",
3348 " <td>Chrome_IOThread</td>\n",
3349 " <td>3</td>\n",
3350 " <td>989</td>\n",
3351 " <td>47260557</td>\n",
3352 " <td>91</td>\n",
3353 " <td>20552</td>\n",
3354 " <td>452</td>\n",
3355 " <td>21592551</td>\n",
3356 " </tr>\n",
3357 " <tr>\n",
3358 " <th>17.113017</th>\n",
3359 " <td>Chrome_IOThread</td>\n",
3360 " <td>3</td>\n",
3361 " <td>989</td>\n",
3362 " <td>47333261</td>\n",
3363 " <td>196</td>\n",
3364 " <td>20552</td>\n",
3365 " <td>452</td>\n",
3366 " <td>21592551</td>\n",
3367 " </tr>\n",
3368 " <tr>\n",
3369 " <th>17.113273</th>\n",
3370 " <td>Chrome_IOThread</td>\n",
3371 " <td>3</td>\n",
3372 " <td>989</td>\n",
3373 " <td>47571853</td>\n",
3374 " <td>429</td>\n",
3375 " <td>20552</td>\n",
3376 " <td>452</td>\n",
3377 " <td>21831143</td>\n",
3378 " </tr>\n",
3379 " <tr>\n",
3380 " <th>17.113552</th>\n",
3381 " <td>Chrome_IOThread</td>\n",
3382 " <td>3</td>\n",
3383 " <td>989</td>\n",
3384 " <td>47866765</td>\n",
3385 " <td>717</td>\n",
3386 " <td>20552</td>\n",
3387 " <td>452</td>\n",
3388 " <td>21831143</td>\n",
3389 " </tr>\n",
3390 " <tr>\n",
3391 " <th>17.114018</th>\n",
3392 " <td>Chrome_IOThread</td>\n",
3393 " <td>3</td>\n",
3394 " <td>990</td>\n",
3395 " <td>47295142</td>\n",
3396 " <td>143</td>\n",
3397 " <td>20552</td>\n",
3398 " <td>456</td>\n",
3399 " <td>21817410</td>\n",
3400 " </tr>\n",
3401 " </tbody>\n",
3402 "</table>\n",
3406 " comm cpu load_avg load_sum period_contrib pid \\\n",
3407 "Time \n",
3408 "17.112905 Chrome_IOThread 3 989 47260557 91 20552 \n",
3409 "17.113017 Chrome_IOThread 3 989 47333261 196 20552 \n",
3410 "17.113273 Chrome_IOThread 3 989 47571853 429 20552 \n",
3411 "17.113552 Chrome_IOThread 3 989 47866765 717 20552 \n",
3412 "17.114018 Chrome_IOThread 3 990 47295142 143 20552 \n",
3413 "\n",
3414 " util_avg util_sum \n",
3415 "Time \n",
3416 "17.112905 452 21592551 \n",
3417 "17.113017 452 21592551 \n",
3418 "17.113273 452 21831143 \n",
3419 "17.113552 452 21831143 \n",
3429 "# We can also compose a query using multiple conditions\n",
3430 … "select = (((task_events.cpu != 1) & (task_events.cpu != 2)) & ~(task_events.util_avg < 450))\n",
3431 "\n",
3432 "task_events = task_events[select]\n",
3433 "logging.info(\"Selected events: %d\", len(task_events))\n",
3454 "<div>\n",
3455 "<table border=\"1\" class=\"dataframe\">\n",
3456 " <thead>\n",
3457 " <tr style=\"text-align: right;\">\n",
3458 " <th></th>\n",
3459 " <th>comm</th>\n",
3460 " <th>cpu</th>\n",
3461 " <th>load_avg</th>\n",
3462 " <th>load_sum</th>\n",
3463 " <th>period_contrib</th>\n",
3464 " <th>pid</th>\n",
3465 " <th>util_avg</th>\n",
3466 " <th>util_sum</th>\n",
3467 " </tr>\n",
3468 " <tr>\n",
3469 " <th>Time</th>\n",
3470 " <th></th>\n",
3471 " <th></th>\n",
3472 " <th></th>\n",
3473 " <th></th>\n",
3474 " <th></th>\n",
3475 " <th></th>\n",
3476 " <th></th>\n",
3477 " <th></th>\n",
3478 " </tr>\n",
3479 " </thead>\n",
3480 " <tbody>\n",
3481 " <tr>\n",
3482 " <th>21.983876</th>\n",
3483 " <td>Chrome_IOThread</td>\n",
3484 " <td>3</td>\n",
3485 " <td>860</td>\n",
3486 " <td>41072776</td>\n",
3487 " <td>117</td>\n",
3488 " <td>20552</td>\n",
3489 " <td>452</td>\n",
3490 " <td>21610419</td>\n",
3491 " </tr>\n",
3492 " <tr>\n",
3493 " <th>21.983908</th>\n",
3494 " <td>Chrome_IOThread</td>\n",
3495 " <td>3</td>\n",
3496 " <td>860</td>\n",
3497 " <td>41109640</td>\n",
3498 " <td>153</td>\n",
3499 " <td>20552</td>\n",
3500 " <td>452</td>\n",
3501 " <td>21610419</td>\n",
3502 " </tr>\n",
3503 " <tr>\n",
3504 " <th>21.983928</th>\n",
3505 " <td>Chrome_IOThread</td>\n",
3506 " <td>3</td>\n",
3507 " <td>860</td>\n",
3508 " <td>41129096</td>\n",
3509 " <td>172</td>\n",
3510 " <td>20552</td>\n",
3511 " <td>452</td>\n",
3512 " <td>21629875</td>\n",
3513 " </tr>\n",
3514 " <tr>\n",
3515 " <th>21.983987</th>\n",
3516 " <td>Chrome_IOThread</td>\n",
3517 " <td>3</td>\n",
3518 " <td>860</td>\n",
3519 " <td>41188488</td>\n",
3520 " <td>230</td>\n",
3521 " <td>20552</td>\n",
3522 " <td>452</td>\n",
3523 " <td>21629875</td>\n",
3524 " </tr>\n",
3525 " <tr>\n",
3526 " <th>21.984067</th>\n",
3527 " <td>Chrome_IOThread</td>\n",
3528 " <td>3</td>\n",
3529 " <td>860</td>\n",
3530 " <td>41263240</td>\n",
3531 " <td>303</td>\n",
3532 " <td>20552</td>\n",
3533 " <td>452</td>\n",
3534 " <td>21704627</td>\n",
3535 " </tr>\n",
3536 " </tbody>\n",
3537 "</table>\n",
3541 " comm cpu load_avg load_sum period_contrib pid \\\n",
3542 "Time \n",
3543 "21.983876 Chrome_IOThread 3 860 41072776 117 20552 \n",
3544 "21.983908 Chrome_IOThread 3 860 41109640 153 20552 \n",
3545 "21.983928 Chrome_IOThread 3 860 41129096 172 20552 \n",
3546 "21.983987 Chrome_IOThread 3 860 41188488 230 20552 \n",
3547 "21.984067 Chrome_IOThread 3 860 41263240 303 20552 \n",
3548 "\n",
3549 " util_avg util_sum \n",
3550 "Time \n",
3551 "21.983876 452 21610419 \n",
3552 "21.983908 452 21610419 \n",
3553 "21.983928 452 21629875 \n",
3554 "21.983987 452 21629875 \n",
3564 "# Row selection is also possible, which in our case corresponds to limiting \n",
3565 "# the events on a specified time frame\n",
3587 "06:59:46 INFO : Selected events: 17\n"
3593 "<div>\n",
3594 "<table border=\"1\" class=\"dataframe\">\n",
3595 " <thead>\n",
3596 " <tr style=\"text-align: right;\">\n",
3597 " <th></th>\n",
3598 " <th>cpu</th>\n",
3599 " <th>frequency</th>\n",
3600 " </tr>\n",
3601 " <tr>\n",
3602 " <th>Time</th>\n",
3603 " <th></th>\n",
3604 " <th></th>\n",
3605 " </tr>\n",
3606 " </thead>\n",
3607 " <tbody>\n",
3608 " <tr>\n",
3609 " <th>21.215426</th>\n",
3610 " <td>0</td>\n",
3611 " <td>1001000</td>\n",
3612 " </tr>\n",
3613 " <tr>\n",
3614 " <th>21.265745</th>\n",
3615 " <td>0</td>\n",
3616 " <td>1404000</td>\n",
3617 " </tr>\n",
3618 " <tr>\n",
3619 " <th>21.412728</th>\n",
3620 " <td>0</td>\n",
3621 " <td>507000</td>\n",
3622 " </tr>\n",
3623 " <tr>\n",
3624 " <th>21.465761</th>\n",
3625 " <td>0</td>\n",
3626 " <td>1404000</td>\n",
3627 " </tr>\n",
3628 " <tr>\n",
3629 " <th>21.541466</th>\n",
3630 " <td>0</td>\n",
3631 " <td>507000</td>\n",
3632 " </tr>\n",
3633 " </tbody>\n",
3634 "</table>\n",
3638 " cpu frequency\n",
3639 "Time \n",
3640 "21.215426 0 1001000\n",
3641 "21.265745 0 1404000\n",
3642 "21.412728 0 507000\n",
3643 "21.465761 0 1404000\n",
3653 "# Let's make use of yet another DataFrame, let's look at the frequencies\n",
3654 "frequencies = ftrace.cpu_frequency.data_frame\n",
3655 "\n",
3656 "select = (frequencies.cpu == 0)\n",
3657 "frequencies = frequencies.ix[21.1:22.9,'cpu':'frequency'][select]\n",
3658 "logging.info(\"Selected events: %d\", len(frequencies))\n",
3673 "06:59:59 INFO : Selected events: 2024\n"
3679 "<div>\n",
3680 "<table border=\"1\" class=\"dataframe\">\n",
3681 " <thead>\n",
3682 " <tr style=\"text-align: right;\">\n",
3683 " <th></th>\n",
3684 " <th>comm</th>\n",
3685 " <th>cpulx_</th>\n",
3686 " <th>load_avg</th>\n",
3687 " <th>load_sum</th>\n",
3688 " <th>period_contrib</th>\n",
3689 " <th>pid</th>\n",
3690 " <th>util_avg</th>\n",
3691 " <th>util_sum</th>\n",
3692 " <th>cpu</th>\n",
3693 " <th>frequency</th>\n",
3694 " </tr>\n",
3695 " <tr>\n",
3696 " <th>Time</th>\n",
3697 " <th></th>\n",
3698 " <th></th>\n",
3699 " <th></th>\n",
3700 " <th></th>\n",
3701 " <th></th>\n",
3702 " <th></th>\n",
3703 " <th></th>\n",
3704 " <th></th>\n",
3705 " <th></th>\n",
3706 " <th></th>\n",
3707 " </tr>\n",
3708 " </thead>\n",
3709 " <tbody>\n",
3710 " <tr>\n",
3711 " <th>22.701783</th>\n",
3712 " <td>Chrome_IOThread</td>\n",
3713 " <td>3</td>\n",
3714 " <td>893</td>\n",
3715 " <td>42702053</td>\n",
3716 " <td>124</td>\n",
3717 " <td>20552</td>\n",
3718 " <td>457</td>\n",
3719 " <td>21865198</td>\n",
3720 " <td>NaN</td>\n",
3721 " <td>NaN</td>\n",
3722 " </tr>\n",
3723 " <tr>\n",
3724 " <th>22.701807</th>\n",
3725 " <td>Chrome_IOThread</td>\n",
3726 " <td>3</td>\n",
3727 " <td>893</td>\n",
3728 " <td>42727653</td>\n",
3729 " <td>149</td>\n",
3730 " <td>20552</td>\n",
3731 " <td>457</td>\n",
3732 " <td>21865198</td>\n",
3733 " <td>NaN</td>\n",
3734 " <td>NaN</td>\n",
3735 " </tr>\n",
3736 " <tr>\n",
3737 " <th>22.701824</th>\n",
3738 " <td>Chrome_IOThread</td>\n",
3739 " <td>3</td>\n",
3740 " <td>893</td>\n",
3741 " <td>42743013</td>\n",
3742 " <td>164</td>\n",
3743 " <td>20552</td>\n",
3744 " <td>457</td>\n",
3745 " <td>21880558</td>\n",
3746 " <td>NaN</td>\n",
3747 " <td>NaN</td>\n",
3748 " </tr>\n",
3749 " <tr>\n",
3750 " <th>22.768356</th>\n",
3751 " <td>NaN</td>\n",
3752 " <td>NaN</td>\n",
3753 " <td>NaN</td>\n",
3754 " <td>NaN</td>\n",
3755 " <td>NaN</td>\n",
3756 " <td>NaN</td>\n",
3757 " <td>NaN</td>\n",
3758 " <td>NaN</td>\n",
3759 " <td>0</td>\n",
3760 " <td>1183000</td>\n",
3761 " </tr>\n",
3762 " <tr>\n",
3763 " <th>22.818657</th>\n",
3764 " <td>NaN</td>\n",
3765 " <td>NaN</td>\n",
3766 " <td>NaN</td>\n",
3767 " <td>NaN</td>\n",
3768 " <td>NaN</td>\n",
3769 " <td>NaN</td>\n",
3770 " <td>NaN</td>\n",
3771 " <td>NaN</td>\n",
3772 " <td>0</td>\n",
3773 " <td>1404000</td>\n",
3774 " </tr>\n",
3775 " </tbody>\n",
3776 "</table>\n",
3780 " comm cpulx_ load_avg load_sum period_contrib pid \\\n",
3781 "Time \n",
3782 "22.701783 Chrome_IOThread 3 893 42702053 124 20552 \n",
3783 "22.701807 Chrome_IOThread 3 893 42727653 149 20552 \n",
3784 "22.701824 Chrome_IOThread 3 893 42743013 164 20552 \n",
3785 "22.768356 NaN NaN NaN NaN NaN NaN \n",
3786 "22.818657 NaN NaN NaN NaN NaN NaN \n",
3787 "\n",
3788 " util_avg util_sum cpu frequency \n",
3789 "Time \n",
3790 "22.701783 457 21865198 NaN NaN \n",
3791 "22.701807 457 21865198 NaN NaN \n",
3792 "22.701824 457 21880558 NaN NaN \n",
3793 "22.768356 NaN NaN 0 1183000 \n",
3803 "# Let's merge the task signal frame with the CPUs frequencies\n",
3804 "task_util_and_freq = task_events.join(\n",
3805 " frequencies,\n",
3806 " how='outer',\n",
3807 " lsuffix='lx_')#[['util_avg', 'frequency']]\n",
3808 "logging.info(\"Selected events: %d\", len(task_util_and_freq))\n",
3831 "# The new table has the union of events from the two original tables\n",
3845 "<div>\n",
3846 "<table border=\"1\" class=\"dataframe\">\n",
3847 " <thead>\n",
3848 " <tr style=\"text-align: right;\">\n",
3849 " <th></th>\n",
3850 " <th>comm</th>\n",
3851 " <th>cpulx_</th>\n",
3852 " <th>load_avg</th>\n",
3853 " <th>load_sum</th>\n",
3854 " <th>period_contrib</th>\n",
3855 " <th>pid</th>\n",
3856 " <th>util_avg</th>\n",
3857 " <th>util_sum</th>\n",
3858 " <th>cpu</th>\n",
3859 " <th>frequency</th>\n",
3860 " </tr>\n",
3861 " <tr>\n",
3862 " <th>Time</th>\n",
3863 " <th></th>\n",
3864 " <th></th>\n",
3865 " <th></th>\n",
3866 " <th></th>\n",
3867 " <th></th>\n",
3868 " <th></th>\n",
3869 " <th></th>\n",
3870 " <th></th>\n",
3871 " <th></th>\n",
3872 " <th></th>\n",
3873 " </tr>\n",
3874 " </thead>\n",
3875 " <tbody>\n",
3876 " <tr>\n",
3877 " <th>22.701783</th>\n",
3878 " <td>Chrome_IOThread</td>\n",
3879 " <td>3</td>\n",
3880 " <td>893</td>\n",
3881 " <td>42702053</td>\n",
3882 " <td>124</td>\n",
3883 " <td>20552</td>\n",
3884 " <td>457</td>\n",
3885 " <td>21865198</td>\n",
3886 " <td>0</td>\n",
3887 " <td>1404000</td>\n",
3888 " </tr>\n",
3889 " <tr>\n",
3890 " <th>22.701807</th>\n",
3891 " <td>Chrome_IOThread</td>\n",
3892 " <td>3</td>\n",
3893 " <td>893</td>\n",
3894 " <td>42727653</td>\n",
3895 " <td>149</td>\n",
3896 " <td>20552</td>\n",
3897 " <td>457</td>\n",
3898 " <td>21865198</td>\n",
3899 " <td>0</td>\n",
3900 " <td>1404000</td>\n",
3901 " </tr>\n",
3902 " <tr>\n",
3903 " <th>22.701824</th>\n",
3904 " <td>Chrome_IOThread</td>\n",
3905 " <td>3</td>\n",
3906 " <td>893</td>\n",
3907 " <td>42743013</td>\n",
3908 " <td>164</td>\n",
3909 " <td>20552</td>\n",
3910 " <td>457</td>\n",
3911 " <td>21880558</td>\n",
3912 " <td>0</td>\n",
3913 " <td>1404000</td>\n",
3914 " </tr>\n",
3915 " <tr>\n",
3916 " <th>22.768356</th>\n",
3917 " <td>Chrome_IOThread</td>\n",
3918 " <td>3</td>\n",
3919 " <td>893</td>\n",
3920 " <td>42743013</td>\n",
3921 " <td>164</td>\n",
3922 " <td>20552</td>\n",
3923 " <td>457</td>\n",
3924 " <td>21880558</td>\n",
3925 " <td>0</td>\n",
3926 " <td>1183000</td>\n",
3927 " </tr>\n",
3928 " <tr>\n",
3929 " <th>22.818657</th>\n",
3930 " <td>Chrome_IOThread</td>\n",
3931 " <td>3</td>\n",
3932 " <td>893</td>\n",
3933 " <td>42743013</td>\n",
3934 " <td>164</td>\n",
3935 " <td>20552</td>\n",
3936 " <td>457</td>\n",
3937 " <td>21880558</td>\n",
3938 " <td>0</td>\n",
3939 " <td>1404000</td>\n",
3940 " </tr>\n",
3941 " </tbody>\n",
3942 "</table>\n",
3946 " comm cpulx_ load_avg load_sum period_contrib pid \\\n",
3947 "Time \n",
3948 "22.701783 Chrome_IOThread 3 893 42702053 124 20552 \n",
3949 "22.701807 Chrome_IOThread 3 893 42727653 149 20552 \n",
3950 "22.701824 Chrome_IOThread 3 893 42743013 164 20552 \n",
3951 "22.768356 Chrome_IOThread 3 893 42743013 164 20552 \n",
3952 "22.818657 Chrome_IOThread 3 893 42743013 164 20552 \n",
3953 "\n",
3954 " util_avg util_sum cpu frequency \n",
3955 "Time \n",
3956 "22.701783 457 21865198 0 1404000 \n",
3957 "22.701807 457 21865198 0 1404000 \n",
3958 "22.701824 457 21880558 0 1404000 \n",
3959 "22.768356 457 21880558 0 1183000 \n",
3969 "# Let's propagate missing columns values...\n",
3970 "task_util_and_freq = task_util_and_freq.fillna(method='ffill')\n",
3982 "# NOTE: missing values at the beginning can be fixe as well\n",
3983 "# ...but that behind that demo!\n",
3984 "# LISA has a set of methods which provides a complete and realiable solutions\n",
4013 "Populating the interactive namespace from numpy and matplotlib\n"
4020 "WARNING: pylab import has clobbered these variables: ['e', 'select']\n",
4021 "`%matplotlib` prevents importing * from pylab and numpy\n"
4026 "# Enable generation of Notebook emebedded plots\n",
4049n+Lyykan+Mkkj8uInSFqQymZIOrw2/xLMzCybLGcajwKD8wOSCoD/A5wWEacB/5LifYBrgD7AJcBk\nSUrNHgFGRURvoLekXX2…
4071n+p75uT+Dff4XPjDzHKq816Can3sx1VD7iVQn8Or1aapG/AFU79N2wD/TZ1hzZt5E1VO8Ub3fv1N9\nWXE3i/9OPkz1RcZlVF+…
4081 "import matplotlib.gridspec as gridspec\n",
4082 "\n",
4083 "t_min = 21.5\n",
4084 "t_max = 23.0\n",
4085 "\n",
4086 "gs = gridspec.GridSpec(2, 1, height_ratios=[2,1]);\n",
4087 "\n",
4088 "plt.figure(figsize=(16, 8));\n",
4089 "plt.suptitle(\"Task Utilization vs Frequency\",\n",
4090 " y=.97, fontsize=16, horizontalalignment='center');\n",
4091 "\n",
4092 "# Plot Utilization\n",
4093 "data = task_util_and_freq['util_avg']\n",
4094 "axes = plt.subplot(gs[0,0]);\n",
4095 "data.plot(ax=axes, drawstyle='steps-post');\n",
4096 "axes.set_title('Task [{}] Utilization'.format(task_name));\n",
4097 "axes.set_ylabel('Utilization')\n",
4098 "axes.set_xlim(t_min, t_max);\n",
4099 "axes.grid(True);\n",
4100 "axes.set_xticklabels([])\n",
4101 "axes.set_xlabel('')\n",
4102 "\n",
4103 "\n",
4104 "# Plot Frequencies\n",
4105 "data = task_util_and_freq['frequency']/1000\n",
4106 "axes = plt.subplot(gs[1,0]);\n",
4107 "data.plot(ax=axes, drawstyle='steps-post');\n",
4108 "axes.set_title('Frequencies');\n",
4109 "axes.set_ylabel('MHz')\n",
4110 "axes.set_xlim(t_min, t_max);\n",
4118 "Plots can be much better with just a little bit of setup and using the proper APIs.<br>\n",
4140 "08:01:48 INFO : Table for 'cpu_frequency' events:\n"
4146 "<div>\n",
4147 "<table border=\"1\" class=\"dataframe\">\n",
4148 " <thead>\n",
4149 " <tr style=\"text-align: right;\">\n",
4150 " <th></th>\n",
4151 " <th>__comm</th>\n",
4152 " <th>__cpu</th>\n",
4153 " <th>__pid</th>\n",
4154 " <th>cpu</th>\n",
4155 " <th>frequency</th>\n",
4156 " <th>start</th>\n",
4157 " <th>delta</th>\n",
4158 " </tr>\n",
4159 " <tr>\n",
4160 " <th>Time</th>\n",
4161 " <th></th>\n",
4162 " <th></th>\n",
4163 " <th></th>\n",
4164 " <th></th>\n",
4165 " <th></th>\n",
4166 " <th></th>\n",
4167 " <th></th>\n",
4168 " </tr>\n",
4169 " </thead>\n",
4170 " <tbody>\n",
4171 " <tr>\n",
4172 " <th>0.661132</th>\n",
4173 " <td>kschedfreq:2</td>\n",
4174 " <td>2</td>\n",
4175 " <td>119</td>\n",
4176 " <td>2</td>\n",
4177 " <td>1807000</td>\n",
4178 " <td>0.661132</td>\n",
4179 " <td>0.000004</td>\n",
4180 " </tr>\n",
4181 " </tbody>\n",
4182 "</table>\n",
4186 " __comm __cpu __pid cpu frequency start delta\n",
4187 "Time \n",
4197 "# Consider the data frame for the frequency switching events\n",
4198 "logging.info(\"Table for 'cpu_frequency' events:\")\n",
4211n/PhSb2P27Nnq0qWL332LFy/W008/re3btys/P18nTpzw+1Ga8847T1FRv3zmUr16df3nP//RoUOH\ndPr0af361792Hqtfv77…
4221 "# It is possible to mix in the same plot multiple events\n",
4222 "\n",
4223 "# The LinePlot module requires to specify a list of signals to plot.\n",
4224 "# Each signal is defined as:\n",
4225 "# <event>:<column>\n",
4226 "# where:\n",
4227 "# <event> is one of the events collected from the trace by the FTrace object\n",
4228 "# <column> is one of the column of the previously defined event\n",
4229 "my_signals = [\n",
4230 " 'cpu_frequency:frequency',\n",
4231 "]\n",
4232 "\n",
4233 "# These two paramatere are passed to the LinePlot call as long with the\n",
4234 "# TRAPpy FTrace object\n",
4235 "trappy.LinePlot(\n",
4236 " \n",
4237 " # FTrace object\n",
4238 " ftrace,\n",
4239 " \n",
4240 " # Signals to be plotted\n",
4241 " signals=my_signals,\n",
4242 " \n",
4243 " # Generate one plot for each value of the specified column\n",
4244 " pivot='cpu',\n",
4245 " \n",
4246 " # Generate only plots which satisfy these filters\n",
4247 " filters = {\n",
4248 " # Column\n",
4249 " # | Values\n",
4250 " # | |\n",
4251 " 'cpu' : [0, 1]\n",
4252 " },\n",
4253 " \n",
4254 " # Formatting style\n",
4255 " drawstyle='steps-post',\n",
4256 " marker = '+'\n",
4257 "\n",
4278 "<table style=\"border-style: hidden;\">\n",
4279 "<tr>\n",
4280 …\"border-style: hidden;\"><div class=\"ilineplot\" id=\"fig_6b43ce4d5c7a47799d847802f8915e43\">\n",
4281 " <script>\n",
4282 " var ilp_req = require.config( {\n",
4283 "\n",
4284 " paths: {\n",
4285 … " \"dygraph-sync\": '/nbextensions/plotter_scripts/ILinePlot/synchronizer',\n",
4286 … " \"dygraph\": '/nbextensions/plotter_scripts/ILinePlot/dygraph-combined',\n",
4287 " \"ILinePlot\": '/nbextensions/plotter_scripts/ILinePlot/ILinePlot',\n",
4288 … " \"underscore\": '/nbextensions/plotter_scripts/ILinePlot/underscore-min',\n",
4289 " },\n",
4290 "\n",
4291 " shim: {\n",
4292 " \"dygraph-sync\": [\"dygraph\"],\n",
4293 " \"ILinePlot\": {\n",
4294 "\n",
4295 " \"deps\": [\"dygraph-sync\", \"dygraph\", \"underscore\"],\n",
4296 " \"exports\": \"ILinePlot\"\n",
4297 " }\n",
4298 " }\n",
4299 " });\n",
4300 " ilp_req([\"require\", \"ILinePlot\"], function() {\n",
4301 … " ILinePlot.generate('fig_6b43ce4d5c7a47799d847802f8915e43', '/nbextensions/');\n",
4302 " });\n",
4303 " </script>\n",
4304 " </div></td>\n",
4305 "</tr>\n",
4306 "<tr>\n",
4307 …><div style=\"text-align:right\" id=\"fig_6b43ce4d5c7a47799d847802f8915e43_legend\"></div></td>\n",
4308 "</tr>\n",
4321 "<table style=\"border-style: hidden;\">\n",
4322 "<tr>\n",
4323 …\"border-style: hidden;\"><div class=\"ilineplot\" id=\"fig_34331fb9b3114bc892e55571e87c4bff\">\n",
4324 " <script>\n",
4325 " var ilp_req = require.config( {\n",
4326 "\n",
4327 " paths: {\n",
4328 … " \"dygraph-sync\": '/nbextensions/plotter_scripts/ILinePlot/synchronizer',\n",
4329 … " \"dygraph\": '/nbextensions/plotter_scripts/ILinePlot/dygraph-combined',\n",
4330 " \"ILinePlot\": '/nbextensions/plotter_scripts/ILinePlot/ILinePlot',\n",
4331 … " \"underscore\": '/nbextensions/plotter_scripts/ILinePlot/underscore-min',\n",
4332 " },\n",
4333 "\n",
4334 " shim: {\n",
4335 " \"dygraph-sync\": [\"dygraph\"],\n",
4336 " \"ILinePlot\": {\n",
4337 "\n",
4338 " \"deps\": [\"dygraph-sync\", \"dygraph\", \"underscore\"],\n",
4339 " \"exports\": \"ILinePlot\"\n",
4340 " }\n",
4341 " }\n",
4342 " });\n",
4343 " ilp_req([\"require\", \"ILinePlot\"], function() {\n",
4344 … " ILinePlot.generate('fig_34331fb9b3114bc892e55571e87c4bff', '/nbextensions/');\n",
4345 " });\n",
4346 " </script>\n",
4347 " </div></td>\n",
4348 "</tr>\n",
4349 "<tr>\n",
4350 …><div style=\"text-align:right\" id=\"fig_34331fb9b3114bc892e55571e87c4bff_legend\"></div></td>\n",
4351 "</tr>\n",
4363 "# We can also produce interacive plots\n",
4364 "trappy.ILinePlot(\n",
4365 " ftrace, # TRAPpy RUN object\n",
4366 " signals=[\n",
4367 " 'cpu_frequency:frequency'\n",
4368 " ],\n",
4369 " drawstyle='steps-post',\n",
4370 " per_line=1,\n",
4371 "# sync_zoom=True,\n",
4372 "# group='UtilVsFrequency',\n",
4373 " marker = '+').view()\n",
4374 "\n",
4375 "trappy.ILinePlot(\n",
4376 " ftrace, # TRAPpy RUN object\n",
4377 " signals=[\n",
4378 " 'sched_load_avg_task:util_avg'\n",
4379 " ],\n",
4380 " filters={\n",
4381 " 'pid': [most_switching_pid]\n",
4382 " },\n",
4383 " drawstyle='steps-post',\n",
4384 " per_line=1,\n",
4385 "# sync_zoom=True,\n",
4386 "# group='UtilVsFrequency',\n",
4394 "You can find much more exaples of plotting in TRAPpy on the example\n",
4395 "notebook available on the GitHub:<br>\n",
4416 "<div>\n",
4417 "<table border=\"1\" class=\"dataframe\">\n",
4418 " <thead>\n",
4419 " <tr style=\"text-align: right;\">\n",
4420 " <th></th>\n",
4421 " <th>__comm</th>\n",
4422 " <th>__cpu</th>\n",
4423 " <th>__pid</th>\n",
4424 " <th>cpu</th>\n",
4425 " <th>frequency</th>\n",
4426 " <th>start</th>\n",
4427 " <th>delta</th>\n",
4428 " </tr>\n",
4429 " <tr>\n",
4430 " <th>Time</th>\n",
4431 " <th></th>\n",
4432 " <th></th>\n",
4433 " <th></th>\n",
4434 " <th></th>\n",
4435 " <th></th>\n",
4436 " <th></th>\n",
4437 " <th></th>\n",
4438 " </tr>\n",
4439 " </thead>\n",
4440 " <tbody>\n",
4441 " <tr>\n",
4442 " <th>0.661132</th>\n",
4443 " <td>kschedfreq:2</td>\n",
4444 " <td>2</td>\n",
4445 " <td>119</td>\n",
4446 " <td>2</td>\n",
4447 " <td>1807000</td>\n",
4448 " <td>0.661132</td>\n",
4449 " <td>0.000004</td>\n",
4450 " </tr>\n",
4451 " <tr>\n",
4452 " <th>0.661136</th>\n",
4453 " <td>kschedfreq:2</td>\n",
4454 " <td>2</td>\n",
4455 " <td>119</td>\n",
4456 " <td>3</td>\n",
4457 " <td>1807000</td>\n",
4458 " <td>0.661136</td>\n",
4459 " <td>0.051760</td>\n",
4460 " </tr>\n",
4461 " <tr>\n",
4462 " <th>0.712896</th>\n",
4463 " <td>kschedfreq:2</td>\n",
4464 " <td>2</td>\n",
4465 " <td>119</td>\n",
4466 " <td>2</td>\n",
4467 " <td>507000</td>\n",
4468 " <td>0.712896</td>\n",
4469 " <td>0.000009</td>\n",
4470 " </tr>\n",
4471 " <tr>\n",
4472 " <th>0.712905</th>\n",
4473 " <td>kschedfreq:2</td>\n",
4474 " <td>2</td>\n",
4475 " <td>119</td>\n",
4476 " <td>3</td>\n",
4477 " <td>507000</td>\n",
4478 " <td>0.712905</td>\n",
4479 " <td>0.473305</td>\n",
4480 " </tr>\n",
4481 " <tr>\n",
4482 " <th>1.186210</th>\n",
4483 " <td>sh</td>\n",
4484 " <td>0</td>\n",
4485 " <td>20289</td>\n",
4486 " <td>0</td>\n",
4487 " <td>507000</td>\n",
4488 " <td>1.186210</td>\n",
4489 " <td>0.000252</td>\n",
4490 " </tr>\n",
4491 " </tbody>\n",
4492 "</table>\n",
4496 " __comm __cpu __pid cpu frequency start delta\n",
4497 "Time \n",
4498 "0.661132 kschedfreq:2 2 119 2 1807000 0.661132 0.000004\n",
4499 "0.661136 kschedfreq:2 2 119 3 1807000 0.661136 0.051760\n",
4500 "0.712896 kschedfreq:2 2 119 2 507000 0.712896 0.000009\n",
4501 "0.712905 kschedfreq:2 2 119 3 507000 0.712905 0.473305\n",
4511 "df = ftrace.cpu_frequency.data_frame\n",
4525 "<div>\n",
4526 "<table border=\"1\" class=\"dataframe\">\n",
4527 " <thead>\n",
4528 " <tr style=\"text-align: right;\">\n",
4529 " <th></th>\n",
4530 " <th>__comm</th>\n",
4531 " <th>__cpu</th>\n",
4532 " <th>__pid</th>\n",
4533 " <th>cpu</th>\n",
4534 " <th>frequency</th>\n",
4535 " <th>start</th>\n",
4536 " <th>delta</th>\n",
4537 " </tr>\n",
4538 " <tr>\n",
4539 " <th>Time</th>\n",
4540 " <th></th>\n",
4541 " <th></th>\n",
4542 " <th></th>\n",
4543 " <th></th>\n",
4544 " <th></th>\n",
4545 " <th></th>\n",
4546 " <th></th>\n",
4547 " </tr>\n",
4548 " </thead>\n",
4549 " <tbody>\n",
4550 " <tr>\n",
4551 " <th>0.661132</th>\n",
4552 " <td>kschedfreq:2</td>\n",
4553 " <td>2</td>\n",
4554 " <td>119</td>\n",
4555 " <td>2</td>\n",
4556 " <td>1807000</td>\n",
4557 " <td>0.661132</td>\n",
4558 " <td>0.000004</td>\n",
4559 " </tr>\n",
4560 " <tr>\n",
4561 " <th>0.661136</th>\n",
4562 " <td>kschedfreq:2</td>\n",
4563 " <td>2</td>\n",
4564 " <td>119</td>\n",
4565 " <td>3</td>\n",
4566 " <td>1807000</td>\n",
4567 " <td>0.661136</td>\n",
4568 " <td>0.051760</td>\n",
4569 " </tr>\n",
4570 " <tr>\n",
4571 " <th>0.712896</th>\n",
4572 " <td>kschedfreq:2</td>\n",
4573 " <td>2</td>\n",
4574 " <td>119</td>\n",
4575 " <td>2</td>\n",
4576 " <td>507000</td>\n",
4577 " <td>0.712896</td>\n",
4578 " <td>0.000009</td>\n",
4579 " </tr>\n",
4580 " <tr>\n",
4581 " <th>0.712905</th>\n",
4582 " <td>kschedfreq:2</td>\n",
4583 " <td>2</td>\n",
4584 " <td>119</td>\n",
4585 " <td>3</td>\n",
4586 " <td>507000</td>\n",
4587 " <td>0.712905</td>\n",
4588 " <td>0.473305</td>\n",
4589 " </tr>\n",
4590 " <tr>\n",
4591 " <th>1.186210</th>\n",
4592 " <td>sh</td>\n",
4593 " <td>0</td>\n",
4594 " <td>20289</td>\n",
4595 " <td>0</td>\n",
4596 " <td>507000</td>\n",
4597 " <td>1.186210</td>\n",
4598 " <td>0.000252</td>\n",
4599 " </tr>\n",
4600 " </tbody>\n",
4601 "</table>\n",
4605 " __comm __cpu __pid cpu frequency start delta\n",
4606 "Time \n",
4607 "0.661132 kschedfreq:2 2 119 2 1807000 0.661132 0.000004\n",
4608 "0.661136 kschedfreq:2 2 119 3 1807000 0.661136 0.051760\n",
4609 "0.712896 kschedfreq:2 2 119 2 507000 0.712896 0.000009\n",
4610 "0.712905 kschedfreq:2 2 119 3 507000 0.712905 0.473305\n",
4620 "# Lets compute the residency on each OPP\n",
4621 "df.loc[:,'start'] = df.index\n",
4622 "df.loc[:,'delta'] = (df['start'] - df['start'].shift()).fillna(0).shift(-1)\n",
4637 "07:37:46 INFO : Residency time per OPP:\n"
4643 "<div>\n",
4644 "<table border=\"1\" class=\"dataframe\">\n",
4645 " <thead>\n",
4646 " <tr style=\"text-align: right;\">\n",
4647 " <th></th>\n",
4648 " <th>delta</th>\n",
4649 " </tr>\n",
4650 " <tr>\n",
4651 " <th>frequency</th>\n",
4652 " <th></th>\n",
4653 " </tr>\n",
4654 " </thead>\n",
4655 " <tbody>\n",
4656 " <tr>\n",
4657 " <th>507000</th>\n",
4658 " <td>11.141186</td>\n",
4659 " </tr>\n",
4660 " <tr>\n",
4661 " <th>702000</th>\n",
4662 " <td>1.832051</td>\n",
4663 " </tr>\n",
4664 " <tr>\n",
4665 " <th>1001000</th>\n",
4666 " <td>2.810101</td>\n",
4667 " </tr>\n",
4668 " <tr>\n",
4669 " <th>1105000</th>\n",
4670 " <td>1.160819</td>\n",
4671 " </tr>\n",
4672 " <tr>\n",
4673 " <th>1183000</th>\n",
4674 " <td>1.321498</td>\n",
4675 " </tr>\n",
4676 " <tr>\n",
4677 " <th>1209000</th>\n",
4678 " <td>2.794528</td>\n",
4679 " </tr>\n",
4680 " <tr>\n",
4681 " <th>1404000</th>\n",
4682 " <td>9.991687</td>\n",
4683 " </tr>\n",
4684 " <tr>\n",
4685 " <th>1612000</th>\n",
4686 " <td>0.506026</td>\n",
4687 " </tr>\n",
4688 " <tr>\n",
4689 " <th>1807000</th>\n",
4690 " <td>2.727041</td>\n",
4691 " </tr>\n",
4692 " </tbody>\n",
4693 "</table>\n",
4697 " delta\n",
4698 "frequency \n",
4699 "507000 11.141186\n",
4700 "702000 1.832051\n",
4701 "1001000 2.810101\n",
4702 "1105000 1.160819\n",
4703 "1183000 1.321498\n",
4704 "1209000 2.794528\n",
4705 "1404000 9.991687\n",
4706 "1612000 0.506026\n",
4716 "import pandas as pd\n",
4717 "\n",
4718 "# Now we can get group by frequency and sum the partional residency times\n",
4719 "freq_residencies = df.groupby('frequency')['delta'].sum()\n",
4720 "logging.info(\"Residency time per OPP:\")\n",
4721 "df = pd.DataFrame(freq_residencies)\n",
4736 "07:43:01 INFO : Freq 507000Hz : 32.5%\n",
4737 "07:43:01 INFO : Freq 702000Hz : 5.3%\n",
4738 "07:43:01 INFO : Freq 1001000Hz : 8.2%\n",
4739 "07:43:01 INFO : Freq 1105000Hz : 3.4%\n",
4740 "07:43:01 INFO : Freq 1183000Hz : 3.9%\n",
4741 "07:43:01 INFO : Freq 1209000Hz : 8.2%\n",
4742 "07:43:01 INFO : Freq 1404000Hz : 29.1%\n",
4743 "07:43:01 INFO : Freq 1612000Hz : 1.5%\n",
4744 "07:43:01 INFO : Freq 1807000Hz : 8.0%\n"
4749 "# Compute the relative residency time\n",
4750 "tot = sum(freq_residencies)\n",
4751 "#df = df.apply(lambda delta : 100*delta/tot)\n",
4752 "for f in freq_residencies.index:\n",
4775n/X1O+zuy6ZpNAAAABidsAgAAMDhhEwAAgMEJmwAAAFvIE57whDzjGc844Hx3utOd8t73vncTKto3\nYRMAAGDBPetZz8rjHve…
4785 "# Plot residency time\n",
4786 "fig, axes = plt.subplots(1, 1, figsize=(16, 5));\n",