131 lines
4.8 KiB
Text
131 lines
4.8 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA512
|
|
|
|
=============================================================================
|
|
FreeBSD-EN-16:15.vmbus Errata Notice
|
|
The FreeBSD Project
|
|
|
|
Topic: Better handle the GPADL setup failure in Hyper-V
|
|
|
|
Category: core
|
|
Module: vmbus
|
|
Announced: 2016-08-12
|
|
Credits: Microsoft OSTC
|
|
Affects: FreeBSD 10.3
|
|
Corrected: 2016-06-15 09:39:41 UTC (stable/10, 10.3-STABLE)
|
|
2016-08-12 04:01:16 UTC (releng/10.3, 10.3-RELEASE-p7)
|
|
|
|
For general information regarding FreeBSD Errata Notices and Security
|
|
Advisories, including descriptions of the fields above, security
|
|
branches, and the following sections, please visit
|
|
<URL:https://security.FreeBSD.org/>.
|
|
|
|
I. Background
|
|
|
|
FreeBSD guests on Hyper-V call hv_vmbus_post_message(), which uses hypercalls
|
|
to post various types of VMBus messages to the Hyper-V host. One kind of the
|
|
messages is to setup GPADL (Guest Physical Addrss Description List), which
|
|
describes shared memory buffers between the host and the guest.
|
|
|
|
II. Problem Description
|
|
|
|
Most often, hv_vmbus_post_message() does not fail. However, it could fail
|
|
intermittently when GPADLs of large shared memory is to be established with
|
|
the host, such as 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 errata notice, several retries for failed messages would be
|
|
attempted, but the delay between each retry is too low, causing sporadic
|
|
message posting failure. A larger delay (>=1ms) is now used between each
|
|
retry to fix the message posting failure.
|
|
|
|
III. Impact
|
|
|
|
Failures when Hyper-V network device driver are loaded and the device cannot
|
|
work would occur.
|
|
|
|
IV. Workaround
|
|
|
|
No workaround is available, however FreeBSD virtual machines not running in
|
|
Hyper-V or Azure are unaffected.
|
|
|
|
V. Solution
|
|
|
|
1) Upgrade your system to a supported FreeBSD stable or release / security
|
|
branch (releng) dated after the correction date, and reboot the system.
|
|
|
|
2) To update your system via a binary patch:
|
|
|
|
Systems running a RELEASE version of FreeBSD on the i386 or amd64
|
|
platforms can be updated via the freebsd-update(8) utility:
|
|
|
|
# freebsd-update fetch
|
|
# freebsd-update install
|
|
|
|
Afterward, reboot the system.
|
|
|
|
3) To update your system via a source code patch:
|
|
|
|
The following patches have been verified to apply to the applicable
|
|
FreeBSD release branches.
|
|
|
|
a) Download the relevant patch from the location below, and verify the
|
|
detached PGP signature using your PGP utility.
|
|
|
|
# fetch https://security.FreeBSD.org/patches/EN-16:15/vmbus.patch
|
|
# fetch https://security.FreeBSD.org/patches/EN-16:15/vmbus.patch.asc
|
|
# gpg --verify vmbus.patch.asc
|
|
|
|
b) Apply the patch. Execute the following commands as root:
|
|
|
|
# cd /usr/src
|
|
# patch < /path/to/patch
|
|
|
|
c) Recompile your kernel as described in
|
|
<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the
|
|
system.
|
|
|
|
VI. Correction details
|
|
|
|
The following list contains the correction revision numbers for each
|
|
affected branch.
|
|
|
|
Branch/path Revision
|
|
- -------------------------------------------------------------------------
|
|
stable/10/ r301924
|
|
releng/10.3/ r303984
|
|
- -------------------------------------------------------------------------
|
|
|
|
To see which files were modified by a particular revision, run the
|
|
following command, replacing NNNNNN with the revision number, on a
|
|
machine with Subversion installed:
|
|
|
|
# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
|
|
|
|
Or visit the following URL, replacing NNNNNN with the revision number:
|
|
|
|
<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>
|
|
|
|
VII. References
|
|
|
|
The latest revision of this advisory is available at
|
|
<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-16:15.vmbus.asc>
|
|
-----BEGIN PGP SIGNATURE-----
|
|
|
|
iQIcBAEBCgAGBQJXrUskAAoJEO1n7NZdz2rnpSYQAOcdxWeTfHk3Pksvy8tZl1sE
|
|
1HzD7d4LUEd8TJZq6JA8JEmAA3MN6p0FoGDj0NlMviiy1slCo4BuEyriixhkKUqh
|
|
be1+2pVY3d6gMixHFNPVKA0JB5amDvfxF8jY/lMZ1CsfD1tE0bTSRwPYhFFxJI8g
|
|
QK2dbjbGPQF32fAh4953wLV/HO1n6JiQS8dtyJBc4BdGRNCcuZpl69lDeJJWH5Li
|
|
IYtbQQlMIQZA5le7CjGXP+6eFus+U7CoqxuCq50CJwsgt0Rw+klApX85dodImlCR
|
|
qn6FCB0OdM2W3KgrnOLEXjvmajUO1fWAkiwlS6ZlkqST5KSRUHC3pzzZcYrvLBtA
|
|
qOslsoOp7v7uOvjKIt6As8KmX7OjFgNsiH4oxCL8H8HXNlN3uQRayMG8kglWqKWo
|
|
QFjF5cPL1YnDn5cBSThGQY0QBnDFEPiyviJZZ8XInKAESNysOW5rpx4bLKRqz33L
|
|
tZ0ebi+3PpA3M6wK9ag3zARJvqfTgHZ6KoVBF3HKmIB+LnyFQybHBaG5eG1sveWC
|
|
11KobiLoA1Te9v9KunJRBvmPMsV2zjrGJ5MYFw7UH/gYhjO2CGnRlJUCAHDFr7u+
|
|
f/AJYb9qSS6exSFGhl7tBAxEAQAizy2eCSde/rXqbNH8QPz4SM/J436GPdxcaTRD
|
|
Lj+bkbcEPY6QqPPodDHn
|
|
=JVB9
|
|
-----END PGP SIGNATURE-----
|