From: Donatas Abraitis Date: Mon, 29 Jan 2024 14:21:21 +0000 (+0200) Subject: bgpd: Optimize memory usage for bgp_damp_config struct X-Git-Tag: base_10.0~62^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=48856741bd7583af2a37740e197e8a198df20b91;p=matthieu%2Ffrr.git bgpd: Optimize memory usage for bgp_damp_config struct ``` struct bgp_damp_config { unsigned int suppress_value; /* 0 4 */ unsigned int reuse_limit; /* 4 4 */ time_t max_suppress_time; /* 8 8 */ time_t half_life; /* 16 8 */ unsigned int reuse_list_size; /* 24 4 */ unsigned int reuse_index_size; /* 28 4 */ unsigned int ceiling; /* 32 4 */ unsigned int decay_rate_per_tick; /* 36 4 */ unsigned int decay_array_size; /* 40 4 */ unsigned int reuse_scale_factor; /* 44 4 */ double scale_factor; /* 48 8 */ double * decay_array; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int * reuse_index; /* 64 8 */ struct bgp_damp_info * * reuse_list; /* 72 8 */ int reuse_offset; /* 80 4 */ safi_t safi; /* 84 4 */ struct bgp_damp_info * no_reuse_list; /* 88 8 */ struct event * t_reuse; /* 96 8 */ afi_t afi; /* 104 4 */ /* size: 112, cachelines: 2, members: 19 */ /* padding: 4 */ /* last cacheline: 48 bytes */ }; /* saved 8 bytes! */ ``` Signed-off-by: Donatas Abraitis --- diff --git a/bgpd/bgp_damp.h b/bgpd/bgp_damp.h index 4aff52c09c..6033c34bfd 100644 --- a/bgpd/bgp_damp.h +++ b/bgpd/bgp_damp.h @@ -74,8 +74,8 @@ struct bgp_damp_config { unsigned int ceiling; /* Max value a penalty can attain */ unsigned int decay_rate_per_tick; /* Calculated from half-life */ unsigned int decay_array_size; /* Calculated using config parameters */ - double scale_factor; unsigned int reuse_scale_factor; + double scale_factor; /* Decay array per-set based. */ double *decay_array; @@ -86,6 +86,7 @@ struct bgp_damp_config { /* Reuse list array per-set based. */ struct bgp_damp_info **reuse_list; int reuse_offset; + safi_t safi; /* All dampening information which is not on reuse list. */ struct bgp_damp_info *no_reuse_list; @@ -94,7 +95,6 @@ struct bgp_damp_config { struct event *t_reuse; afi_t afi; - safi_t safi; }; #define BGP_DAMP_NONE 0