mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Decoupling loops from threads to allow fixed thread count
On large configurations, too many threads would spawn with one thread per loop. Therefore, threads may now run multiple loops at once. The thread count is configurable and may be changed during run. All threads are spawned on startup. This change helps with memory bloating. BIRD filters need large temporary memory blocks to store their stack and also memory management keeps its hot page storage per-thread. Known bugs: * Thread autobalancing is not yet implemented. * Low latency loops are executed together with standard loops.
This commit is contained in:
@@ -16,6 +16,7 @@ struct pool;
|
||||
struct iface;
|
||||
struct birdsock;
|
||||
struct rfile;
|
||||
struct config;
|
||||
|
||||
/* main.c */
|
||||
|
||||
@@ -32,6 +33,8 @@ void cmd_reconfig_undo(void);
|
||||
void cmd_reconfig_status(void);
|
||||
void cmd_shutdown(void);
|
||||
void cmd_graceful_restart(void);
|
||||
void cmd_show_threads(int);
|
||||
void bird_thread_commit(struct config *new, struct config *old);
|
||||
|
||||
#define UNIX_DEFAULT_CONFIGURE_TIMEOUT 300
|
||||
|
||||
|
||||
Reference in New Issue
Block a user