Ńň •˜Ś_c @sţddkZddkZddklZddklZeiieiddƒeiidƒddkTddk Tddk Thdd 6Z d „Z d d1d „ƒYZ d d2d„ƒYZdd3d„ƒYZdd4d„ƒYZdd5d„ƒYZdd6d„ƒYZdd7d„ƒYZdd8d„ƒYZdefd„ƒYZdd9d„ƒYZd„Zd „Zd!„Zd"„Zd#„Zd$„Zd%„Zd&„Zd'„Zd(„Z d)„Z!d*„Z"d+„Z#d,„Z$d-„Z%d.„Z&d/„Z'd0„Z(dS(:i˙˙˙˙N(t defaultdict(tUserListtPERF_EXEC_PATHs./scripts/python/Perf-Trace-Util/lib/Perf/Traces-scripts/python/Perf-Trace-Util/lib/Perf/Trace(t*tidleicCsdt||fS(Ns%s:%d(tthreads(tpid((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt thread_namestRunqueueEventUnknowncBs eZed„ƒZd„ZRS(cCsdS(N(tNone(((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytcolor#scCsdS(Ntunknown((tself((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt__repr__'s(t__name__t __module__t staticmethodR R (((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR"stRunqueueEventSleepcBs)eZed„ƒZd„Zd„ZRS(cCsdS(Nii˙(iii˙((((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR +scCs ||_dS(N(tsleeper(R R((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt__init__/scCsdt|iƒS(Ns%s gone to sleep(RR(R ((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR 2s(RRRR RR (((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR*s tRunqueueEventWakeupcBs)eZed„ƒZd„Zd„ZRS(cCsdS(Ni˙i(i˙i˙i((((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR 6scCs ||_dS(N(twakee(R R((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR:scCsdt|iƒS(Ns %s woke up(RR(R ((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR =s(RRRR RR (((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR5s tRunqueueEventForkcBs)eZed„ƒZd„Zd„ZRS(cCsdS(Nii˙(ii˙i((((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR AscCs ||_dS(N(tchild(R R((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyREscCsdt|iƒS(Nsnew forked task %s(RR(R ((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR Hs(RRRR RR (((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR@s tRunqueueMigrateIncBs)eZed„ƒZd„Zd„ZRS(cCsdS(Niiđi˙(iiđi˙((((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR LscCs ||_dS(N(tnew(R R((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyRPscCsdt|iƒS(Nstask migrated in %s(RR(R ((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR Ss(RRRR RR (((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyRKs tRunqueueMigrateOutcBs)eZed„ƒZd„Zd„ZRS(cCsdS(Ni˙i(i˙ii˙((((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR WscCs ||_dS(N(told(R R((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR[scCsdt|iƒS(Nstask migrated out %s(RR(R ((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR ^s(RRRR RR (((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyRVs tRunqueueSnapshotcBseeZdgeƒd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z RS( icCst|ƒ|_||_dS(N(ttuplettaskstevent(R RR((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyRbscCsűtƒ}t|ƒdjo%||ijo||ijo|St|ƒdjot|ƒ}nt|iƒ}||ijo(t|ƒdjo|i|ƒqĐn%t|ƒdjo|i|ƒn||jo|i|ƒnt||ƒS(NtR(Rt taskStateRRtlisttremovetappendR(R tprevt prev_statetnextRt next_tasks((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt sched_switchfs # cCs]||ijo|Sg}|iD]}||jo ||q#q#~}t|t|ƒƒS(N(RRR(R Rt_[1]ttaskR(((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt migrate_out|s5cCsB||ijo||_|S|it|gƒ}t||ƒS(N(RRRR(R RRR(((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt __migrate_inƒs  cCs|i|t|ƒƒS(N(t_RunqueueSnapshot__migrate_inR(R R((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt migrate_in‹scCs|i|t|ƒƒS(N(R.R(R R((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytwake_upŽscCs|i|t|ƒƒS(N(R.R(R R((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt wake_up_new‘scCst|iƒdS(sD Provide the number of tasks on the runqueue. Don't count idlei(tlenR(R ((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytload”scCs#|iiƒ}||iƒ7}|S(N(RR torigin_tostring(R tret((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR ™s( RRRRR)R,R.R/R0R1R3R (((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyRas       t TimeSlicecBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCso||_||_||_g|_|dj o"|i|_|iiƒ|_ntt ƒ|_d|_dS(Ni( tstartR%tendt event_cpusR t total_loadtrqstcopyRR(R R7R%((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR s      cCs)|iƒ|iƒ}|i|7_dS(N(R3R:(R told_rqtnew_rqtdiff((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt__update_total_load­scCsq|ii|}|i|||ƒ}||jodS||i|<|i||ƒ|i|ƒ|g|_dS(N(R%R;R)t_TimeSlice__update_total_loadR$R9(R tts_listR%R&R'tcpuR=R>((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR)ąs   c CsĚ||jodS|ii|}|i|ƒ}||i|<|i||ƒ|ii|}|i|ƒ}||i|<|i||ƒ|i|ƒ||j o|ii|ƒn|ii|ƒdS(N(R%R;R,RAR/R$R9( R RBRtold_cputnew_cpuR=tout_rqR>tin_rq((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytmigrate˝s     cCs…|ii|}|o|i|ƒ}n|i|ƒ}||jodS||i|<|i||ƒ|i|ƒ|g|_dS(N(R%R;R1R0RAR$R9(R RBRRCtforkR=R>((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR0Đs   cCs||_t||ƒS(N(R8R6(R tt((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR'Ţs (RRRRAR)RHR0R'(((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR6Ÿs    t TimeSliceListcBs\eZgd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z RS( cCs ||_dS(N(tdata(R targ((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyRăscCsLt|iƒdjot|tddƒƒ}n|idi|ƒ}|S(Nii˙˙˙˙(R2RLR6R R'(R ttstslice((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytget_time_slicećscCsíd}t|iƒ}d}t}xĹ|o˝||jp||djo t}n||d}|i|i|jo*|i|i|jo|}|}q$n|i|i|jo |}q$|i|i|jo |}q$q$W|S(Nii˙˙˙˙ii(R2RLtTruetFalseR7R8(R RNR7R8tfoundt searchingti((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytfind_time_sliceís$ . cCs ||_dS(N(troot_win(R twin((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt set_root_winscCsë|i|ƒ}|djodS||}|i|}d|}|d|iiƒ7}|d|id |id df7}|d|i|id7}|d |iƒ7}x%|iD]}|d t|ƒ7}qšW|i i |ƒdS(Ni˙˙˙˙sCPU: %d sLast event : %s sTimestamp : %d.%06d i i ičsDuration : %6d us is Load = %d s%s iƚ;iƚ;i@B( RVR;RR R7R8R3RRRWtupdate_summary(R RCRJtidxRNtrqtraw((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt mouse_downs    & cCs˛|i|}|idjo|iƒt|iƒ}nd}tdd|ƒ}d||f}d}||ijo|iiƒ}n|i i ||||i |i ƒdS(Nii˙( R;R:R3tfloattintR R9RR RWtpaint_rectangle_zoneR7R8(R RORCR\t load_ratet red_powerR t top_color((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytupdate_rectangle_cpus cCsŽ|i|ƒ}|djodSxft|t|iƒƒD]L}|i|}|i|jodSx!|iD]}|i||ƒqlWq:WdS(Ni˙˙˙˙(RVtxrangeR2RLR7R;Re(R R7R8RUt timesliceRC((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt fill_zone*s   cCs9t|iƒdjodS|idi|idifS(Nii˙˙˙˙(ii(R2RLR7R8(R ((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytinterval7scCsB|id}d}x(|iD]}||jo |}qqW|S(Ni˙˙˙˙i(RLR;(R tlast_tstmax_cpuRC((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt nr_rectangles=s   ( RRRRPRVRYR^ReRhRiRl(((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyRKâs       tSchedEventProxycBs,eZd„Zd„Zd„Zd„ZRS(cCs"td„ƒ|_tƒ|_dS(NcSsdS(i˙˙˙˙((((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytHs(Rt current_tskRKt timeslices(R ((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyRGsc Csą|i|i} | djo5| |jo(d|iƒ|i||||fGHn|t|<|t|<||i|i<|ii|iƒƒ} | i|i||||iƒdS(sn Ensure the task we sched out this cpu is really the one we logged. Otherwise we may have missed traces i˙˙˙˙sDSched switch event rejected ts: %s cpu: %d prev: %s(%d) next: %s(%d)N(RoRCt ts_formatRRpRPRNR)( R theaderst prev_commtprev_pidt prev_prioR&t next_commtnext_pidt next_priot on_cpu_taskRN((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR)Ks%  cCs5|ii|iƒƒ}|i|i|||ƒdS(N(RpRPRNRH(R RrRtpriotorig_cputdest_cpuRN((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyRH]scCsG|djodS|ii|iƒƒ}|i|i|||ƒdS(Ni(RpRPRNR0(R RrtcommRtsuccesst target_cpuRIRN((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyR0as (RRRR)RHR0(((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyRmFs   cCs tƒadS(N(Rmtparser(((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt trace_beginhscCs5titƒ}ti}t|dƒ}|iƒdS(Nt Migration(twxtAppRRR€Rpt RootFrametMainLoop(tappRptframe((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyt trace_endls c CsdS(N(( t event_nametcontextt common_cput common_secst common_nsecst common_pidt common_commtcommon_callchainR}Rtruntimetvruntime((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_stat_runtimersc CsdS(N(( RŠR‹RŒRRŽRRR‘R}Rtdelay((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_stat_iowaitwsc CsdS(N(( RŠR‹RŒRRŽRRR‘R}RR•((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_stat_sleep|sc CsdS(N(( RŠR‹RŒRRŽRRR‘R}RR•((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_stat_waitsc CsdS(N(( RŠR‹RŒRRŽRRR‘t parent_commt parent_pidt child_commt child_pid((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_process_fork†sc CsdS(N(( RŠR‹RŒRRŽRRR‘R}RRz((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_process_wait‹sc CsdS(N(( RŠR‹RŒRRŽRRR‘R}RRz((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_process_exitsc CsdS(N(( RŠR‹RŒRRŽRRR‘R}RRz((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_process_free•sc Cs8t||||||ƒ} ti| | | | | ƒdS(N(t EventHeadersR€RH(RŠR‹RŒRRŽRRR‘R}RRzR{R|Rr((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_migrate_taskšs c CsAt||||||ƒ}ti||| | | | | |ƒdS(N(RĄR€R)(RŠR‹RŒRRŽRRR‘RsRtRuR&RvRwRxRr((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_switch˘s c Cs;t||||||ƒ} ti| || | | dƒdS(Ni(RĄR€R0(RŠR‹RŒRRŽRRR‘R}RRzR~RRr((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_wakeup_newŹs c Cs;t||||||ƒ} ti| || | | dƒdS(Ni(RĄR€R0(RŠR‹RŒRRŽRRR‘R}RRzR~RRr((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_wakeup´s c CsdS(N(( RŠR‹RŒRRŽRRR‘R}RRz((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_wait_taskźsc CsdS(N(( RŠR‹RŒRRŽRRR‘R5((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_kthread_stop_retÁsc CsdS(N(( RŠR‹RŒRRŽRRR‘R}R((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsched__sched_kthread_stopĆscCsdS(N((RŠR‹tevent_fields_dict((s8/usr/libexec/perf-core/scripts/python/sched-migration.pyttrace_unhandledËs(((((((((()tostsyst collectionsRRtpathR$tenvirontperf_trace_contexttCoretSchedGuiRRRRRRRRRR6RKRmRR‰R”R–R—R˜RRžRŸR R˘RŁR¤RĽRŚR§R¨RŞ(((s8/usr/libexec/perf-core/scripts/python/sched-migration.pytsN            >Cd"