Skip to content

v0.5.0

Compare
Choose a tag to compare
@YutaroHayakawa YutaroHayakawa released this 10 Dec 09:51
· 94 commits to master since this release

Release Highlight

  • Support experimental function graph tracing

Function Graph Tracing (Experimental)

Function graph tracing is a new tracing method similar to ftrace's function_graph tracer. It allows us to trace not only function calls, but also function returns. As a result, we can visualize the depth of the call like below. This feature is currently experimental. It can be removed or modified with breaking change. Please play around it and feel free to give us some feedback.

Note that it relies on a relatively new kernel feature (bpf_get_func_ip helper), it only works for Linux v5.15 or newer.

$ sudo ipft -m 0xdeadbeef -t function_graph
<skip...>
26956966578343       000 ip_output() {                                                   
26956966579469       000   nf_hook_slow() {                                              
26956966580830       000     selinux_ipv4_postroute() {                                  
26956966582109       000       selinux_ip_postroute() {                                  
26956966583280       000       }                                                         
26956966584417       000     }                                                           
26956966585569       000   }                                                             
26956966586827       000   ip_finish_output() {                                          
26956966594966       000     __cgroup_bpf_run_filter_skb() {                             
26956966596126       000     }                                                           
26956966597257       000     __ip_finish_output() {                                      
26956966598533       000       ip_finish_output2() {                                     
26956966599826       000         dev_queue_xmit() {                                      
26956966601079       000           __dev_queue_xmit() {                                  
26956966602573       000             netdev_core_pick_tx() {                             
26956966603819       000             }                                                   
26956966605195       000             validate_xmit_skb_list() {                          
26956966606320       000               validate_xmit_skb() {                             
26956966607635       000                 netif_skb_features() {                          
26956966608921       000                   passthru_features_check() {                   
26956966610149       000                   }                                             
26956966611460       000                   skb_network_protocol() {                      
26956966612565       000                   }                                             
26956966613636       000                 }                                               
26956966614933       000                 skb_csum_hwoffload_help() {                     
26956966616047       000                 }                                               
26956966617349       000                 validate_xmit_xfrm() {                          
26956966618506       000                 }                                               
26956966619576       000               }                                                 
26956966620746       000             }                                                   
26956966621909       000             dev_hard_start_xmit() {                             
26956966623503       000               skb_clone_tx_timestamp() {                        
26956966624695       000               }                                                 
26956966626115       000               skb_to_sgvec() {                                  
26956966627231       000                 __skb_to_sgvec() {                              
26956966628426       000                 }                                               
26956966629630       000               }                                                 
26956966631129       000             }                                                   
26956966632560       000           }                                                     
26956966633720       000         }                                                       
26956966634835       000       }                                                         
26956966635963       000     }                                                           
26956966637099       000   }                                                             
26956966638213       000 }