diff options
author | Frederic Robra | 2019-08-27 17:00:40 +0200 |
---|---|---|
committer | Frederic Robra | 2019-08-27 17:00:40 +0200 |
commit | e9c43f1f8a391997d5a8041fdd3bd86b43bdf767 (patch) | |
tree | 4a0e5d44b04f8afdb84ae06a868b88e3a56a4cc5 /src/kernel/dnbd3.h | |
parent | removed bug in timeout where look was not released (diff) | |
download | dnbd3-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.h | 34 |
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; /** |