diff --git a/bgpd/bgp_trace.h b/bgpd/bgp_trace.h index 14149b5139..f2e0eac0a1 100644 --- a/bgpd/bgp_trace.h +++ b/bgpd/bgp_trace.h @@ -247,6 +247,35 @@ TRACEPOINT_EVENT( ) TRACEPOINT_LOGLEVEL(frr_bgp, bgp_dest_unlock, TRACE_INFO) +/* + * peer_lock/peer_unlock + */ +TRACEPOINT_EVENT( + frr_bgp, + bgp_peer_lock, + TP_ARGS(struct peer *, peer, + const char *, name), + TP_FIELDS( + ctf_string(caller, name) + ctf_string(peer, PEER_HOSTNAME(peer)) + ctf_integer(unsigned int, count, peer->lock) + ) +) +TRACEPOINT_LOGLEVEL(frr_bgp, bgp_peer_lock, TRACE_INFO) + +TRACEPOINT_EVENT( + frr_bgp, + bgp_peer_unlock, + TP_ARGS(struct peer *, peer, + const char *, name), + TP_FIELDS( + ctf_string(caller, name) + ctf_string(peer, PEER_HOSTNAME(peer)) + ctf_integer(unsigned int, count, peer->lock) + ) +) +TRACEPOINT_LOGLEVEL(frr_bgp, bgp_peer_unlock, TRACE_INFO) + TRACEPOINT_EVENT( frr_bgp, evpn_mac_ip_zsend, diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 734e44f252..9b4aa38d7a 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -93,6 +93,7 @@ #include "bgpd/bgp_evpn_mh.h" #include "bgpd/bgp_mac.h" #include "bgpd/bgp_orr.h" +#include "bgp_trace.h" DEFINE_MTYPE_STATIC(BGPD, PEER_TX_SHUTDOWN_MSG, "Peer shutdown message (TX)"); DEFINE_MTYPE_STATIC(BGPD, BGP_EVPN_INFO, "BGP EVPN instance information"); @@ -1194,6 +1195,7 @@ static void peer_free(struct peer *peer) /* increase reference count on a struct peer */ struct peer *peer_lock_with_caller(const char *name, struct peer *peer) { + frrtrace(2, frr_bgp, bgp_peer_lock, peer, name); assert(peer && (peer->lock >= 0)); peer->lock++; @@ -1206,6 +1208,7 @@ struct peer *peer_lock_with_caller(const char *name, struct peer *peer) */ struct peer *peer_unlock_with_caller(const char *name, struct peer *peer) { + frrtrace(2, frr_bgp, bgp_peer_unlock, peer, name); assert(peer && (peer->lock > 0)); peer->lock--;