mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Page allocator moved from pools to IO loops.
The resource pool system is highly hierarchical and keeping spare pages in pools leads to unnecessarily complex memory management. Loops have a flat hiearchy, at least for now, and it is therefore much easier to keep care of pages, especially in cases of excessive virtual memory fragmentation.
This commit is contained in:
@@ -683,7 +683,7 @@ signal_init(void)
|
||||
* Parsing of command-line arguments
|
||||
*/
|
||||
|
||||
static char *opt_list = "B:c:dD:ps:P:u:g:flRh";
|
||||
static char *opt_list = "c:dD:ps:P:u:g:flRh";
|
||||
int parse_and_exit;
|
||||
char *bird_name;
|
||||
static char *use_user;
|
||||
@@ -704,7 +704,6 @@ display_help(void)
|
||||
fprintf(stderr,
|
||||
"\n"
|
||||
"Options: \n"
|
||||
" -B <block-size> Use 2^this number as memory allocation block size (default: 12)\n"
|
||||
" -c <config-file> Use given configuration file instead of\n"
|
||||
" " PATH_CONFIG_FILE "\n"
|
||||
" -d Enable debug messages and run bird in foreground\n"
|
||||
@@ -791,15 +790,12 @@ get_gid(const char *s)
|
||||
return gr->gr_gid;
|
||||
}
|
||||
|
||||
extern _Bool alloc_multipage;
|
||||
|
||||
static void
|
||||
parse_args(int argc, char **argv)
|
||||
{
|
||||
int config_changed = 0;
|
||||
int socket_changed = 0;
|
||||
int c;
|
||||
int bp;
|
||||
|
||||
bird_name = get_bird_name(argv[0], "bird");
|
||||
if (argc == 2)
|
||||
@@ -812,29 +808,6 @@ parse_args(int argc, char **argv)
|
||||
while ((c = getopt(argc, argv, opt_list)) >= 0)
|
||||
switch (c)
|
||||
{
|
||||
case 'B':
|
||||
bp = atoi(optarg);
|
||||
if (bp < 1)
|
||||
{
|
||||
fprintf(stderr, "Strange block size power %d\n\n", bp);
|
||||
display_usage();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((1 << bp) < page_size)
|
||||
{
|
||||
fprintf(stderr, "Requested block size %ld is lesser than page size %ld\n\n", (1L<<bp), page_size);
|
||||
display_usage();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((1L << bp) > page_size)
|
||||
{
|
||||
alloc_multipage = 1;
|
||||
page_size = (1L << bp);
|
||||
}
|
||||
|
||||
break;
|
||||
case 'c':
|
||||
config_name = optarg;
|
||||
config_changed = 1;
|
||||
|
||||
Reference in New Issue
Block a user