Ñò •˜¦_c @sÏddkZddkZddkZddkZddkZeiieiddƒddkTddk Tei dƒZ de _ d„Zd„Zd„Zd „Zd „Zd „Zd „Zd „ZdS(iÿÿÿÿNtPERF_EXEC_PATHs./scripts/python/Perf-Trace-Util/lib/Perf/Trace(t*s/dev/shm/perf.dbcCs#dGHtidƒtidƒdS(NsIn trace_begin: s× create table if not exists gen_events ( name text, symbol text, comm text, dso text );s¶ create table if not exists pebs_ll ( name text, symbol text, comm text, dso text, flags integer, ip integer, status integer, dse integer, dla integer, lat integer );(tcontexecute(((s?/usr/libexec/perf-core/scripts/python/event_analyzing_sample.pyt trace_begin&s  c Cs |d}|d}|d}|d}|d}|idƒo|d}nd}|idƒo|d}nd }t|||||ƒ}t|ƒdS( Ntattrtsampletraw_buftcommtev_nametdsot Unknown_dsotsymboltUnknown_symbol(thas_keyt create_eventt insert_db( t param_dictt event_attrRRRtnameR R tevent((s?/usr/libexec/perf-core/scripts/python/event_analyzing_sample.pyt process_eventFs     c Cs¾|itjo,tid|i|i|i|ifƒn|itjon|i dM_ |i dM_ tid|i|i|i|i|i |i |i |i |i |if ƒndS(Ns)insert into gen_events values(?, ?, ?, ?)Iÿÿÿÿÿÿÿs9insert into pebs_ll values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)(tev_typetEVTYPE_GENERICRRRR RR tEVTYPE_PEBS_LLtiptdlatflagststatustdsetlat(R((s?/usr/libexec/perf-core/scripts/python/event_analyzing_sample.pyR\s # cCs!dGHtƒtƒtiƒdS(NsIn trace_end: (tshow_general_eventst show_pebs_llRtclose(((s?/usr/libexec/perf-core/scripts/python/event_analyzing_sample.pyt trace_endgscCs$dtti|dƒdƒ}|S(Nt#ii(tinttmathtlog(tnumtsnum((s?/usr/libexec/perf-core/scripts/python/event_analyzing_sample.pytnum2symss c Csctidƒ}x1|D])}d|dGH|ddjodSqWdGHtidƒ}dddd d d fGHx2|D]*}d |d|d t|d ƒfGHqwWdddd d dfGHtidƒ}x2|D]*}d|d|d t|d ƒfGHqÔWdddd d dfGHtidƒ}x2|D]*}d|d|d t|d ƒfGHq1WdS(Nsselect count(*) from gen_eventss'There is %d records in gen_events tableisCStatistics about the general events grouped by thread/symbol/dso: sLselect comm, count(comm) from gen_events group by comm order by -count(comm)s %16s %8s %16s %sRtnumbert histogramt=i*s%16s %8d %sis %32s %8s %16s %sR i:sTselect symbol, count(symbol) from gen_events group by symbol order by -count(symbol)s%32s %8d %ss %40s %8s %16s %sR iJsHselect dso, count(dso) from gen_events group by dso order by -count(dso)s%40s %8d %s(RRR)(tcounttttcommqtrowtsymbolqtdsoq((s?/usr/libexec/perf-core/scripts/python/event_analyzing_sample.pyRxs,  ((cCsÀtidƒ}x1|D])}d|dGH|ddjodSqWdGHtidƒ}dddd d d fGHx2|D]*}d |d|d t|d ƒfGHqwWdddd d dfGHtidƒ}x2|D]*}d|d|d t|d ƒfGHqÔWtidƒ}dddd d dfGHx2|D]*}d|d|d t|d ƒfGHq1Wtidƒ}dddd d dfGHx2|D]*}d|d|d t|d ƒfGHqŽWdS(Nsselect count(*) from pebs_lls$There is %d records in pebs_ll tableisUStatistics about the PEBS Load Latency events grouped by thread/symbol/dse/latency: sIselect comm, count(comm) from pebs_ll group by comm order by -count(comm)s %16s %8s %16s %sRR*R+R,i*s%16s %8d %sis %32s %8s %16s %sR i:sQselect symbol, count(symbol) from pebs_ll group by symbol order by -count(symbol)s%32s %8d %ssEselect dse, count(dse) from pebs_ll group by dse order by -count(dse)Rs=select lat, count(lat) from pebs_ll group by lat order by lattlatency(RRR)(R-R.R/R0R1tdseqtlatq((s?/usr/libexec/perf-core/scripts/python/event_analyzing_sample.pyR šs6  (((cCsOdig}t|iƒƒD]#\}}|d|t|ƒfq~ƒGHdS(Nt s%s=%s(tjointsortedtitemststr(t event_nametcontexttevent_fields_dictt_[1]tktv((s?/usr/libexec/perf-core/scripts/python/event_analyzing_sample.pyttrace_unhandled¼s(tostsysR%tstructtsqlite3tpathtappendtenvirontperf_trace_contextt EventClasstconnectRtNonetisolation_levelRRRR"R)RR RA(((s?/usr/libexec/perf-core/scripts/python/event_analyzing_sample.pyts$           " "