Ñò •˜¦_c@s,ddkZddkZeiieiddƒddkTddkTddkTgZhZ hZ gZ gZ dZ dagZdagZdagZdadadadadZdZdZd Zd Zd Zd „Zd „ZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)d„Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1d „Z2d!„Z3d"„Z4d#„Z5d$„Z6d%„Z7d&„Z8d'„Z9d(„Z:d)„Z;d*„Z<d+„Z=d,„Z>d-„Z?d.„Z@d/„ZAd0„ZBd1„ZCd2„ZDd3„ZEd4„ZFdS(5iÿÿÿÿNtPERF_EXEC_PATHs./scripts/python/Perf-Trace-Util/lib/Perf/Trace(t*iiiiiiicCs ||dS(Ng€„.A((tsrctdst((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyt diff_msec8sc Cstdjo|ditƒdjodSd|d|dt|dƒt|dƒdt|d|dƒt|d|dƒfGHdS( Nitdevs.%7s %5d %6d.%06dsec %12.3fmsec %12.3fmsectlentqueue_tiètxmit_ttfree_t(Rtfindt nsecs_secst nsecs_nsecsR(thunk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pytprint_transmit<s' s irq_entry(+%.3fmsec irq=%d:%s)s softirq_entry(+%.3fmsec)s napi_poll_exit(+%.3fmsec %s)s |s | |s7 |---netif_receive_skb(+%.3fmsec skb=%x len=%d)s' |---netif_rx(+%.3fmsec skb=%x)s8 | skb_copy_datagram_iovec(+%.3fmsec %d:%s)s0 | kfree_skb(+%.3fmsec location=%x)s& | consume_skb(+%.3fmsec)c Csd}|d}|dd}|dd}tdjoJxMtt|ƒƒD]/}||ditƒdjo d}PqLqLWnd}|djodSdt|ƒt|ƒd|fGHxÁtt|ƒƒD]­}tt|||dƒ||d ||dfGHtGH||d }x^tt|ƒƒD]J}||}|d d jo)t t||d ƒ|dfGHtGHq/q/WqÐWt t||dƒGHtGH|d } xitt| ƒƒD]U}| |} | ddjoIt t|| dƒ| dfGH|t| ƒdjo dGHqtGHq¹t t|| dƒ| d| dfGHd| i ƒjo0tGHtt|| dƒ| d| dfGHn}d| i ƒjoitGH| ddjo$tt|| dƒ| dfGHq | ddjott|| dƒGHq ntGHq¹WdS(Nitirq_listtcput irq_ent_ttnameis%d.%06dsec cpu=%diètirqt event_listteventtnetif_rxttimetskbaddrt sirq_ent_tt event_namet napi_polltevent_tRtRtcommtcomm_ttpidthandlet kfree_skbtlocationt consume_skb(RtrangeRR R R t PF_IRQ_ENTRYRtPF_JOINTt PF_NET_RXt PF_SOFT_ENTRYt PF_NAPI_POLLt PF_NET_RECVtkeyst PF_WJOINTt PF_CPY_DGRAMt PF_KFREE_SKBt PF_CONS_SKB( R t show_hunkRRtbase_ttitirq_event_listtjt irq_eventRR((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyt print_receiveTs~            cCsÞx­tttiƒƒD]–}|djoqnti|}|djo daq|djo daq|idddƒdjo|daq|djo daqqWtdjotdjodadandS(Nittxitrxsdev=itdebug( R%Rtsystargvtshow_txtshow_rxR RR:(R3targ((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyt trace_begin–s        c Csitid„ƒxtttƒƒD]y}t|}|t}|djot|ƒq#|djot|ƒq#|djot|ƒq#|djot|ƒq#|djot |ƒq#|djot |ƒq#|djot |ƒq#|d jot |ƒq#|d jot |ƒq#|d jot|ƒq#|d jot|ƒq#|d jot|ƒq#|djot|ƒq#q#Wto/x,tttƒƒD]}tt|ƒqºWnto4dGHx,tttƒƒD]}tt|ƒqõWntoMdGHdGHdttƒtfGHdttƒtfGHdttƒtfGHndS(NcSst|t|tƒS((tcmptEINFO_IDX_TIME(tatb((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyt®s tirq__softirq_exittirq__softirq_entrytirq__softirq_raisetirq__irq_handler_entrytirq__irq_handler_exittnapi__napi_polltnet__netif_receive_skbt net__netif_rxtskb__skb_copy_datagram_iovectnet__net_dev_queuetnet__net_dev_xmittskb__kfree_skbtskb__consume_skbsA dev len Qdisc netdevice freesdebug buffer statuss----------------------------s xmit Qdisc:remain:%d overflow:%ds$xmit netdevice:remain:%d overflow:%dsreceive:remain:%d overflow:%d(tall_event_listtsortR%RtEINFO_IDX_NAMEthandle_irq_softirq_exitthandle_irq_softirq_entrythandle_irq_softirq_raisethandle_irq_handler_entrythandle_irq_handler_exitthandle_napi_pollthandle_netif_receive_skbthandle_netif_rxthandle_skb_copy_datagram_iovecthandle_net_dev_queuethandle_net_dev_xmitthandle_kfree_skbthandle_consume_skbR>treceive_hunk_listR7R=t tx_free_listRR:t tx_queue_listtof_count_tx_queue_listt tx_xmit_listtof_count_tx_xmit_listt rx_skb_listtof_count_rx_skb_list(R3t event_infoR((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyt trace_end¬sb               c CsStdd|ƒdjodS|||t||ƒ|||f} ti| ƒdS(NRGtvectNET_RX(t symbol_strtnsecsRStappend( RtcontextRtsectnsecR Rt callchainRmRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRGãs$c CsStdd|ƒdjodS|||t||ƒ|||f} ti| ƒdS(NRGRmRn(RoRpRSRq( RRrRRsRtR RRuRmRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRFés$c CsStdd|ƒdjodS|||t||ƒ|||f} ti| ƒdS(NRGRmRn(RoRpRSRq( RRrRRsRtR RRuRmRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRHïs$c Cs8|||t||ƒ|||| f} ti| ƒdS(N(RpRSRq( RRrRRsRtR RRuRtirq_nameRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRIõs c Cs8|||t||ƒ|||| f} ti| ƒdS(N(RpRSRq( RRrRRsRtR RRuRtretRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRJûs'c Cs8|||t||ƒ|||| f} ti| ƒdS(N(RpRSRq( RRrRRsRtR RRutnapitdev_nameRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRKÿs c Cs;|||t||ƒ|||| | f } ti| ƒdS(N(RpRSRq( RRrRRsRtR RRuRtskblenRyRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRLsc Cs;|||t||ƒ|||| | f } ti| ƒdS(N(RpRSRq( RRrRRsRtR RRuRRzRyRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRM sc Cs;|||t||ƒ|||| | f } ti| ƒdS(N(RpRSRq( RRrRRsRtR RRuRRzRyRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyROsc Cs>|||t||ƒ|||| | | f } ti| ƒdS(N(RpRSRq( RRrRRsRtR RRuRRztrcRyRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRPsc Cs;|||t||ƒ|||| | f } ti| ƒdS(N(RpRSRq( RRrRRsRtR RRuRtprotocolR#Rk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRQsc Cs5|||t||ƒ|||f} ti| ƒdS(N(RpRSRq( RRrRRsRtR RRuRRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRR"s c Cs8|||t||ƒ|||| f} ti| ƒdS(N(RpRSRq( RRrRRsRtR RRuRRzRk((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyRN's c Csv|\}}}}}}}}|tiƒjogt|RR:RUtEINFO_IDX_CONTEXTt EINFO_IDX_CPURBt EINFO_IDX_PIDtEINFO_IDX_COMMRRR&R)R*R'R-R+R(R.R/R0R7R@RlRGRFRHRIRJRKRLRMRORPRQRRRNRYRZRXRWRVR[R]R\R_R`RaRbR^(((s5/usr/libexec/perf-core/scripts/python/netdev-times.pyt sŠ        B  7