From 94ff78a7e3448a366288b14b674da8482f36afca Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Tue, 5 Apr 2022 11:02:07 +0300 Subject: [PATCH] bgpd: Track RTRLib memory allocations separately With fast `rpki reset`, seems that RTRLib related memory allocations leak the memory. Need to figure this out later. ``` $ vtysh -c 'show memory | include RPKI' BGP RPKI Cache server : 12 variable 576 12 576 BGP RPKI Cache server group : 0 48 0 1 56 BGP RPKI RTRLib : 849657 variable 34453096 849662 41293504 $ for x in $(seq 1 60); do vtysh -c 'con' -c 'rpki' -c 'rpki reset'; sleep 1; done $ vtysh -c 'show memory | include RPKI' BGP RPKI Cache server : 12 variable 576 12 576 BGP RPKI Cache server group : 0 48 0 1 56 BGP RPKI RTRLib : 849699 variable 69490616 849701 76323832 ``` Signed-off-by: Donatas Abraitis --- bgpd/bgp_rpki.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bgpd/bgp_rpki.c b/bgpd/bgp_rpki.c index c724b938d1..cbccc4423f 100644 --- a/bgpd/bgp_rpki.c +++ b/bgpd/bgp_rpki.c @@ -67,6 +67,7 @@ static struct thread *t_rpki; DEFINE_MTYPE_STATIC(BGPD, BGP_RPKI_CACHE, "BGP RPKI Cache server"); DEFINE_MTYPE_STATIC(BGPD, BGP_RPKI_CACHE_GROUP, "BGP RPKI Cache server group"); +DEFINE_MTYPE_STATIC(BGPD, BGP_RPKI_RTRLIB, "BGP RPKI RTRLib"); #define POLLING_PERIOD_DEFAULT 3600 #define EXPIRE_INTERVAL_DEFAULT 7200 @@ -156,17 +157,17 @@ static const struct route_map_rule_cmd route_match_rpki_cmd = { static void *malloc_wrapper(size_t size) { - return XMALLOC(MTYPE_BGP_RPKI_CACHE, size); + return XMALLOC(MTYPE_BGP_RPKI_RTRLIB, size); } static void *realloc_wrapper(void *ptr, size_t size) { - return XREALLOC(MTYPE_BGP_RPKI_CACHE, ptr, size); + return XREALLOC(MTYPE_BGP_RPKI_RTRLIB, ptr, size); } static void free_wrapper(void *ptr) { - XFREE(MTYPE_BGP_RPKI_CACHE, ptr); + XFREE(MTYPE_BGP_RPKI_RTRLIB, ptr); } static void init_tr_socket(struct cache *cache) -- 2.39.5