add lock_pages option

This commit is contained in:
Brendan O'Dea 2004-07-12 08:21:45 +00:00
parent 6e1e4432fc
commit a4c14149f2
2 changed files with 18 additions and 8 deletions

View file

@ -4,7 +4,7 @@
// Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced
// vim: sw=8 ts=8
char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.13 2004-07-11 07:57:35 bodea Exp $";
char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.14 2004-07-12 08:21:45 bodea Exp $";
#include <arpa/inet.h>
#include <assert.h>
@ -111,6 +111,7 @@ struct config_descriptt config_values[] = {
CONFIG("cleanup_interval", cleanup_interval, INT),
CONFIG("multi_read_count", multi_read_count, INT),
CONFIG("scheduler_fifo", scheduler_fifo, BOOL),
CONFIG("lock_pages", lock_pages, BOOL),
CONFIG("icmp_rate", icmp_rate, INT),
CONFIG("cluster_address", cluster_address, IP),
CONFIG("cluster_interface", cluster_interface, STRING),
@ -2955,6 +2956,15 @@ int main(int argc, char *argv[])
signal(SIGQUIT, sigquit_handler);
signal(SIGCHLD, sigchild_handler);
// Prevent us from getting paged out
if (config->lock_pages)
{
if (!mlockall(MCL_CURRENT))
log(1, 0, 0, 0, "Locking pages into memory\n");
else
log(0, 0, 0, 0, "Can't lock pages: %s\n", strerror(errno));
}
alarm(1);
// Drop privileges here

View file

@ -1,5 +1,5 @@
// L2TPNS Global Stuff
// $Id: l2tpns.h,v 1.11 2004-07-08 16:54:35 bodea Exp $
// $Id: l2tpns.h,v 1.12 2004-07-12 08:21:45 bodea Exp $
#ifndef __L2TPNS_H__
#define __L2TPNS_H__
@ -413,9 +413,9 @@ struct configt
char old_plugins[64][MAXPLUGINS];
int next_tbf; // Next HTB id available to use
int scheduler_fifo; // If 1, will force scheduler to use SCHED_FIFO.
// Don't use this unless you have a dual processor machine!
int icmp_rate; // Max number of ICMP unreachable per second to send
int scheduler_fifo; // If the system has multiple CPUs, use FIFO scheduling policy for this process.
int lock_pages; // Lock pages into memory.
int icmp_rate; // Max number of ICMP unreachable per second to send>
u32 cluster_address; // Multicast address of cluster.
// Send to this address to have everyone hear.