From 18aea50ca77d8a5931ba4fdb0ad507e12c0f6f7c Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Sat, 2 Sep 2017 16:37:21 +0200 Subject: [*] Continue splitting #defines to clientconfig.h etc. --- src/client/client.c | 1 + src/clientconfig.h | 36 ++++++++++++++++++++++++++++++++++++ src/config.h | 31 ------------------------------- src/fuse/connection.c | 2 +- src/kernel/blk.c | 1 + src/kernel/core.c | 1 + src/kernel/net.c | 1 + src/server/altservers.c | 2 +- src/server/globals.h | 2 +- src/server/serverconfig.h | 39 --------------------------------------- src/serverconfig.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 11 files changed, 89 insertions(+), 73 deletions(-) create mode 100644 src/clientconfig.h delete mode 100644 src/server/serverconfig.h create mode 100644 src/serverconfig.h diff --git a/src/client/client.c b/src/client/client.c index fb1110d..685dbfd 100644 --- a/src/client/client.c +++ b/src/client/client.c @@ -18,6 +18,7 @@ * */ +#include "../clientconfig.h" #include "../types.h" #include "../version.h" diff --git a/src/clientconfig.h b/src/clientconfig.h new file mode 100644 index 0000000..f35f673 --- /dev/null +++ b/src/clientconfig.h @@ -0,0 +1,36 @@ +#ifndef _CLIENTCONFIG_H_ +#define _CLIENTCONFIG_H_ + +// Which is the minimum protocol version the client expects from the server +#define MIN_SUPPORTED_SERVER 2 + +// in seconds if not stated otherwise (MS = milliseconds) +#define SOCKET_TIMEOUT_CLIENT_DATA 2 +#define SOCKET_TIMEOUT_CLIENT_DISCOVERY 1 + +#define RTT_THRESHOLD_FACTOR(us) (((us) * 2) / 3) // 2/3 = current to best must be 33% worse +#define RTT_ABSOLUTE_THRESHOLD (80000) // Or 80ms worse +#define RTT_UNREACHABLE 0x7FFFFFFul // Use this value for timeout/unreachable as RTT. Don't set too high or you might get overflows. 0x7FFFFFF = 134 seconds +// This must be a power of two: +#define RTT_BLOCK_SIZE 4096 + +#define STARTUP_MODE_DURATION 30 +// Interval of several repeating tasks (in seconds) +#define TIMER_INTERVAL_PROBE_STARTUP 4 +#define TIMER_INTERVAL_PROBE_NORMAL 22 +#define TIMER_INTERVAL_PROBE_PANIC 2 +#define TIMER_INTERVAL_KEEPALIVE_PACKET 6 + +// Expect a keepalive response every X seconds +#define SOCKET_KEEPALIVE_TIMEOUT 8 + +// Number of unsuccessful alt_server probes before read errors are reported to the block layer +// (ALL servers will be probed this many times) +// Set to 0 to disable +#define PROBE_COUNT_TIMEOUT 0 + +// ++ Kernel module ++ +#define DEFAULT_READ_AHEAD_KB 512 +#define NUMBER_DEVICES 8 + +#endif diff --git a/src/config.h b/src/config.h index 6a03069..9f8ee10 100644 --- a/src/config.h +++ b/src/config.h @@ -33,41 +33,10 @@ // so either the client or server can run in compatibility mode, or they can // cancel the connection right away if the protocol has changed too much #define PROTOCOL_VERSION 2 -// Which is the minimum protocol version the client expects from the server -#define MIN_SUPPORTED_SERVER 2 -// Length of comment fields (for alt server etc.) -#define COMMENT_LENGTH 120 - -// in seconds if not stated otherwise (MS = milliseconds) -#define SOCKET_TIMEOUT_CLIENT_DATA 2 -#define SOCKET_TIMEOUT_CLIENT_DISCOVERY 1 #define NUMBER_SERVERS 8 // Number of alt servers per image/device -#define RTT_THRESHOLD_FACTOR(us) (((us) * 2) / 3) // 2/3 = current to best must be 33% worse -#define RTT_ABSOLUTE_THRESHOLD (80000) // Or 80ms worse -#define RTT_UNREACHABLE 0x7FFFFFFul // Use this value for timeout/unreachable as RTT. Don't set too high or you might get overflows. 0x7FFFFFF = 134 seconds -// This must be a power of two: -#define RTT_BLOCK_SIZE 4096 - -#define STARTUP_MODE_DURATION 30 -// Interval of several repeating tasks (in seconds) -#define TIMER_INTERVAL_PROBE_STARTUP 4 -#define TIMER_INTERVAL_PROBE_NORMAL 22 -#define TIMER_INTERVAL_PROBE_PANIC 2 -#define TIMER_INTERVAL_KEEPALIVE_PACKET 6 - -// Expect a keepalive response every X seconds -#define SOCKET_KEEPALIVE_TIMEOUT 8 - -// Number of unsuccessful alt_server probes before read errors are reported to the block layer -// (ALL servers will be probed this many times) -// Set to 0 to disable -#define PROBE_COUNT_TIMEOUT 0 // +++++ Block Device +++++ -#define KERNEL_SECTOR_SIZE 512 #define DNBD3_BLOCK_SIZE ((uint64_t)4096) // NEVER CHANGE THIS OR THE WORLD WILL END! -#define NUMBER_DEVICES 8 -#define DEFAULT_READ_AHEAD_KB 512 #endif /* CONFIG_H_ */ diff --git a/src/fuse/connection.c b/src/fuse/connection.c index 2fba1c7..3f142c7 100644 --- a/src/fuse/connection.c +++ b/src/fuse/connection.c @@ -1,6 +1,6 @@ #include "connection.h" #include "helper.h" -#include "../config.h" +#include "../clientconfig.h" #include "../shared/protocol.h" #include "../shared/fdsignal.h" #include "../shared/sockhelper.h" diff --git a/src/kernel/blk.c b/src/kernel/blk.c index 91fb8c7..7a2b6e9 100644 --- a/src/kernel/blk.c +++ b/src/kernel/blk.c @@ -18,6 +18,7 @@ * */ +#include "clientconfig.h" #include "blk.h" #include "net.h" #include "sysfs.h" diff --git a/src/kernel/core.c b/src/kernel/core.c index 4b4b093..69a2540 100644 --- a/src/kernel/core.c +++ b/src/kernel/core.c @@ -18,6 +18,7 @@ * */ +#include "clientconfig.h" #include "dnbd3.h" #include "blk.h" diff --git a/src/kernel/net.c b/src/kernel/net.c index 58b4664..b4c2331 100644 --- a/src/kernel/net.c +++ b/src/kernel/net.c @@ -18,6 +18,7 @@ * */ +#include "clientconfig.h" #include "net.h" #include "blk.h" #include "utils.h" diff --git a/src/server/altservers.c b/src/server/altservers.c index 12450aa..4c87344 100644 --- a/src/server/altservers.c +++ b/src/server/altservers.c @@ -3,7 +3,7 @@ #include "helper.h" #include "image.h" #include "../shared/protocol.h" -#include "serverconfig.h" +#include "../serverconfig.h" #include #include diff --git a/src/server/globals.h b/src/server/globals.h index cc3b6be..31b7741 100644 --- a/src/server/globals.h +++ b/src/server/globals.h @@ -3,7 +3,7 @@ #include "../types.h" #include "../shared/fdsignal.h" -#include "serverconfig.h" +#include "../serverconfig.h" #include #include #include diff --git a/src/server/serverconfig.h b/src/server/serverconfig.h deleted file mode 100644 index efb8476..0000000 --- a/src/server/serverconfig.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef _SERVERCONFIG_H_ -#define _SERVERCONFIG_H_ - -#include "../config.h" - -// +++++ Performance related -#define SERVER_MAX_CLIENTS 4000 -#define SERVER_MAX_IMAGES 5000 -#define SERVER_MAX_ALTS 250 -#define SERVER_MAX_UPLINK_FAILS 8 // How many times may a server fail until it is considered bad -#define SERVER_BAD_UPLINK_IGNORE 120 // How many seconds is a server considered bad? -#define SERVER_MAX_UPLINK_QUEUE 1500 // Maximum number of queued requests per uplink -#define SERVER_UPLINK_QUEUELEN_THRES 900 // Threshold where we start dropping incoming clients -#define SERVER_MAX_PENDING_ALT_CHECKS 50 -#define SERVER_CACHE_MAP_SAVE_INTERVAL 90 - -// Time in ms to wait for a read/write call to complete on an uplink connection -#define SOCKET_TIMEOUT_UPLINK 5000 -// Same for client connections. Be a bit more liberal here -#define SOCKET_TIMEOUT_CLIENT 15000 -// When waiting for the next request header from client, allow the timeout from above -// to expire this many times. This allows for greater idle times without also increasing -// the timeout for cases where we wait for additional data or are actively sending a reply -#define SOCKET_TIMEOUT_CLIENT_RETRIES 3 - -// +++++ Other magic constants -#define SERVER_RTT_PROBES 5 -#define SERVER_RTT_DELAY_INIT 5 -#define SERVER_RTT_DELAY_MAX 45 -#define SERVER_RTT_DELAY_FAILED 180 - -#define SERVER_REMOTE_IMAGE_CHECK_CACHETIME 120 // 2 minutes -#define SERVER_MAX_PROXY_IMAGE_SIZE 100000000000LL // 100GB - -// Which is the minimum protocol version the server expects from the client -#define MIN_SUPPORTED_CLIENT 2 - -#endif - diff --git a/src/serverconfig.h b/src/serverconfig.h new file mode 100644 index 0000000..ea772b9 --- /dev/null +++ b/src/serverconfig.h @@ -0,0 +1,46 @@ +#ifndef _SERVERCONFIG_H_ +#define _SERVERCONFIG_H_ + +#include "config.h" + +// +++++ Performance related +#define SERVER_MAX_CLIENTS 4000 +#define SERVER_MAX_IMAGES 5000 +#define SERVER_MAX_ALTS 250 +#define SERVER_MAX_UPLINK_FAILS 8 // How many times may a server fail until it is considered bad +#define SERVER_BAD_UPLINK_IGNORE 120 // How many seconds is a server considered bad? +#define SERVER_MAX_UPLINK_QUEUE 1500 // Maximum number of queued requests per uplink +#define SERVER_UPLINK_QUEUELEN_THRES 900 // Threshold where we start dropping incoming clients +#define SERVER_MAX_PENDING_ALT_CHECKS 50 +#define SERVER_CACHE_MAP_SAVE_INTERVAL 90 + +// Time in ms to wait for a read/write call to complete on an uplink connection +#define SOCKET_TIMEOUT_UPLINK 5000 +// Same for client connections. Be a bit more liberal here +#define SOCKET_TIMEOUT_CLIENT 15000 +// When waiting for the next request header from client, allow the timeout from above +// to expire this many times. This allows for greater idle times without also increasing +// the timeout for cases where we wait for additional data or are actively sending a reply +#define SOCKET_TIMEOUT_CLIENT_RETRIES 3 + +// +++++ Other magic constants +#define SERVER_RTT_PROBES 5 +#define SERVER_RTT_DELAY_INIT 5 +#define SERVER_RTT_DELAY_MAX 45 +#define SERVER_RTT_DELAY_FAILED 180 + +#define SERVER_REMOTE_IMAGE_CHECK_CACHETIME 120 // 2 minutes +#define SERVER_MAX_PROXY_IMAGE_SIZE 100000000000LL // 100GB + +// Which is the minimum protocol version the server expects from the client +#define MIN_SUPPORTED_CLIENT 2 +// Same for when we're a proxy talking to another server +#define MIN_SUPPORTED_SERVER 2 + +// Length of comment fields (for alt server etc.) +#define COMMENT_LENGTH 120 + +#define RTT_THRESHOLD_FACTOR(us) (((us) * 2) / 3) // 2/3 = current to best must be 33% worse + +#endif + -- cgit v1.2.3-55-g7522