From e9c43f1f8a391997d5a8041fdd3bd86b43bdf767 Mon Sep 17 00:00:00 2001 From: Frederic Robra Date: Tue, 27 Aug 2019 17:00:40 +0200 Subject: optimized behaviour with failures --- src/kernel/dnbd3.h | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) (limited to 'src/kernel/dnbd3.h') 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; /** -- cgit v1.2.3-55-g7522