diff options
author | sephe <sephe@FreeBSD.org> | 2016-03-24 00:40:41 +0000 |
---|---|---|
committer | sephe <sephe@FreeBSD.org> | 2016-03-24 00:40:41 +0000 |
commit | c939ef2e215069b4fe694e5cdaf44045ae31b30a (patch) | |
tree | 3491b93880ec1da638f56d35cdf6afc55500b28c /sys/dev/hyperv/utilities/hv_timesync.c | |
parent | 0566758cff1cdf313f1cee36e7257c510b22459b (diff) | |
download | FreeBSD-src-c939ef2e215069b4fe694e5cdaf44045ae31b30a.zip FreeBSD-src-c939ef2e215069b4fe694e5cdaf44045ae31b30a.tar.gz |
hyperv/vmbus: use a better retry method in hv_vmbus_post_message()
Most often, hv_vmbus_post_message() doesn't fail. However, it fails
intermittently when GPADLs of large shared memory is to be established
with the host, e.g. on the hn(4) attach path: a GPADL of 15MB sendbuf
is created, for which lots of messages will be flooded to the host.
The host side tries to throttle the message rate by returning
HV_STATUS_INSUFFICIENT_BUFFERS.
Before this commit, we do several retries for failed messages, but the
delay between each retry is pretty/too low, which will cause sporadic
message posting failure. We now use large delay (>=1ms) between each
retry to fix the message posting failure.
Submitted by: Dexuan Cui <decui microsoft com>
Reviewed by: sephe
MFC after: 1 week
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D5715
Diffstat (limited to 'sys/dev/hyperv/utilities/hv_timesync.c')
0 files changed, 0 insertions, 0 deletions