J'essaie de trouver la raison de ces écritures sur mon lecteur flash.systemtap: comment déterminer les événements et les arguments de la sonde
deathstar> while true
> do
> dmesg|grep sdc|grep WRITE
> sleep 3
> done
[17967.580179] kworker/u4:2(6863): WRITE block 20971648 on sdc1 (8 sectors)
[17967.580206] kworker/u4:2(6863): WRITE block 20971784 on sdc1 (8 sectors)
[17967.580214] kworker/u4:2(6863): WRITE block 20971832 on sdc1 (8 sectors)
[17967.580222] kworker/u4:2(6863): WRITE block 21037080 on sdc1 (8 sectors)
Je couru:
perf record -a
puis
rapport perf -s comm
pour obtenir
- 0.10% 0.10% kworker/u4:2 ▒
ext4_bio_write_page ▒
strnlen ▒
elv_rqhash_del.isra.5.part.6 ▒
find_get_pages ▒
find_get_pages_tag ▒
scsi_init_io ◆
ext4_mb_use_inode_pa ▒
cpuacct_charge ▒
i915_gem_retire_requests_ring ▒
cfq_insert_request ▒
i915_gem_free_request ▒
__wake_up_bit ▒
i915_gem_object_move_to_inactive ▒
bdi_wakeup_thread_delayed ▒
__test_set_page_writeback ▒
scsi_request_fn ▒
ext4_group_desc_csum ▒
__pagevec_lru_add_fn ▒
clear_page_dirty_for_io ▒
wb_writeback ▒
cfq_service_tree_add ▒
cache_grow ▒
__writeback_inodes_wb
Comment puis-je utiliser maintenant: ext4_bio_write_page dans les systemtap pour imprimer divers arguments .. Comment puis-je déterminer même ce que les args possibles? Je veux faire quelque chose comme:
> stap -v -e 'probe ext4.ext4_bio_write_page?? { printf("%s %d", ???
et extraire quelque chose d'intéressant comme buffer_size peut-être ou nom_fichier - je ne sais pas ce que spécifiquement (je veux passer par ces fonctions une par une et de regarder leurs signatures).
[s'il vous plaît noter que je suis tout à fait nouveau à ce que je puisse avoir fait des erreurs très stupides]
les docs mentionnent * man stapprobes * mais je n'ai pas pu trouver quoi que ce soit d'ext4 –
J'ai essayé quelque chose comme: stap -v -e 'sonde module ("ext4"). Function ("ext4_bio_write_page") {printf ("bonjour \ n"); } 'qui est inutile mais fonctionne - j'ai besoin des params pour ext4_bio_write_page –
stap -v -e' sonde module ("ext4"). function ("ext4_bio_write_page") {printf ("bonjour% s (% s) \ n", $$ vars, $$ parms); } 'affiche des informations utiles. –