dtrace in netbsd

Download Dtrace in netbsd

If you can't read please download the document

Upload: akachochin

Post on 14-Jun-2015

857 views

Category:

Technology


2 download

DESCRIPTION

Dtraceのソース読んだ概要です。まだまだ途中なのですが、経過報告がてらLTでしゃべろうかと。 (This slide is written in Japanese.I don't finish read all source code of dtrace,but I'd like to talk about my experience and share the knowledge.)

TRANSCRIPT

  • 1. Dtrace in NetBSD ()@akachochin

2. NetBSDdtrace**LT 3. NetBSDMFPMIPSARMARMTwitter@akachochin() 4. dtraceSunSolaris()DTrace NetBSD6.0x86dtraceFreeBSDMac OS X 5. 1dtrace OSdtrace(OracleWeb Page)dtrace 6. 2dtrace -l # dtrace -l | head -n 10ID PROVIDERMODULE FUNCTIONNAME 1 dtrace BEGIN 4fbt netbsdAES_GMAC_Final entry 5fbt netbsdAES_GMAC_Final return 7. 3writefbt:netbsd:sys_write:entry{ self->ts = timestamp;}fbt:netbsd:sys_write:return{@time[execname] = avg(timestamp self->ts);self->ts = 0;} 8. 4sys_write()sys_write()returndtrace 9. sys_write() 10. dtrace -l()fbtdtrace()dtrace_probe()dtracedtracedtrace 11. 1dtrace_probe()fbt_invop()dtrace_invop_add()...?dtrace_invop_add()external/cddl/osnet/dev/dtrace/i386(amd64)/dtrace_subr.c 12. 2i386dtrace_invop_add()dtrace_invop_hdlrfbt_invop()dtrace_invop()dtrace_invop_hdlr 13. 3dtrace_invop()dtracedtrace_invop_startdtrace_invop_startdtracedtrace_invop_jump_addr_dtrace_invop_jump_addrdtrace_invop_start() 14. 4dtrace_invop_jump_addrdtrace_invop_jump_addrdtracesys/arch/i386/i386/vector.S trap6 15. 5trap6 --> dtrace_invop_jump_addrdtrace_invop_start -->dtrace_invop_start dtrace_invop() -->dtrace_invop()dtrace_invop_add()dtrace_probe()trap6 16. trap6/VM()Intel 64 and IA-32 ArchitecturesSoftwareDevelopers Manual 1846Interrupt 6Invalid Opcode Exception (#UD) 17. 6trap6dtracedtracedtracedtrace 18. 7fbtfbt_enable() for (; fbt != NULL; fbt = fbt->fbtp_next) { *fbt->fbtp_patchpoint = fbt->fbtp_patchval; } 19. 8Write Protectionpatchpointpatchvalpatchvalpatchpointpatchpoint 20. 9fbtp_patchpointfbtp_patchvalfbt_provide_module_cb()push %ebpret( 21. 10FBT_PATCHVALpatchvalpatchpointpatchpoint 22. 11fbt_provide_module_cb()ksyms_mod_foreach()ksyms_mod_foreach()()(fbt_provide_module_cb()) 23. 12ELF.symtabhttp://www.skyfree.org/linux/references/ELF_Format.pdfElf32_Sym 24. dtracetrap6.symtab()dtracetrap6 25. m( )m