> -----Original Message-----
> From: devel [mailto:driverdev-devel-boun...@linuxdriverproject.org] On Behalf
> Of Haiyang Zhang
> Sent: Thursday, March 26, 2015 6:59
> To: KY Srinivasan
> Cc: jasow...@redhat.com; Haiyang Zhang; driverdev-
> de...@linuxdriverproject.org; o...@aepfle.de; linux-ker...@vger.kernel.org
> Subject: [PATCH] hv_vmbus: Add gradually increased delay for retries in
> vmbus_post_msg()
> 
> Most of the retries can be done within a millisecond successfully, so we
> sleep 1ms before the first retry, then gradually increase the retry
> interval to 2^n with max value of 2048ms. Doing so, we will have shorter
> overall delay time, because most of the cases succeed within 1-2 attempts.
> 
> Signed-off-by: Haiyang Zhang <haiya...@microsoft.com>
> Reviewed-by: K. Y. Srinivasan <k...@microsoft.com>
> ---
>  drivers/hv/connection.c |    7 +++++--
>  1 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
> index 583d7d4..b27220a 100644
> --- a/drivers/hv/connection.c
> +++ b/drivers/hv/connection.c
> @@ -422,6 +422,7 @@ int vmbus_post_msg(void *buffer, size_t buflen)
>       union hv_connection_id conn_id;
>       int ret = 0;
>       int retries = 0;
> +     u32 msec = 1;
> 
>       conn_id.asu32 = 0;
>       conn_id.u.id = VMBUS_MESSAGE_CONNECTION_ID;
> @@ -431,7 +432,7 @@ int vmbus_post_msg(void *buffer, size_t buflen)
>        * insufficient resources. Retry the operation a couple of
>        * times before giving up.
>        */
> -     while (retries < 10) {
> +     while (retries < 20) {
>               ret = hv_post_message(conn_id, 1, buffer, buflen);
> 
>               switch (ret) {
> @@ -454,7 +455,9 @@ int vmbus_post_msg(void *buffer, size_t buflen)
>               }
> 
>               retries++;
> -             msleep(1000);
> +             msleep(msec);
> +             if (msec < 2048)
> +                     msec *= 2;
>       }
>       return ret;
>  }

The patch is good to me.

Reviewed-by: Dexuan Cui <de...@microsoft.com>

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to