summaryrefslogtreecommitdiff
path: root/lib/command_graph.c
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas.abraitis@gmail.com>2021-06-07 22:27:31 +0300
committerDonatas Abraitis <donatas.abraitis@gmail.com>2021-06-07 23:23:36 +0300
commit50a568368871a87fe5ef9a8d3479e0191d652b17 (patch)
tree1bc0d03c9d24c63f7cd28deafaf9aa5f4c4c9e4b /lib/command_graph.c
parentd532d1092e165dc9b7164039c0366c4f2856c9f9 (diff)
bgpd: Add tracepoints for bgp_dest_lock_node/bgp_dest_unlock_node
static inline functions cannot be probed, let's add USDT. This will help catching memory leaks regarding lock/unlock in the future, I believe. ``` global locks; probe begin { ansi_clear_screen(); println("Starting..."); } probe process("/usr/lib/frr/bgpd").mark("bgp_dest_lock") { prefix = @cast($arg1, "bgp_node")->p->u->val; locks[prefix]++; printf("---> %s %d (lock count: %d)\n", probefunc(), prefix, @cast($arg1, "bgp_node")->lock); } probe process("/usr/lib/frr/bgpd").mark("bgp_dest_unlock") { prefix = @cast($arg1, "bgp_node")->p->u->val; if (locks[prefix] > 0) { locks[prefix]--; } printf("<--- %s %d (lock count: %d)\n", probefunc(), prefix, @cast($arg1, "bgp_node")->lock); } ``` Some outputs: ``` <--- adj_free 94283113939304 (lock count: 2) <--- adj_free 94283114099240 (lock count: 3) <--- adj_free 94283114099752 (lock count: 3) ---> bgp_clear_route_table 94283113936008 (lock count: 4) ---> bgp_clear_route_table 94283113932664 (lock count: 4) ---> bgp_clear_route_table 94283114099240 (lock count: 3) ---> bgp_clear_route_table 94283114099752 (lock count: 3) <--- adj_free 94283113795608 (lock count: 2) <--- adj_free 94283113797112 (lock count: 2) <--- adj_free 94283113796456 (lock count: 2) ---> bgp_clear_route_table 94283113936008 (lock count: 5) ---> bgp_clear_route_table 94283113932664 (lock count: 5) ---> bgp_clear_route_table 94283114099240 (lock count: 4) ---> bgp_clear_route_table 94283114099752 (lock count: 4) ---> bgp_process 94283113936008 (lock count: 5) <--- bgp_clear_node_queue_del 94283113936008 (lock count: 6) ---> bgp_process 94283113932664 (lock count: 5) <--- bgp_clear_node_queue_del 94283113932664 (lock count: 6) ---> bgp_process 94283114099240 (lock count: 4) <--- bgp_clear_node_queue_del 94283114099240 (lock count: 5) ---> bgp_process 94283114099752 (lock count: 4) <--- bgp_clear_node_queue_del 94283114099752 (lock count: 5) <--- bgp_clear_node_queue_del 94283113936008 (lock count: 5) <--- bgp_clear_node_queue_del 94283113932664 (lock count: 5) <--- bgp_clear_node_queue_del 94283114099240 (lock count: 4) <--- bgp_clear_node_queue_del 94283114099752 (lock count: 4) <--- bgp_path_info_reap 94283113936008 (lock count: 4) <--- bgp_path_info_reap 94283113936008 (lock count: 3) ``` Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
Diffstat (limited to 'lib/command_graph.c')
0 files changed, 0 insertions, 0 deletions