]> git.puffer.fish Git - mirror/frr.git/commit
bgpd: bgp process queue optimization
authorJorge Boncompte <jbonor@gmail.com>
Sat, 5 Aug 2017 10:59:05 +0000 (12:59 +0200)
committerJorge Boncompte <jbonor@gmail.com>
Thu, 17 Aug 2017 15:58:35 +0000 (17:58 +0200)
commitaac2483887eddfe782a31f03b5a30643793935f5
treed63f004370dcd3eb2405a40817750291c9c611c1
parent92375c917edb63c32d5441f6a264e73af5b2a2a0
bgpd: bgp process queue optimization

There are several code paths that dump nodes to the queue for route
processing in a loop. This patch tries to reduce memory allocations/freeing
(work item, list node) and thread scheduling overhead by batching the nodes
in a simple queue list.

In the past when route processing wasn't event driven (bgp_scan()), this used
to have a noticeable impact in table loading, convergence time and memory heap
fragmentation due to reduced alloc's/free's.

Signed-off-by: Jorge Boncompte <jbonor@gmail.com>
bgpd/bgp_route.c
bgpd/bgp_table.h