summaryrefslogtreecommitdiffstats
path: root/src/kernel/dnbd3.h
diff options
context:
space:
mode:
authorFrederic Robra2019-08-27 17:00:40 +0200
committerFrederic Robra2019-08-27 17:00:40 +0200
commite9c43f1f8a391997d5a8041fdd3bd86b43bdf767 (patch)
tree4a0e5d44b04f8afdb84ae06a868b88e3a56a4cc5 /src/kernel/dnbd3.h
parentremoved bug in timeout where look was not released (diff)
downloaddnbd3-ng-e9c43f1f8a391997d5a8041fdd3bd86b43bdf767.tar.gz
dnbd3-ng-e9c43f1f8a391997d5a8041fdd3bd86b43bdf767.tar.xz
dnbd3-ng-e9c43f1f8a391997d5a8041fdd3bd86b43bdf767.zip
optimized behaviour with failures
Diffstat (limited to 'src/kernel/dnbd3.h')
-rw-r--r--src/kernel/dnbd3.h34
1 files changed, 7 insertions, 27 deletions
diff --git a/src/kernel/dnbd3.h b/src/kernel/dnbd3.h
index 4a2302d..01e8c15 100644
--- a/src/kernel/dnbd3.h
+++ b/src/kernel/dnbd3.h
@@ -74,25 +74,7 @@ struct dnbd3_server {
uint64_t rtts[4];
uint64_t avg_rtt;
uint16_t protocol_version;
- uint16_t failures; // TODO failures runterzaehlen wenn wieder verbindung moeglich, seltener messen bei hohem failure count
-
- /*
- * TODO would this help?
- * uint8_t failures[4]
- * uint8_t avg_failures;
- *
- * in timer, calculate each x iterations average over failure array
- * then move elements in array to left
- * for (i = 3; i > 0; i--) {
- * server->failures[i] = server->failures[i - 1]
- * }
- * server->failures[0] = 0;
- * failures always go to failures[0] / *failures
- *
- * - is this to much effort?
- * - what are the benefits?
- * - could increase the rtt e.g. (rtt = rtt * failures)
- */
+ uint16_t failures;
};
/**
@@ -145,7 +127,7 @@ struct dnbd3_sock {
* @update_available: 'true' if the rid has changes
* @use_server_provided_alts: 'true' if the alt_servers array is upated by the
* alternatives provided by the server
- * @rid: the revision ID? TODO
+ * @rid: the revision ID
* @reported_size: the size of the image
* @panic_worker: worker to handle panics and to connect if all connections are
* down
@@ -195,18 +177,16 @@ struct dnbd3_device {
* @requed: 'true' if the command is requed
*/
struct dnbd3_cmd {
- //TODO do we want the socket here (index)?
struct dnbd3_device *dnbd3;
struct mutex lock;
uint32_t cookie;
- blk_status_t status;
+ uint32_t index;
bool requed;
};
-#define dnbd3_avg_rtt(server) \
- (( (server)->rtts[0] + (server)->rtts[1] \
- + (server)->rtts[2] + (server)->rtts[3] ) / 4 )
+
+
#define dnbd3_set_rtt_unreachable(server) \
(server)->rtts[0] = (server)->rtts[1] = (server)->rtts[2] \
@@ -216,8 +196,8 @@ struct dnbd3_cmd {
#define dnbd3_set_rtt_unknown(server) \
(server)->rtts[0] = (server)->rtts[1] = (server)->rtts[2] \
- = (server)->rtts[3] = (server)->avg_rtt = \
- RTT_UNKNOWN;
+ = (server)->rtts[3] = 0;\
+ (server)->avg_rtt = RTT_UNKNOWN;
/**