[PATCH 1/3] Changed backoff strategy for short reads.

Dirk Hohndel dirk at hohndel.org
Tue Sep 5 12:35:17 PDT 2017


All three patches in this series are missing the Signed-off-by: ...

/D

> On Sep 5, 2017, at 9:58 AM, John Van Ostrand <john at vanostrand.com> wrote:
> 
> Back off was exponential starting at 10ms, which for high baud
> rate and no flow-control connections might cause buffer overrun.
> This was causing problems when reading Cochran DCs, the hearbeat
> byte was being missed.
> ---
> core/serial_ftdi.c | 7 -------
> 1 file changed, 7 deletions(-)
> 
> diff --git a/core/serial_ftdi.c b/core/serial_ftdi.c
> index f8cba95..297d0fa 100644
> --- a/core/serial_ftdi.c
> +++ b/core/serial_ftdi.c
> @@ -395,19 +395,12 @@ static dc_status_t serial_ftdi_read (dc_custom_io_t *io, void *data, size_t size
> 			ERROR (device->context, "%s", ftdi_get_error_string(device->ftdi_ctx));
> 			return DC_STATUS_IO; //Error during read call.
> 		} else if (n == 0) {
> -			// Exponential backoff.
> 			if (slept >= timeout) {
> 				ERROR(device->context, "%s", "FTDI read timed out.");
> 				return DC_STATUS_TIMEOUT;
> 			}
> 			serial_ftdi_sleep (device, backoff);
> 			slept += backoff;
> -			backoff *= 2;
> -			if (backoff + slept > timeout)
> -				backoff = timeout - slept;
> -		} else {
> -			// Reset backoff to 1 on success.
> -			backoff = 1;
> 		}
> 
> 		nbytes += n;
> -- 
> 2.4.11
> 
> _______________________________________________
> subsurface mailing list
> subsurface at subsurface-divelog.org
> http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface



More information about the subsurface mailing list