* [PATCH] hv_vmbus: Add gradually increased delay for retries in vmbus_post_msg()
@ 2015-03-25 22:58 ` Haiyang Zhang
0 siblings, 0 replies; 4+ messages in thread
From: Haiyang Zhang @ 2015-03-25 22:58 UTC (permalink / raw)
To: kys; +Cc: haiyangz, olaf, jasowang, linux-kernel, driverdev-devel
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 <haiyangz@microsoft.com>
Reviewed-by: K. Y. Srinivasan <kys@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;
}
--
1.7.4.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] hv_vmbus: Add gradually increased delay for retries in vmbus_post_msg()
@ 2015-03-25 22:58 ` Haiyang Zhang
0 siblings, 0 replies; 4+ messages in thread
From: Haiyang Zhang @ 2015-03-25 22:58 UTC (permalink / raw)
To: kys; +Cc: jasowang, haiyangz, driverdev-devel, olaf, linux-kernel
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 <haiyangz@microsoft.com>
Reviewed-by: K. Y. Srinivasan <kys@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;
}
--
1.7.4.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* RE: [PATCH] hv_vmbus: Add gradually increased delay for retries in vmbus_post_msg()
2015-03-25 22:58 ` Haiyang Zhang
@ 2015-03-27 12:30 ` Dexuan Cui
-1 siblings, 0 replies; 4+ messages in thread
From: Dexuan Cui @ 2015-03-27 12:30 UTC (permalink / raw)
To: Haiyang Zhang, KY Srinivasan
Cc: jasowang, Haiyang Zhang, driverdev-devel, olaf, linux-kernel
> -----Original Message-----
> From: devel [mailto:driverdev-devel-bounces@linuxdriverproject.org] On Behalf
> Of Haiyang Zhang
> Sent: Thursday, March 26, 2015 6:59
> To: KY Srinivasan
> Cc: jasowang@redhat.com; Haiyang Zhang; driverdev-
> devel@linuxdriverproject.org; olaf@aepfle.de; linux-kernel@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 <haiyangz@microsoft.com>
> Reviewed-by: K. Y. Srinivasan <kys@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 <decui@microsoft.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH] hv_vmbus: Add gradually increased delay for retries in vmbus_post_msg()
@ 2015-03-27 12:30 ` Dexuan Cui
0 siblings, 0 replies; 4+ messages in thread
From: Dexuan Cui @ 2015-03-27 12:30 UTC (permalink / raw)
To: Haiyang Zhang, KY Srinivasan
Cc: jasowang, driverdev-devel, olaf, linux-kernel
> -----Original Message-----
> From: devel [mailto:driverdev-devel-bounces@linuxdriverproject.org] On Behalf
> Of Haiyang Zhang
> Sent: Thursday, March 26, 2015 6:59
> To: KY Srinivasan
> Cc: jasowang@redhat.com; Haiyang Zhang; driverdev-
> devel@linuxdriverproject.org; olaf@aepfle.de; linux-kernel@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 <haiyangz@microsoft.com>
> Reviewed-by: K. Y. Srinivasan <kys@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 <decui@microsoft.com>
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-03-27 12:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-25 22:58 [PATCH] hv_vmbus: Add gradually increased delay for retries in vmbus_post_msg() Haiyang Zhang
2015-03-25 22:58 ` Haiyang Zhang
2015-03-27 12:30 ` Dexuan Cui
2015-03-27 12:30 ` Dexuan Cui
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.