]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC 297219
authorsephe <sephe@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 15 Jun 2016 09:39:41 +0000 (09:39 +0000)
committersephe <sephe@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 15 Jun 2016 09:39:41 +0000 (09:39 +0000)
commit0a27f9d6fc4d185ef66cbaffdda8fd3c8c677eac
tree42112fd2844048aae43522fb14b2f93956888362
parent9d121ad8eb563ab0d754fdb24251c88fa6b34707
MFC 297219

    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

git-svn-id: svn://svn.freebsd.org/base/stable/10@301924 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/hyperv/vmbus/hv_connection.c
sys/dev/hyperv/vmbus/hv_vmbus_priv.h