bgpd: Add lttng tracepoints for peer_lock/peer_unlock

```
[23:00:31.231255114] (+0.091943221) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 3 }
[23:00:31.231278048] (+0.000022934) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 4 }
[23:00:31.231280853] (+0.000002805) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 5 }
[23:00:31.231285742] (+0.000004889) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 6 }
[23:00:31.231287526] (+0.000001784) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 7 }
[23:00:31.231291694] (+0.000004168) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 8 }
[23:00:31.231295751] (+0.000004057) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 9 }
[23:00:31.231299599] (+0.000003848) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 10 }
[23:00:31.231304137] (+0.000004538) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 11 }
[23:00:31.231308255] (+0.000004118) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 12 }
[23:00:31.231312182] (+0.000003927) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 13 }
[23:00:31.231316300] (+0.000004118) donatas-pc frr_bgp:bgp_peer_lock: { cpu_id = 18 }, { caller = "bgp_path_info_add", peer = "10.0.0.3", count = 14 }
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
Donatas Abraitis 2022-12-22 23:07:58 +02:00
parent cb8d1c5598
commit aa50b41a23
2 changed files with 32 additions and 0 deletions

View File

@ -247,6 +247,35 @@ TRACEPOINT_EVENT(
) )
TRACEPOINT_LOGLEVEL(frr_bgp, bgp_dest_unlock, TRACE_INFO) 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( TRACEPOINT_EVENT(
frr_bgp, frr_bgp,
evpn_mac_ip_zsend, evpn_mac_ip_zsend,

View File

@ -93,6 +93,7 @@
#include "bgpd/bgp_evpn_mh.h" #include "bgpd/bgp_evpn_mh.h"
#include "bgpd/bgp_mac.h" #include "bgpd/bgp_mac.h"
#include "bgpd/bgp_orr.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, PEER_TX_SHUTDOWN_MSG, "Peer shutdown message (TX)");
DEFINE_MTYPE_STATIC(BGPD, BGP_EVPN_INFO, "BGP EVPN instance information"); 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 */ /* increase reference count on a struct peer */
struct peer *peer_lock_with_caller(const char *name, struct peer *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)); assert(peer && (peer->lock >= 0));
peer->lock++; 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) 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)); assert(peer && (peer->lock > 0));
peer->lock--; peer->lock--;