f ddlZddlZddlmZGddej ZGddej ZGdd ej ZGd d ej Z Gd d e Z y)N)get_online_cpuscDeZdZdejfdejfgZy)_sample_period_union sample_period sample_freqN__name__ __module__ __qualname__ctc_ulong_fields_*/usr/lib/python3/dist-packages/bcc/perf.pyrrs! "**- + rrcDeZdZdejfdejfgZy)_wakeup_events_union wakeup_eventswakeup_watermarkN)r r r r c_uintrrrrrrs! ")),#RYY/ rrcxeZdZdejfdejfdejfdejfgZy)_bp_addr_unionbp_addr kprobe_func uprobe_pathconfig1Nr rrrrrs9BJJ' + +BJJ'  rrcxeZdZdejfdejfdejfdejfgZy) _bp_len_unionbp_len kprobe_addr probe_offsetconfig2Nr rrrrr's92::& +,BJJ'  rrceZdZGddejZdZdZdZdZ dZ dZ d Z d Z d Zejd d Zej"Zej$ZedZede dfdZy)Perfc eZdZgdZgdej fdej fdej fdefdej fdej fdej d fd ej d fd ej d fd ej d fd ej d fdej d fdej d fdej d fdej d fdej d fdej d fdej d fdej d fdej d fdej d fdej dfdej d fdej d fdej d fdej d fdej d fdej d fd ej d fd!ej d fd"ej d fd#ej d fd$ej d fd%ej d fd&ej d fd'ej d fd(ej d fd)ej d fd*ej d fd+ej d,fd-efd.ej fd/e fd0e fd1ej fd2ej fd3ej fd4ejfd5ej fd6ej fd7ejfd8ejfd9ej fd:ej fZ d;Zfd<ZxZS)=Perf.perf_event_attr)rrrrtypesizeconfigr sample_type read_formatdisabledrinheritpinned exclusive exclude_userexclude_kernel exclude_hv exclude_idlemmapcommfreq inherit_statenable_on_exectask watermark precise_ip mmap_data sample_id_all exclude_host exclude_guestexclude_callchain_kernelexclude_callchain_usermmap2 comm_exec use_clockidcontext_switchwrite_backward namespacesksymbol bpf_event aux_outputcgroup text_poke __reserved_1rbp_typerrbranch_sample_typesample_regs_usersample_stack_userclockidsample_regs_intr aux_watermarksample_max_stack __reserved_2aux_sample_size __reserved_3cXd|_|jDcgc]}|d c}|_|jjtjDcgc]}|d c}|jjt jDcgc]}|d c}|jjt jDcgc]}|d c}|jjtjDcgc]}|d c}ycc}wcc}wcc}wcc}wcc}w)Nxr)r)r ctype_fieldsextendrrrr)selfitems r__init__zPerf.perf_event_attr.__init__rs #DI=A]](KTa(KD%%%,,BVB_B_-`$d1g-`a%%,,BVB_B_-`$d1g-`a%%,,.BYBY-Z$d1g-Z[%%,,-BXBX-Y$d1g-YZ )L-`-`-Z-Ys D D D D"? D'ct|dr)||jvrtdj||tt j |||y)Nr^zoWarning: Setting field {} on perf_event_attr that isn't part of the ctype - {} won't make it to perf_event_open)hasattrr^printformatsuperr%perf_event_attr __setattr__)r`keyvalue __class__s rriz Perf.perf_event_attr.__setattr__zs`t^4DDUDU9UPWWX[]`ab$..A#uMr)r r r _anonymous_r rrrrrrc_intc_uint16rrbri __classcell__)rls@rrhr'1s 7+7+7"2::.701EF 7 ' 3 7 ' 3 7$RYY27#BIIq17"299a07%bii37(A67*299a87&ryy!47(A67 A.7  A.!7" A.#7$(A6%7&*299a8'7( A.)7*%bii3+7,&ryy!4-7.%bii3/70)"))Q7172(A6374)"))Q75764RYYB7782299a@97:!"))Q/;7<%bii3=7>' 15?7@*299a8A7B*299a8C7D&ryy!4E7F#BIIq1G7H%bii3I7J&ryy!4K7L"299a0M7N%bii3O7P(B7Q7R01EFS7T#BII.U7V*>:W7X)-8Y7Z.rzz:[7\,RZZ8]7^-bii8_7`#BHH-a7b,RZZ8c7d)"))4e7f,R[[9g7h(5i7j+BII6k7l(3m7r[NNrrhi*rrr=ii$@i$z libc.so.6T) use_errnoctjtjtj||j |dtj }|dkr3tj}t|tj||jtjk(r[tj|tjddkr3tj}t|tj|tj|tjddkr3tj}t|tj|y)Nrzcommon_pid == -17)r%syscallNR_PERF_EVENT_OPENr byrefpidPERF_FLAG_FD_CLOEXEC get_errnoOSErrorosstrerrorr(PERF_TYPE_TRACEPOINTioctlPERF_EVENT_IOC_SET_FILTERPERF_EVENT_IOC_ENABLE)cpuattrpfderrno_s r _open_for_cpuzPerf._open_for_cpusll4#:#:BHHTN#'88S"#'#<#<>7!#%fbkk&.ABB99 9 99zz#t'E'E"579:;%'\\^F")&"++f2E"FF::c4#=#=qAAE!#%fbkk&.ABBFrructj}||_||_||_tj |_|dkDrd|_||_nd|_d|_ tD]}tj||y)Nrri) r%rhr*ryr(PERF_SAMPLE_RAWr+r7rrrr) tpoint_idryptyper7rrs rperf_event_openzPerf.perf_event_opens}++-' ! #'#7#7 !8 !DI)-D&)*D&%,"*,6C**356rN)r r r r StructurerhrwPERF_TYPE_HARDWAREPERF_TYPE_SOFTWARErPERF_TYPE_HW_CACHErrzrrCDLLlibcrvr staticmethodrrrrrr%r%/sL NbllL N^!  !$.! $rww{d3,,   C  C( +-5I!" 6  6rr%) ctypesr r}utilsrUnionrrrrobjectr%rrrrs^ " 288  288  RXX  BHH Q66Q6r