]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC 302181,302635: Disable MSI-X migration on older Xen hypervisors.
authorjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 5 Aug 2016 17:13:25 +0000 (17:13 +0000)
committerjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 5 Aug 2016 17:13:25 +0000 (17:13 +0000)
commiteab76c56f051ea8e6aef1ca3bb820bde9946d1f9
treeaff2efb738c3b9c5b2d324c7472c4f12c77ee494
parentbc6ec161cf57dafddf47857257ce8ea5df72a20a
MFC 302181,302635: Disable MSI-X migration on older Xen hypervisors.

302181:
Add a tunable to disable migration of MSI-X interrupts.

The new 'machdep.disable_msix_migration' tunable can be set to 1 to
disable migration of MSI-X interrupts.

Xen versions prior to 4.6.0 do not properly handle updates to MSI-X
table entries after the initial write.  In particular, the operation
to unmask a table entry after updating it during migration is not
propagated to the "real" table for passthrough devices causing the
interrupt to remain masked.  At least some systems in EC2 are
affected by this bug when using SRIOV.  The tunable can be set in
loader.conf as a workaround.

302635:
xen: automatically disable MSI-X interrupt migration

If the hypervisor version is smaller than 4.6.0. Xen commits 74fd00 and
70a3cb are required on the hypervisor side for this to be fixed, and those
are only included in 4.6.0, so stay on the safe side and disable MSI-X
interrupt migration on anything older than 4.6.0.

It should not cause major performance degradation unless a lot of MSI-X
interrupts are allocated.

git-svn-id: svn://svn.freebsd.org/base/stable/10@303776 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/amd64/include/intr_machdep.h
sys/i386/include/intr_machdep.h
sys/x86/x86/msi.c
sys/x86/xen/hvm.c